DORA DevOps Maturity Quadrant
I remember as a junior engineer how we initially ran the software development and operations cycle in a waterfall fashion, with lengthy lead times to delivery, shifting to agile after a few years as the need for a faster software delivery cycle grew. DevOps arrived as a ‘big bang’ in 2015, allowing software features to be written and released faster.
But that’s enough of the history!
To most people DevOps means Continuous Implementation and Continuous Development (CI/CD), and that is indeed what drives DevOps in an organisation when established properly. But there are other elements required for the DevOps journey to become sustainable and cohesive within an IT organisation in the longer run. We can categorise these into three key areas:
These three key elements must maintain a healthy environment for the CI/CD to run effectively and deliver business value to our software application customers.
Processes must be simple, supportive, effective and geared around agile planning and delivery to dynamically prioritise and manoeuvre software development towards fulfilling customer demands.
In addition, people must be agile and customer focused, with complementary skillsets to deliver real value to the customer while achieving rapid delivery.
The organisation, business units and team culture should support this by maintaining a healthy environment with boundary-free communications and the freedom and empowerment to innovate. Building teams, recognising their excellence and providing strong, supportive leadership is crucial.
DevOps teams act as one to achieve common goals, and that is to deliver fully functional software and features to the customer, faster!
With organisational processes designed with this objective in mind and teams built and led to succeed, this concept and the IT culture behind it becomes an enabler for all, making CI/CD effective in:
- Planning and prioritising the business requirements to be implemented
- Implementing business features in an agile manner
- Automatically testing the new features and resolving any issues
- Automatic deployment based on quality gates being passed
- Monitoring and gathering live health statistics
- Fewer issues in the live environment
- Bottlenecks and bugs found are prioritised and reported back to the requirements and planning process
Below shows a high-level list of items that must be leveraged by the CI/CD process:
- Automated application deployment and promotion to next environments
- Integrated automated testing in all deployment environments
- Utilisation of test virtualisation (mock services and mock data) to shift-left testing
- Orchestration of complex deployments for applications that span platforms (data, mobile, backend, middleware)
- Manage slow-paced and fast-paced deployment dependencies (2 Speed IT)
- Write the CI/CD pipelines as code (PaC)
- Automated infrastructure management and provisioning with infrastructure as code (IaC)
In summary, this means development of high-quality software that works in production can be delivered to the customer faster than before. The effectiveness of the delivered software can be validated quickly, with a rapid turnaround for any course corrections.
Enterprise architect | Mitra Innovation