Yesterday, I presented on “Making CD happen” at the ThoughtWorks Talks Tech March 2019 edition at the ThoughtWorks Singapore office
.I use slides to support my message, so there is sometimes context around the various slides.
Over the past few years, organisations have been increasingly recognising that along with governance and project management (read, scrum), they need to pay attention to engineering practices too. The result has been an increasting move to achieve Continuous Delivery (or “CI/CD” as it is unfortunately often also known).
The reality is that the IT budget went into expensive scrum and “CI/CD” tool implementations, dedicated staff, and so on.
With a plethora of tools and consultants, lots of tutorials and IT budgets assigned to such initiatives, there are a lot of implementations out there which are not yet delivering results.
- There are still defects in production
- There is a lot of wait-time between code-commit to go-live
- Triaging defects continues to take time
- Integration between workstreams continues to be risky
- Fixing a defect doesn’t guarantee that nothing else got broken
- Changes pushed to prod often leads to failures
- What works in one environment doesn’t work in others
To quote from the Continous Delivery explanation at Martin’s website (a informative 1 pager; he points us to Jez Humble’s original website on Continuous Delivery too):
quote:
You’re doing continuous delivery when: [1]
- Your software is deployable throughout its lifecycle
- Your team prioritizes keeping the software deployable over working on new features
- Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them
- You can perform push-button deployments of any version of the software to any environment on demand
end quote
In this talk, I covered some of what it takes to make Continuous Delivery happen.
One cannot just install a CI server, link it with Jira, set up some jobs, and then declare “CI/CD is in place!!”. There is a lot of engineering, process optimisation and collaboration that is needed.