Tuesday 23 March 2021

If Software Development Has Peaked, why do Projects still fail?

by Aiden Gallagher & Peter Reeves (our podcast)

Introduction

In modern application and integration development it is easier than ever to configure, build, and deploy services and applications. The growing ease of use and maturity of infrastructure provisioning and software configuration systems are ensuring that prototypes, development, and production deployments can happen as quickly as possible.

Docker, Cloud, Kubernetes, Serverless deployment, autoscaling, and improvements to server virtualisation initiation all mean that a new program can be setup in days rather than weeks, that code can be pushed to production in hours rather than days and in many cases that the automation of many of these tasks means testing, operations, and security checks are already incorporated into the process. 

In many senses it feels like the development and deployment of software has peaked. But then, projects continue to fall behind schedule, they continue to cost more money than anticipated and they continue to contain bugs at the simplest of user flows. So, if software development has peaked, why do projects still fail?

Table of Contents

Article 1: Non-Software Considerations

  1. Partial Decision Makers
  2. Requirement Gathering is slow
  3. T Shaped Experts
  4. Simple does not Equal Cheap
  5. Cultural and Task Disparity Across Organizations
  6. Governance Perception
  7. Who ‘owns’ this work?
  8. Communication is Key

Article 2: Technical Considerations

  1. Over Engineering of Automation
  2. Infrastructure still exists
  3. Upgrade Acceleration
  4. Debugging takes time

Conclusion

Projects have greatly improved the time in which they can develop and release features and products, greater flexibility is possible through better working methods and product improvements and the skill required to develop, build, deploy and test code is decreasing as complexity is abstracted from users.


But projects continue to fail for a number of reasons including poor communication, an over reliance on expertise abstraction, poor cooperation with other teams and a lack of contextualisation of how projects and teams fit into wider business goals.


These issues can become overwhelming when not understood and exacerbated when ignored. But by having a knowledge of what might lead to problems in a project and knowing the warning signs teams can work to resolve the issues before or as they start to occur. 

No comments:

Post a Comment