Agile and Lean 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 people that are less technical, 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 are the key principles of Agile and Lean development? Let’s cover them with relation back to the cost of software development.
- 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.
- Business Value / Eliminate Waste. A key element of the Agile manifesto is “Working software over comprehensive documentation.” Reams of documentation prior to 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. Aside: “Agile” doesn’t say don’t produce documentation – instead, produce “just enough” to meet the needs of your audience.
- 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 larger 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.
- Commitment and Accountability. Commitments in Agile are done 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 fixeddates, fixed functionality and a fixed development budget is unrealistic. Since the team is basically set up 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.
- Rapid and Iterative Delivery. Delivering software quickly enables a rapid 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. Rapid delivery gives the user a look at the software and the team iterates based on the feedback, and helps ensure we don’t build features that are not used. Although some time is generally spent re-working 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.
- 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 basic tooling. For example, instead of 100-page requirements specifications that take weeks to write and are out of date as soon as they hit the printer, 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, there are no middle managers running around constantly collecting status reports. Instead, progress and metrics are available at the click of a button for teams using a software management tool like Jira, and teams with physical Scrum or Kanban boards have a very visible status updated on the wall every day. All of this amounts to less overhead.
- Continuous Improvement. One of the most important Agile practices is a retrospective. Here, the team critically reflects on a recent duration of development and derives constructive actions to improve upon how it works. Effective retrospectives have a results- and cost-driven focus. 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 that runs on its own providing the biggest bang for the buck and effective delivery for a lean team. In addition, once deployments, for example, 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.
Agile 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 a 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.