The statistics about IT projects success rates are shocking, to me the most interesting statistic in this article https://projectjournal.co.uk/2016/03/16/15-shocking-project-management-statistics/ is:
“On average, large IT projects run 45 percent over budget and 7 percent over time, while delivering 56 percent less value than predicted” (Bloch, Blumberg, & Laartz, 2012).
In this research journal entry I want to investigate what are the potential causes of these high failure rates and if the implementation of the principles and values in Agile methods and DevOps at the deployment end of software development projects can help in reducing these failure rates.
What are the issues causing the high IT project failure rates?
As we discussed in SYD701 a few weeks ago the likely cause of why there is such a high IT project failure rate is that projects are so complex nowadays that we do not have the methodologies or thinking paradigms to successfully build the systems on time, on budget and within or above expectations.
What do I mean by the projects being complex? Well the needs IT systems are attempting to solve nowadays are not easily definable, there are many ways the system can be developed and many different solutions that could meet the requirements, whilst the end result is not always agreeable to all stakeholders. In other words the need that the IT system being developed is trying to solve is a mess, meaning it is not easily definable, and there multiple processes and outcomes that could be produced.
The Linear systems thinking paradigm that spawned the Structured Systems Analysis and Design Methods (SSADM) is not designed to help development teams design and develop systems from messes, because the mindset of this train of thinking was you could understand a need necessitating a system by dividing it down to its smallest parts. However how can you divide down a problem/need when you do not understand it.
You can’t and that’s part of the reason why the SSADM is not suitable for systems development of the modern, complex systems we build nowadays.
Lets see some hard facts of IT project failures from a study performed by the consulting company McKinsey & Company and Oxford University:
(Bloch, Blumberg, & Laartz, 2012)
Something important to note in all these ‘failed’ systems is the common characteristic that they all had high risks in terms of financial, temporal and benefits (Benni, 2012), where there are high risks, particularly where the risks change frequently then a non-iterative systems development methodology is not ideal as it is developed to address the risks identified at the start of the SDLC and will not identify and address risks that appear later on in the SDLC, and that is the reason I believe that the study found “Every additional year (in a projects development) increases the expected cost overrun by 16.8% and schedule overrun by 4.8%” (Benni, 2012)
This McKensey and Oxford study performed qualitative research on IT executives to identify what they believed the solution to these IT project issues was and they came to the following conclusions of what is required for a successful IT project:
- “focusing on managing strategy and stakeholders instead of exclusively concentrating on budget and scheduling
- mastering technology and project content by securing critical internal and external talent
- building effective teams by aligning their incentives with the overall goals of projects
- excelling at core project-management practices, such as short delivery cycles and rigorous quality checks” (Bloch, Blumberg, & Laartz, 2012)
Does the SSADM align with these 4 fixes?
Clearly the SSADM does not meet the first and last of those fixes; after the initial elicitation of client requirements in the Systems Analysis stage of the SDLC there is little client requirement elicitation throughout the rest of the project. It is hard for the SSADM to manage stakeholders to ensure the product meets their requirements due to its non-iterative nature, meaning if the requirements change then the system itself cannot change to meet them,
Additionally SSADM does not have short delivery cycles but instead it releases the product in large chunks, this can create a headache for the operations team that have to make sure the product developed in the development environment actually works in the production environment before it is released to the users. I believe this mammoth release of software at the end of the SSADM was part of the reason that the concept of DevOps was first conceived to create a change of mindset to the paradigm of small, frequent releases of software to the operations team.
So due to the non-iterative nature of the Waterfall model which the SSADM follows each project is effectively ‘stuck’ with the requirements identified in the systems analysis stage at the start of the SDLC, thereby not making this methodology useful in environments where user and business requirements change or if there is a high risk of change.
And as we have seen in the research entry journal about DevOps, this deployment model works through the deployment of software from the development to the production environment in small features frequently which are easier for the operations team to test, troubleshot and deploy.
Can Agile and DevOps can help?
Now in my opinion at this stage of my knowledge about Agile methods the implementation of Agile Methods would help enormously in fixing most of the issues related to because:
- Agile methods is timeboxed meaning it promotes that a project is split up based on blocks of time known as sprints. By focusing on time rather than features and due to its iterative nature producing prototypes that can theoretically be ready for deployment at the end of each sprint the Project Manager can ensure that there will be a deployeable product at the end of the project.
This product will likely have the most important features in it, because Agile systems development methodologies such as Scrum generally place the most important features (known as user stories) in the earlier sprints to ensure they will be completed.
2. Now going 45% over budget can be partially attributed to going 7% over time however the difference in the percentages means there is obviously other factors involved and I have to be honest and at this stage say I am not sure how the implementation of Agile methods could help with this.
3. However Agile methods are very likely able to improve the missing focus statistics because there is constant communication between the development team and the clients throughout the agile project.
However in our SYD701 class last week we looked at the history of computer systems and the quote from the paper we were looking at A Short History of Systems Development interested me:
“The problems with systems today are no different than fifty years ago:
- End-user information requirements are not satisfied.
- Systems lack documentation, making maintenance and upgrades difficult.
- Systems lack integration.
- Data redundancy plaques corporate data bases.
- Projects are rarely delivered on time and within budget.
- Quality suffers.
- Development personnel are constantly fighting fires.
- The backlog of improvements never seems to diminish, but rather increases.”(Bryce, 2006)
This is interesting because it shows that the implementation of Agile methods will not solve all of the problems. The second issue in the list; a lack of documentation with modern systems; could easily be perpetrated by Agile methods which focuses on working software over documentation.
As I am working on the Koha Library Management System at work I understand how important it is to have good documentation to understand how a system you didn’t build works as a whole (we are lucky with the Koha project because being an open source project there is a lot of documentation to make it easier for new developers to contribute and so we have a wiki for Koha development).
This is an example of how Agile methods and DevOps is not the silver bullet, they do not solve all of the problems facing modern systems development.
Interesting resources on IT project failures:
Bloch, M., Blumberg, S., & Laartz, J. (2012, October). Delivering large-scale IT projects on time, on budget, and on value | McKinsey & Company. Retrieved March 24, 2017, from http://www.mckinsey.com/business-functions/digital-mckinsey/our-insights/delivering-large-scale-it-projects-on-time-on-budget-and-on-value
Benni, E. (2012, April). Transforming the company Avoiding the Black Swans – Success Factorsa dn core beliefs in Value Assurance. Mobily CIO Summit, Istanbul. Retrieved from http://mobilyciossummit.com/presentations/02_Mickensey_and_Co.pdf
Bryce, T. (2006, March 14). A Short History of Systems Development. Retrieved March 31, 2017, from http://it.toolbox.com/blogs/irm-blog/a-short-history-of-systems-development-8066