The Sustainable Development Principle

One of the biggest potential pitfalls to the return on investment of software is the cost of maintenance. The scope of work in software development can expand well beyond deployment, fixing functionality issues and bugs as they occur. For this reason, software development teams are beginning to adopt Agile methodology for its sustainable development principle – software that retains its value overtime.1

Looking at Technical Debt

Software development teams that measure completion by deadlines end-up taxing the software with technical debt that grows heavier overtime.2 Technical debt is a metaphor coined by Ward Cunningham that highlights the compromises made between the push to deploy software to market and its long-term functionality.3 This debt grows larger when development teams cut corners to deliver a finished product, creating a backlog of technical inefficiencies that will need to be addressed in the future.

How Technical Debt Occurs

Each step of the software development phase builds a new feature that leads to the completed software. Ideally, residual issues from the previous phases have been corrected and the software maintains high functionality for further testing. Unfortunately, this isn’t always the case. Missed bugs in the software become chronic with one issue building to the next, prolonging the overall completion of the software.4

Understandably, software development companies want to remain as competitive as possible by holding deadlines as top priority. Development companies want to spend the least amount of resources, while at the same time creating the best software in the quickest time. This is otherwise known as the iron triangle of project management – balancing cost, project scope, and schedule.5

However, teams that prioritize deadlines over quality make themselves vulnerable to the temptation of shortcuts that lead to the problem of growing technical debt.6 Issues in coding aren’t revealed until triggered, potentially compounding issues throughout the process.

Creating Sustainable Software

The key to creating sustainable software is giving more weight to the quality of the software as a priority. Agile methodology promotes sustainable development in measuring success as creating the highest quality software to meet the exact needs of the customer. This focus creates a wealth of benefits throughout the software development process:

Customer Oriented Software

Sustainable software is inherently more valuable to the customer because it will perform with fewer interruptions in its lifecycle. The wide selection of software available to consumers today, software developers need to stay competitive by providing software that is robust enough to adapt changes in the technological landscape. Creating software that consistently requires expansions is a turn-off for customers, putting the marketability of the software at risk.

Improved Efficiency

Involving customers and stakeholders in the development process instills confidence in the direction of a software development team. Quick turn-around of feedback gives development teams more time to fix bugs between deadlines. The Agile method is better at detecting issues before they reach Beta testing because feedback is given throughout the entire development process.7 This allows the development team to build a more complete product that meets the specifications of the customer.

Growth in Opportunities

Software development teams that use the Agile methodology spend fewer resources maintaining the value of their software over its lifecycle. As the technological environment grows more complex over time, the workload that the software will need to endure becomes more intense.

Software that isn’t developed with the Agile method will have a harder time enduring technological change, making functionality issues larger and more expensive to fix. Not only does this create a growing expense, but opportunities to introduce new features will be lost because resources are focused on software maintenance.8

As technology grows more complicated, so do the expectations of consumers that fuel more innovations. Software maintenance is a must for all software development teams, no matter how powerful the software. The key is to keep the need for maintenance low by building software well from the start, keeping the cost of software maintenance under control. For more information on how the Agile methodology maintains value, read our eBook on Expanding & Extending Deployment Capability: The Role of Agile/Nearshore Methdologies In Professional Services.

  1. Ward C. Principles. Manifesto for Agile Software Development.
  2. Dan R. Escaping the black hole of technical debt. Atlassian.
  3. Andrew B. Interview with Ward Cunningham. Dr.Dobb’s: The World of Software Development.
  4. Dan R. Escaping the black hole of technical debt. Atlassian.
  5. Dan R. What agile means for the everyday developer. Atlassian.
  6. Dan R. Escaping the black hole of technical debt. Atlassian.
  7. Ibid.
  8. Jim H. The Financial Implications of Technical Debt. Jim Highsmith.

YouTube video