top of page
Writer's pictureNitu Saksena

Rise and Fall of Agile - Short Story

Updated: Oct 2, 2020


Introduction


Software industry started debating the manufacturing industry like approach used for developing software early on. Studies indicate that only around 16% of the projects surveyed were successfully finished within budget and on time with the features originally scoped. 53% of software projects went either over budget, lacked features, did not finish on time, or a combination of these. And 85% of software projects surveyed ended up as failures! 


Rise of Agile


The rise in popularity of Agile methodologies can be attributed to what is commonly known as the software crisis the challenge of creating efficient and useful computer programs in a specific, defined timeline dictated by the waterfall approach. 

Compounding the crisis is the trend of managing software teams with the same methods used for manufacturing or construction projects. Generally manufactured products are identical, think about cars of the same make and model coming down an assembly line one after another which is not the case with software. It is all about customisation to tailor made requirements.

Eg: Salesforce is a great tool however needs customisation to suit the business processes of every customer differently which in fact is the bread and butter of partner companies unless they choose to diversify and start investing in products.


IT vs Manufacturing 

In the construction and manufacturing industry design engineers and managers typically produce well defined checklists with well defined processes and tools that workers are expected to follow. Comprehensive system documentation is produced so defects can be tracked and fixed easy. And in construction, once you sign a contract to build a house, the requirements are frozen, if you want something changed or added there is an additional cost. Change is generally frowned upon and as time passes making changes becomes more and more costly. 

Early software development tried to mimic the construction and manufacturing approach by following what is known as the waterfall model. 

Waterfall has five phases

  1. Requirements & Analysis 

  2. Design &Development

  3. Test

  4. Deployment 

  5. Maintenance

Each phase ends with a well defined frozen deliverables that act as inputs for the next phase. Requirements are captured early and are used as inputs for analysis and design. When the analysis and design phase is completed, we have a fully designed system that is ready for development. When development is done, the system is expected to be ready for testing and so on and so forth.

How Software creation is different?

We all know its impossible to produce software with a frozen set of requirement. It requires iterative prototyping for timely feedback to align it with customer needs. 

So, what's wrong with Agile approach? There are two obvious issues. The first problem is that its hard to stay focused with too many moving parts. Change in one module to have impact in 5 other modules. Agile projects are susceptible to scope creep and gold plating. Too much time is spent on deployment activities unless the project has dedicated CI/CD or DevOps team. 

The second problem with the agile approach is that it is unable to provide holistic vision of the ever changing and evolving project to the top order management. This lead to dis-satisfaction on both ends - customer and vendor. In the end it all boils down to resource constraints (hours, team and budget). Development team members are expected to follow checklists and detailed controls, in other words this approach strategizes processes over people.


Hybrid Approach


In my opinion this approach is most suited to SDLC in the professional services ecosystem. It requires iterative phases and each phase is expected to be gated and has entry conditions before the development team can start working on the next phase. This leads to harmony and collective growth of vendors and delighted customers!Introduction

Software industry started debating the manufacturing industry like approach used for developing software early on. Studies indicate that only around 16% of the projects surveyed were successfully finished within budget and on time with the features originally scoped. 53% of software projects went either over budget, lacked features, did not finish on time, or a combination of these. And 85% of software projects surveyed ended up as failures! 


Rise of Agile


The rise in popularity of Agile methodologies can be attributed to what is commonly known as the software crisis the challenge of creating efficient and useful computer programs in a specific, defined timeline dictated by the waterfall approach. 

Compounding the crisis is the trend of managing software teams with the same methods used for manufacturing or construction projects. Generally manufactured products are identical, think about cars of the same make and model coming down an assembly line one after another which is not the case with software. It is all about customisation to tailor made requirements.

Eg: Salesforce is a great tool however needs customisation to suit the business processes of every customer differently which in fact is the bread and butter of partner companies unless they choose to diversify and start investing in products.


IT vs Manufacturing 


In the construction and manufacturing industry design engineers and managers typically produce well defined checklists with well defined processes and tools that workers are expected to follow. Comprehensive system documentation is produced so defects can be tracked and fixed easy. And in construction, once you sign a contract to build a house, the requirements are frozen, if you want something changed or added there is an additional cost. Change is generally frowned upon and as time passes making changes becomes more and more costly. 

Early software development tried to mimic the construction and manufacturing approach by following what is known as the waterfall model. 

Waterfall has five phases

  1. Requirements & Analysis 

  2. Design &Development

  3. Test

  4. Deployment 

  5. Maintenance

Each phase ends with a well defined frozen deliverables that act as inputs for the next phase. Requirements are captured early and are used as inputs for analysis and design. When the analysis and design phase is completed, we have a fully designed system that is ready for development. When development is done, the system is expected to be ready for testing and so on and so forth.


How Software creation is different?


We all know its impossible to produce software with a frozen set of requirement. It requires iterative prototyping for timely feedback to align it with customer needs. 

So, what's wrong with Agile approach? There are two obvious issues. The first problem is that its hard to stay focused with too many moving parts. Change in one module to have impact in 5 other modules. Agile projects are susceptible to scope creep and gold plating. Too much time is spent on deployment activities unless the project has dedicated CI/CD or DevOps team. 


The second problem with the agile approach is that it is unable to provide holistic vision of the ever changing and evolving project to the top order management. This lead to dis-satisfaction on both ends - customer and vendor. In the end it all boils down to resource constraints (hours, team and budget). Development team members are expected to follow checklists and detailed controls, in other words this approach strategizes processes over people.


Hybrid Approach

In my opinion this approach is most suited to SDLC in the professional services ecosystem. It requires iterative phases and each phase is expected to be gated and has entry conditions before the development team can start working on the next phase. This leads to harmony and collective growth of vendors and delighted customers!







7 views0 comments

Recent Posts

See All

Commentaires


bottom of page