Agile software development allows requirements and solutions to evolve through collaboration among the development team, their clients, and end users. While stakeholders aren't directly involved in building the solution, they do have a vested interest in the success of the project and participate in the development process in various ways.
In Agile development, a stakeholder is anyone outside the development team who has a stake in the success of the project. If you are a stakeholder, knowledge of Agile will help you to understand:
- How the project will be developed and managed
- When you can expect to see progress
- What the development team needs from you to deliver their best work
Understanding these basic concepts and what your role entails are essential to your project’s success.
What is Agile?
Agile was invented as a set of values and principles to guide software development teams in adapting to change and acknowledging unknowns. In development, an enormous amount of time and energy can be spent on managing change. Since change is a constant, it makes sense to build a process that takes it into account. There are many methodologies, practices, and processes that fall under the “Agile umbrella.” These include Scrum, Kanban, user stories, and sprints.
Agile was introduced as a reaction to the more traditional “waterfall” process, where work is done in long, consecutive phases, including requirements gathering, analysis, design, coding, and testing, which can each last weeks or months. While there is nothing inherently wrong with the waterfall approach, it does present significant challenges, including:
- Increased time to market: It could take years to produce a viable product, during which time, you may be outrun by your competition or your product may become obsolete.
- Running out of time: Imagine that your deadline is approaching, and work is running behind schedule. If the deadline can’t be pushed out, either scope will have to be cut or the development team will have to burn more budget. The testing phase might also be cut short, increasing the risk of defects. All aspects of the project suffer in this case, and the likely result is a low-quality product that will not meet your customers’ needs.
- Measuring progress: In waterfall, working software isn’t produced until the coding phase is complete (relatively late in the overall schedule). This process makes it difficult to actively measure progress over time. You could end up more than halfway through your timeline and have nothing more to show than documentation of requirements and designs. If the project runs out of budget, there is no part of the software that is usable, and your investment is wasted.
- Increasing risk: Risk only increases as the project progresses because the work cannot be validated from a technical or business standpoint until the last phase of development. If any major problems are uncovered during testing, it will require significant rework. The rework may require going back to the beginning phases and revising requirements and designs, then refactoring code. This will have a major impact on the project budget.
- Change requests: Waterfall relies heavily on rigid requirements because they are handed off to a design team, who then pass the designs to the coding team, who then hand off software to a testing team. Any need for changes to the end product requires a change request that goes back through each team, which becomes more time consuming and complex the farther along the project is.
Agile development addresses these challenges by drastically reducing the time between identifying the valid business need and putting the solution in front of stakeholders. Because ongoing work is performed through the collaboration of self-organizing and cross-functional teams, there are no unproductive development activities. Users get the business benefit of the new solution faster, development teams get rapid feedback and a clear understanding of what the user needs, and stakeholders are able to shape a solution as the project progresses.
In our next About Agile blog post, we’ll look at Agile in practice, including the 6 steps that are vital to the success of this approach.