Delivering software solutions better and faster – Step 3: OPTIMIZE

The previous blog describes step 2 of the roadmap towards delivering software solutions better and faster. This blog will deep dive into step 3: optimizing the end to end development and deployment pipeline.

Developing software and deploying it to the production environment can be a quite complex process. Capturing the requirements and the business case, making sure the code is compliant with relevant standards, testing to make sure the new code works as expected and does not break any existing code, ensuring compliance with guidelines, rules and regulations and last but not least, obtaining approvals from all parties involved can be tedious and time consuming.

To a large extent, this is the simple truth in a large organization. Many of these checks and balances will remain necessary, regardless of the delivery model you choose. However, processes tend to ‘organically complexify’ themselves. They become more complex over time as new steps and controls are added and old ones are never removed. Furthermore, many of the steps that are currently done manually could be automated. This results in a much shorter lead time.

This step in the roadmap is about finding waste in the development and deployment pipeline and finding opportunities to automate certain parts of that pipeline. Finding waste is typically done by making a value stream map. How to do that is described in many lean methodologies. We have no particular preference for one method or the other. Simply choose one that you like and start mapping. You’ll find that the simple act of mapping your current way of working already provides all the insights you need to reduce waste.

Finding the waste is the easy part however. Actually reducing it by changing the existing process is a lot tougher. This requires all the hard work associated with organizational change management (not the ITIL kind). As mentioned before: do not despair, getting rid of waste is liberating!

Finding opportunities for automating steps in the pipeline is highly dependent on the tools you currently use to support the deployment process. The picture below shows the different activities and artefacts used throughout the pipeline. All of them can either be automated completely or supported by automated tools. In many organizations, the different parts of the pipeline are already (partially) supported by automated tools, but those tools are not ‘talking to each-other’. In those cases, it’s not so much the automation itself but the integration of the different tools where the opportunity for improvement lies.

With an optimized pipeline, your teams should be able to deliver more value faster. Now you’re ready for the final step.

Next part to be published soon i.e. step 4: DEVOPS

 

Featured image thanks to Gerd Altmann from Pixabay

 

This article belongs to
Tags
  • agile
  • development
  • software
Author
  • Maarten Kalk