Agile: The Eerie Similarities Between Climate and Agile


Agile development may seem a distant topic to climate, but despite mounting evidence that the use of fossil fuels will damage our environment, humanity appears hard pressed to find an alternative. And even though environmentally friendly options have presented themselves, we have one foot firmly planted in the past. Working in the IT industry, it’s astounding how closely this resembles our current state of agile software development and testing.

Agile Software Development

Agile and inertia
Even though the industry identifies that a problem exists, and have the tools available to fix it, its dead set on sticking to “the way it was.”  Vijay Anand penned an article exploring this topic and outlining what software development teams can do to maintain their current level of production, without sacrificing software quality. 

Agile and a dynamic world
We are today living in a dynamic, ever-changing world where everything needs to be continuously agile and adaptive else one is set up for failure. Software development then remains no exception. More and more product development now seems to happen on Agile methodology where we develop working software with the underlying presumption that requirements can mostly never be frozen. And this seems to work well. One can see that product functionality continues to be delivered perfectly per customer requirements, given the frequent interactions via user stories or as I call "functional cradling" and JIT testing. So the part that is visible in the iceberg a.k.a functional defects seems to go down in production. But what about the underlying iceberg structure that is invisible - the code and how it integrates together in the final product?

Agile and our software quality issues
What more and more execs are realizing that the workable software now seems to contain more structural defects than ever before ,especially the ones that span across layers - ex: Architectural issues, proper framework use, complexity etc. As a result, this shift in defect ratio seem to move from typically 85:15 ( Functional Defects:Structural defects) to now up to 70 - 30 in some cases. Developers today are more pressured to deliver functionality than ever before, given the fluidity of the Agile environment and hence sometime have to make a choice on ignoring the underlying structural quality for the sake of delivering functionality. This then becomes - Technical debt that hounds the team later resulting in lot of rework - root cause analysis (RCA) , re-development , re-testing etc on problems that are more and more cryptic and involve multiple best-of-breed technologies ex: Team has to shut down and restart my weblogic server every 4 hrs in production. This some how seems analogous to how we are exploiting earth for natural resources today at the cost of starving our future generations tomorrow.

6 things Agile teams can do to improve structural quality
So what can teams do to deliver workable software that not only delivers the right functionality but the right structural quality?

  1. Publish a list of best practices that a team has to adhere to and respect from a structural quality perspective upfront to the development teams. Prevention and education is the first best best medicine.
  2. Plan for 10% of the sprint cycle time to fix structural issues that could come up as part of the product development life cycle
  3. Use an automated structural quality solution every sprint cycle to measure the application structural quality holistically and not just code quality - Resiliency, Performance, Security, Architectural compliance, maintainability etc
  4. Integrate any structural issues that come as part of the sprint cycle to a system like JIRA and move it to the product backlog for fix
  5. Provide developers the flexibility to prioritize and fix these structural issues based on how they execute their user stories for a release. This part thus doesn't constrict them totally but helps them manage their time better over a life cycle.
  6. Just before the product is ready to be shipped, a quality gate at that stage ensures that the product is complete not only from a functional quality standpoint but also from a structural quality perspective.

In fact, you should further refer to a recent webinar between Forrester - Wipro-CAST that discusses amongst others the trade-off between quality and speed in Agile development and how best-of-breed system integrators and partners are managing this facet. Learn how to integrate structural quality analysis into CI/CD pipelines.


Read the full story HERE!




  This report describes the effects of different industrial factors on  structural quality. Structural quality differed across technologies with COBOL  applications generally having the lowest densities of critical weaknesses,  while JAVA-EE had the highest densities. While structural quality differed  slightly across industry segments, there was almost no effect from whether the  application was in- or outsourced, or whether it was produced on- or off-shore.  Large variations in the densities in critical weaknesses across applications  suggested the major factors in structural quality are more related to  conditions specific to each application. CRASH Report 2020: CAST Research on  the Structural Condition of Critical Applications Report
Open source is part of almost every software capability we use today. At the  very least libraries, frameworks or databases that get used in mission critical  IT systems. In some cases entire systems being build on top of open source  foundations. Since we have been benchmarking IT software for years, we thought  we would set our sights on some of the most commonly used open source software  (OSS) projects. Software Intelligence Report <> Papers
Making sense of cloud transitions for financial and telecoms firms Cloud  migration 2.0: shifting priorities for application modernization in 2019  Research Report
Load more reviews
Thank you for the review! Your review must be approved first
You've already submitted a review for this item

A safer approach to application modernization and re-factoring for cloud