October 28th, 2014
In this item we continue our examination of various
ideas and ask whether they are valid or whether they are in
fact, industry myths.
Do agile methodologies promote the idea that process is unimportant?
I have occasionally seen expressed the view that Agile methods avoid process in favor of skilled people doing whatever it takes to get the job done. The Agile Manifesto does say that people should be put before process, but it doesn’t say process is unimportant. It is process that dictates the procedures that make a project Agile. Without the process, the project would be chaos. So, let’s call this idea a myth right away, and spend our time looking at examples that show strong Agile process.
- In a heavyweight process coding and testing are two separate phases which have little or no overlap. Agile processes require that coding and testing occur within the same iteration; in some cases code can move back and forth between a software engineer and a tester in a matter of minutes. The more frequently the tester is engaged, the easier it is to keep a handle on quality.
- Agile processes accept that requirements will change throughout the development cycle. Close working collaboration is encouraged between team members and customers so that those changes are collectively well understood and adverse affects of those changes can be identified early. Each Agile method has a defined technique for selecting the requirements for the next iteration; Scrum calls the selection the ‘Sprint backlog’.
- User stories are a common component of Agile processes, conveying a greater sense of purpose than ‘shall’ statements which generally have an authoritarian and sterile feel. Agile processes call for user stories, in part because they dovetail nicely with the heavy involvement of customers in the proceedings; user stories can be read, understood and even written by anyone regardless of their role.
- Ongoing assessment is a cornerstone of the Agile paradigm. Without it, individuals pick up bad habits here and there which become embedded in their daily routine, degrading the performance of the overall team over time. Constant evaluation and adaptation gives the agile team a chance to identify unhelpful practices and exorcise them from their working practices, replacing them with something agreed by consensus to be an improvement. Ongoing assessment is necessitated by Agile processes.
- Scrum in particular defines a clear set of roles and responsibilities within the development team. In a process which otherwise encourages change, this adds a degree of stability and certainty, something often welcomed by those unfamiliar with the more fluid Agile concepts. Again, these roles and responsibilities are a fundamental part of the Scrum process.
These are just a few examples which demonstrate that while Agile methods might be light on process, the processes they do have are well defined and critical to their success.
You may also be interested in:
Scrum and Kanban - Siblings or Cousins?
DevOps make way for TestOps…