Delivering Digital Services to our stakeholders and customers is hard and the overall industry success rates are dismal. The reasons are many, but some of the most common problems are below. Do any of these sound familiar?
Long and painful testing cycles: After months and months of coding an application, the team declares it done (but still needs testing). The application is passed on to the testing team to begin integration testing. Of course, the testing team discovers that nothing is working. A lot of the initial findings are setup and configuration issues, and after several weeks of figuring things out, the application is finally up and running in a test environment. Now the testers are going through their manual test scripts and are reporting bugs and a long cycle begins: testing, debugging, fixing, testing, debugging, etc… At this point, the project is already behind schedule and the number of bugs being found is high. The focus shifts to only fixing the critical and high severity bugs in order to be able to get the application to a production ready state.
Production deployment failures – After fixing all the high severity bugs, the application is deemed production worthy and it is passed on to the deployment team. The team now spends months and months prepping and configuring the production environment and trying to figure out why what was working perfectly fine in the test environment is not working in the production environment. Basically it is a repeat of the cycle that the test team went through to get the application running in the test environment:
testing, debugging, fixing, testing, debugging, etc…
Poor Product quality– Even though we spent month testing, due to prior delays in schedule, testing is always cut short to make up for the lost time. In addition, the capacity of the testers is limited due to the fact that most of testing is being done manually and the testers have to test and re test after every change. With developers not properly testing their own code, with testers having limited capacity to do proper functional and regression testing and by cutting the testing cycle short, the resulting end product is of poor quality with a lot of bugs slipping through to production.
Unsatisfied customers – After going through this very long and painful cycle of product development and finally delivering the application to production, the team discovers that the client is not satisfied with the solution delivered. Not only are there quality issues, but the solution delivered does not properly address the client need. Some of the features delivered are no longer needed, are hard to use, or are incorrectly implemented from a business perspective.
The combination of these pain points leads to long concept to deployment cycles and results in unsatisfactory solutions and unhappy clients. It also makes a team’s ability to respond to market conditions and the changing needs of clients very slow. Many organizations have looked at Agile processes to help overcome some of these problems but is Agile the answer?.
Also check out the Lean Discovery, Agile Delivery, and DevOps Mindset presentation slides here as well as the entire Digital Service Delivery blog series: