Agile Outside of Software
Agile adoption outside of software is nothing new--it dates back very close to the origin of today’s agile methods, predating the term “agile”. However, what is new and noteworthy is the rate and scale of non-software agile adoption being witnessed today. Now--as more companies than ever are exposed to agile methods in their IT practices--these methods are being employed beyond the regular IT domain.
The key to understanding the applicability of agile outside of IT is the concept of the “knowledge worker”. Knowledge workers are people with subject matter expertise who communicate this knowledge and take part in analysis and/or development. This not only covers the IT industry, but also engineers, teachers, scientists, lawyers, doctors and many others employed today. In fact, knowledge workers have become the largest segment of the North American workforce; the so-called Third Wave of human socio-economic development after the Agricultural Age (land based) and the Industrial Age (factory based). In the Knowledge Age, value is based upon the ownership of knowledge and the ability to use that knowledge to create or improve goods and services.
Knowledge worker theory and agile theory are a little like twins separated at birth, growing up independently. As the agile community was determining the best way for software teams to collaborate, knowledge worker researchers were establishing ideas like Human Interaction Management--which asserts there are five principles characterizing effective knowledge work:
- Build effective teams
- Communicate in a structured way
- Create, share and maintain knowledge
- Align your time with strategic goals
- Negotiate next steps as you work
If you think this list sounds a lot like how we manage our daily stand-ups, prioritize the backlog and work in iterations, then it you are not alone. The two camps are very similar, and the ways to effectively collaborate when manipulating bits and not atoms (information not materials) are now widely taught. However, not all our guidebooks or practices embrace the subtleties of knowledge worker environments and many Industrial Worker relics remain. In the industrial age, after product design was complete, work was relatively predictable with only breakdowns, human error and raw material defects to content with. Change rates were relatively low and uncertainty can be largely planned out of a process through a management focus on process. In the knowledge worker environment, high value often comes from combining information from new or unlikely sources. Levels of uncertainty in job execution can be high, and management focuses on people rather than process.
This “Uncertainty and Management Focus” spectrum is shown below:
On the X axis, tasks range from low uncertainty (defined) up to high uncertainty (undefined). On the Y axis, the focus of management varied from process oriented (mechanics) to people oriented (team dynamics).
The PMBOK Guide (in its current form) has its roots in the Industrial Worker mindset of “plan the work, and work the plan”--and there is nothing wrong with this. It is a highly efficient way of undertaking defined work in a structured way.
Agile methods were born out of the chaos--and problems modern software projects placed on traditional management. Through embracing uncertainty rather than trying to suppress it--and leveraging people’s ability to manage complexity rather than relying on process--agile methods tackle the knowledge worker domain form an entirely new direction.
Agile methods recognize projects are inherently uncertain--and use iterations and adaptation to surface true requirements. They also focus on the individuals and interactions over the processes and the tools. The new PMBOK V5 Guide will be incorporating more agile techniques, but for now the version we have is more industrial worker rooted. So, for organizations looking to use agile outside of IT, what guidance is available?
First we should check the environment we want to apply agile techniques in and make sure it really is a knowledge worker environment. Applying agile techniques to a work domain characterized by defined requirements and a process focus will likely bring better communications and risk identification, but will miss the bulk of the benefits around collaboration and problem solving. Peter Drucker outlined a set of knowledge worker characteristics than can be used as a test to see if the domain we are assessing is a good fit for an agile/knowledge worker approach:
- Productivity is the responsibility of the individual knowledge worker; they have to manage themselves.
- Continuing innovation has to be part of the work--the task and the responsibility of knowledge workers.
- Knowledge work requires continuous learning on the part of the knowledge worker.
- Productivity of the knowledge worker is not (at least not primarily) a matter of the quantity of output; quality is at least as important.
- Finally, knowledge worker productivity requires that the knowledge worker is both seen and treated as an "asset" rather than a "cost." It requires that knowledge workers want to work for the organization in preference to all other opportunities.
If these are all present, then chances are we have a knowledge worker domain that can benefit from agile approaches. Dean Leffingwell provides the following 10 practices for applying agile techniques for the knowledge worker development:
1. Develop and empower self-organizing, self-managing teams
2. Plan work in short (one- or two-week) iterations
3. Focus on value delivery
4. Develop a single prioritized work backlog for the team
5. Apply daily 15-minute standup meetings as a primary form of communication and commitment
6. Minimize work in process to increase productivity
7. Plan for delivery of larger enterprise initiatives in larger (release) time boxes.
8. Provide total, real-time work in progress--and done visibility
9. Develop shared knowledge via pairing and generalists
10. Apply work physics and agile planning
I like this list a lot--it is a great place to start with our agile outside of software rollout. An area the list might be weak on (or left out of a top 10) is in retrospectives, adaptation and team decision making. Whenever we get uncertainty and variation in tasks, the need for adaptation and consensus building increases.
Patrik Malmquist nicely describes the switch from industrial worker to knowledge worker, drawing on the work of Jack Bergstrandin and his book Reinvent Your Enterprise. The table below contrasts the industrial worker view of tasks compared to the knowledge worker:
Also, Drucker identified that productivity comes from different factors for knowledge work:
So to deal with these task variations and productivity differences, we need to ensure retrospectives and adaptation is in place along with solid team decision-making techniques. I would suggest a couple of other items for Dean’s list:
11. Review frequently and adapt
12. Employ team-based decision models
Equipped with these dozen practices, companies can gain the benefits of agile techniques in the wider knowledge worker environment. Agile methods are not just for geeks, software problems or environments characterised by unstructured development. However, the IT industry’s chequered past may be a barrier to wider agile adoption for some organisations. If this is the case, books like Bergstrand’s Reinvent Your Enterprise may be an easier path--but rest assured your experience in agile methods will be transferable and applicable.
(I wrote this article originally for Gantthead.com and it appeared in July 2011 here)