Implementing Continuous Delivery at Enterprise level requires a different approach than when implementing it in small or medium sized organizations. Continuous Delivery (CD) in large organizations demands additional activities, because in such environments there is more complexity due to company size, diversity, number of systems and scale of operations etc. In addition, enterprises mostly work with globally distributed teams making implementation of Continuous Delivery even more challenging.
This blog series highlights key pitfalls to avoid in an Enterprise context to successfully implement Continuous Delivery. It is especially written for IT Delivery Managers who intend to use Continuous Delivery to increase their on-time delivery, while still being flexible and at the same time deliver quality.
Pitfall #1: Not enough groundwork
Development teams will hit some brick walls when they start implementing CD. Most common challenges we have seen have to do with skill set, infrastructure, tooling, culture and governance. Development teams have only few things in their circle of influence that they can act upon completely by themselves. For example, they can influence their coding, testing practices and application architectural decisions.
Management support and actual involvement is needed to do some groundwork. This is like paving the road so that people can travel faster. Preparation is often organized by installing teams that ‘pave the road’. This will enable development teams to move faster on their CD journey.
However, not everything is known upfront. There is the risk that the road does not match the traffic or usage, and that central teams start to impose their solutions to the local teams. Having a central and dedicated effort to focus on providing infrastructure, defining a new governance model or defining a new application landscape does help. There should be tighter feedback loops from teams to central teams. Central efforts are very beneficial, however remember bottom up intelligence is key.
Key questions to see if your company has organized things well:
- To which extent can your development teams request/create an environment on their own, without going through lengthy approval processes?
- To which extent can your development teams use pre-configured/ template tool sets (e.g. Jenkins master jobs, master POM etc) which they can extend and/or modify to their needs?
- To which extent can your developments teams deploy to any environment (including production)? If not, what do they lack: knowledge or passwords to higher environments?
Next concrete steps to improve this are:
- Create cloud infrastructure which can be scalable based on team needs.
- Create automated provisioning system with infrastructure as code.
- Consider involving dev, test, ops and release management active sooner.
Next blog will dive into next pitfall – “Not plotting the terrain”
NB – Would you like to see what your current situation regarding Continuous Delivery is? Take a few minutes for our online mini-assessment and get practical tips, which can help you immediately.