Agile is certainly becoming a preferred development methodology as the focus today continues to move towards earlier deliveries. So how can agile methodology and requirements management work together? The focus of Agile is on individuals interacting and collaborating with customers to create software that works. Agile also provides for a quick response to change – and actually encourages change. Traditional methods are more focused on tools and processes, in particular requirements definition and management. The problem is marrying these two together in a way that embraces the best of both worlds. Too much of either methodology can result in issues on a project.
Some think that Agile means “no documentation” and is undisciplined. Neither is true. Agile encourages documentation that is necessary to the project, but discourages “documentation for the sake of documentation”. Agile requires a great deal of discipline. It is not a free for all. Any methodology can become Agile by focusing on the right information, collaboration in teams that span both business and IT, and working in iterations toward the end result.
Some major challenges with Agile are focused around people versus the methodology. Teams do not ask for help and plug along with questionable results. Often they end up going back to their old way of doing things. Teams have no structured way to share what they have learned. Teams have no way to measure the success of the agile methodology. Disciplined Agile extends Agile development to the entire lifecycle. It is not focused on just the software development phase.
Here are some key points to remember if you are considering moving to Agile.
- Know the complexity of your project. Consider size, estimated time and effort, number of people involved and location of those people.
- Get experts to help you and don’t be afraid to ask them for help. If your process is in chaos now, moving to Agile without some structure and discipline will just create Agile chaos.
- Thank about ways to segregate your requirements definition work. Do requirements as needed instead of trying to get them all completed up front. There are several ways to break up the work, features being one of them.
- Start the Agile approach at the beginning and use it throughout the lifecycle, from requirements to development and testing.
- Consider ways to measure the success of Agile and consistently keep metrics on these measures.