Agile software development is a proven and effective model for software creation. Millions of software engineers understand and have seen the benefits of developing software in this way.
Agile has advantages of increased collaboration, higher quality and improved morale, to name a few. For less technical people, however, what does this mean to the business bottom line? In the end, Agile leads to cost savings because of the principles that form its base.
What is Agile software development?
Agile software development is a process that emphasizes the collaboration, communication and iterative nature of software development. It increases customer satisfaction with the product by making sure they are involved in the process.
Agile software development adapts to changing requirements. It is often used for web-based projects. It has many advantages over waterfall methods, the most significant being its ability to quickly adapt to changing requirements.
The Agile Manifesto was created in 2001 by 17 people who were involved in developing Agile software. The manifesto is a set of principles that define the core values of Agile software development. These principles include:
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan
The fundamental principles of Agile development
What are the fundamental principles of Agile and Lean development? Let’s cover them with relation back to the cost of software development.
1. Simplicity and “just enough”
Everything in Agile is purposely simple (NOTE: this does not mean it is easy), from team processes like Scrum to development practices like small unit tests that do one thing well. Doing the simplest thing to get results is the most cost-effective approach — you stop when you have just enough and avoid over-engineering a solution, which leads to missed deadlines and subsequent cost overruns.
2. Business value / Eliminate waste
A vital element of the Agile Manifesto is “Working software over comprehensive documentation.” Reams of documentation before development add cost without adding value. Reams of documentation that never get used is waste.
By focusing on business value with every activity, a development team decreases the risk of cost overruns and avoids costly activities that do not provide value. NOTE: “Agile” doesn’t say don’t produce documentation — instead, create “just enough” to meet the needs of your audience.
3. Quality throughout
Agile encourages completing small batches of work. While “done” (for work) is subjective per team, Agile teams generally hold themselves to a high level of quality in 2-3 week iterations. This helps minimize technical debt. Technical debt is defined as technical issues that need to be fixed sooner rather than later before they become more substantial and more significant — like financial debt accrues interest.
For example, a bug found now but not fixed until months later causes re-learning of the area of code where the bug lies and a large context switch for a developer, extending the time to diagnose and fix the defect adding cost to development.
4. Commitment and accountability
Commitments in Agile happen in much smaller chunks than in historic development models like Waterfall. Asking a team to commit to a set of deliverables 18 months in advance with fixed dates, fixed functionality and a fixed development budget is unrealistic. This basically sets up the team for failure — the cost of delay increases as delivery dates are missed. If the team skimps on quality, customer satisfaction decreases, which affects sales and revenue.
Agile encourages shorter-term commitments (like a calendar quarter) with stretch goals, and holds people accountable for meeting them. Developers have fewer issues in committing to shorter chunks of time and can more accurately and confidently estimate the work.
5. Rapid and iterative delivery
Delivering software quickly enables a fast feedback cycle, thus decreasing the risk of building the wrong functionality that fails to solve the user’s problem. Users generally cannot accurately articulate what they want without seeing something in action first. Fast delivery gives the user a look at the software. The team iterates based on feedback and ensures we don’t build features that are not used.
Although some time is generally spent reworking the software based on corrective user feedback, the cost is much lower than having to redo functionality that is delivered in larger chunks with longer, many-month timeframes.
6. Collaboration and transparency
Agile and Lean teams generally collaborate much more effectively than in other software models. Agile encourages this collaboration even with some of its necessary tooling. For example, instead of 100-page requirements specifications that take weeks to write, Agile teams leverage user stories to start a conversation and collaborate on what needs to be built in real time. That means a faster time to market, which helps sales.
Additionally, Agile practically does away with the project manager role that is necessary for longer-running efforts. That means potential cost savings in headcount. Since Agile teams are transparent with their progress, no middle managers are running around continually collecting status reports.
Instead, development and metrics are available at the click of a button for teams using a software management tool like Jira, and groups with physical Scrum or Kanban boards have an obvious status updated on the wall every day. All of this amounts to less overhead.
7. Continuous improvement
One of the most essential Agile practices is a retrospective. In short, the team critically reflects on a recent duration of development and derives constructive actions to improve upon how it works. Results and cost drive effective retrospectives. This activity leads to teams automating more operations that previously lead to human error and inefficient work, such as deployments and testing.
Ultimately an organization may rely much less on rote manual tasks and much more on automation, providing the biggest bang for the buck and effective delivery for a lean team. Also, once deployments are automated, a move to cloud hosting can also save on both capital and operational expenditures. Although this hosting and cost model is not attributed to Agile development, Agile helps enable it.
Final word
Agile software development can affect the bottom line of a company, and it is important for leaders to understand how and what they can do to support it. Keep in mind, however, that just because a team says it’s “Agile” doesn’t mean it is. For example, just having a “daily Scrum” does not make the team Agile. To fully realize the cost benefits of Agile and Lean software development, the team must abide by the core principles and leverage the supporting practices based on those principles. Leveraging a third-party, business-results-driven Agile coach to evaluate the organization’s use of Agile helps realize the cost efficiencies that Agile and Lean are meant to deliver.