It's the Ranger4 #DevOpsFriday5 series - today's contributor is Keith Watson. He's DevOpstastic!
1) How would you describe the relationship between DevOps, Agile and ITIL?
Agile is a development philosophy that recommends delivery of working software in small timebox windows (Sprints), using these deliveries to learn what is required to satisfy customers then responding quickly to this feedback. DevOps is a combination of culture changes, tools and business processes which aims to help Agile teams improve their release process to build a complete solution using better tools to deliver Agile MVP on a regular basis (continuous delivery). ITIL is a set of recommendations on how to deliver and maintain services to customers. Hence Agile, DevOps and ITIL can all work together to build better solutions, delivered more frequently to customers with faster feedback loops to provide a better service.
2) Can you describe what DevOps looks like when it’s ‘done’?
Done is when you can deliver a solution which includes all artefacts in the stack (application code, user interfaces, infrastructure) to the real customers in a regular candence (e.g. daily, weekly). This enables feedback to the development teams whilst improving the relationships between those who develop the solutions (developers) and those who support the live services (Operations). There are different models of DevOps which go from separate teams to one team that does the development and operations (though this usually means the organisations are close to or at continuous delivery
3) What do you think are the key metrics for DevOps?Deployment frequency, time from initial idea to customer delivery, MMTR, customer satisfaction (internal and external) with delivery of solutions and artifacts. % automation of deployment artefacts (infrastructure as code, application code, automation of regression testing)
4) What attributes constitute a culture embracing DevOps?
Improved understanding in development of stability required by operations/live applications Improved understanding by operations teams of need for agility and speed of infrastructure and applications deployment required by agile development teams Willingness to collaborate between teams Willingness to overcome the politics between teams Aware of need for factory to deliver solutions rather than just project specific goals People willing to be boundary spanners e.g. developers who now have an interest in operations/infrastructure provision and sysadm operations who want to code and understand impact of operations/infrastructure provision on the speed of SDLC
5) Is Continuous Delivery the ultimate goal of DevOps? How do other ‘Continuouses’ (continuous deployment, testing, improvement etc) contribute in a DevOps transformation?
The ultimate goal is to increase speed of deployment of new ideas to test the assumptions made at the beginning of the process. Software engineering is different to other forms of engineering because the artefacts created during the process are not as visible (unlike a bridge, car or other tangible object). The "Continuouses" are means to an end not the end itself. By using DevOps to achieve continuous delivery it provides faster feedback loops to test the assumptions (e.g. a customer will like/want this function/interface).
About Keith: Keith Watson has 30 years of experience at all levels of software development, test, infrastructure and customer support. This includes working for IBM where he managed various software development teams creating enterprise ready middleware products in UK, India, and Europe. Keith is currently an Agile Delivery Manager running a team who provide IT systems to Ordnance Survey software development teams using infrastructure as code tools and DevOps principles. Keith has also spoken at various DevOps conferences and contributed to DevOps articles and case studies.
Do you have something you'd like to say about DevOps? If you would like to be featured on #DevOpsFriday5 click the button below.