The very first item in the Agile Manifesto states that Agile Development values “individuals and interactions over processes and tools.” A lot of people in the Agile development community seem to interpret this as, “We don’t need to document any processes – just let people do their thing.” That philosophy is a little off the mark, for several reasons. Let’s explore the role of processes in an Agile implementation.
Why the Emphasis on People?
Doing creative work, which includes software design and development, often does not involve highly repeatable processes – as opposed to, say, assembling a widget. In the world of design, problems and situations are frequently unique and documented processes are not always going to help people find the solutions and approaches that work best. Knowledge, experience, intuition, and innovation are usually the key to creating the best design and development approach. The manifesto is simply recognizing that reality. When it comes to creative design work, people create resolutions and results, not processes. Does that mean processes are unneeded? Not necessarily.
The Manifesto Says “Over” Not “Instead”
Developers and Scrum Masters who interpret this statement as “processes are not needed” are misreading it. It says people OVER processes. Any good manager will tell you that having good people is always the key to success. The Agile Manifesto emphasizes the value that good people bring to software development. Conversely, however, good people working together on teams without the guidance that proper processes provide usually leads to large inconsistencies across the organization (as we will explain later.) Organizations always operate best with a combination of good people and good processes.
Processes Always Exist – Even in Agile
The fact is that processes exist in any business or organization, regardless if they are documented or not. Processes are simply the steps or activities needed to achieve a result. So in any organization, if people are carrying out activities to achieve a result, then they are executing processes. The only difference with undocumented processes is how various people or teams carry out these activities may vary wildly. Even the same person or team may not do things in a consistent way. That is a problem in and of itself, but the bigger problem is that results will almost always vary wildly as well. Inconsistent results frequently mean failure.
That is the role that documented processes play in an organization, including Agile. They provide the general guidance in how activities are done to ensure more consistent and coordinated results across departments and across teams throughout the organization. As long as processes are being used in this manner, then the specifics of the format, level of detail, and so on, are up to each individual organization to decide what best meets their needs. Processes can often be very general – outlining the broad steps needed to achieve the desired result while leaving the detailed minutia up to each individual or team.
In fact, the more competent and well-trained the staff is, the less emphasis there has to be on highly detailed, documented processes. But if processes are not defined and understood, what are you training your people to? One department or group may be training staff to do things one way while other departments are telling their staff to do something completely different.
Processes Form the Basis for Continual Improvement
With a consistent processes approach across your teams, it is possible to measure the process outcomes. These outcomes can be analyzed and the process can be changed in an attempt to improve the outcomes. Figure 1 illustrates the Plan, Do, Check, Act process approach recognized by ISO as the foundation for organizational process improvement.
So when the manifesto says people over processes, it is simply a matter of emphasis. Both are important. We want our people and teams to have the creative freedom to get the software engineering job done. But we also want some consistency in some key development activities, such as conducting sprint reviews or packaging and delivering releases, for example. Plus, processes also play the important role of documenting key objectives of the process so those responsible for executing it know if they are achieving organizational and process goals.
What is the role of processes in Agile? To ensure coordination of team activity, consistency in results, and to ensure key objectives are consistently met.
Don Reed is a Senior Technical Writer and Project Support Specialist with the ADEV program. His background includes engineering and programing, project management, quality and business improvement, and business-technical communication. Don has a B.S. in Electrical Engineering and a M.A. in Communication from Saint Louis University.