I was recently asked about the principles that I follow for DevOps adoptions, so I thought I’d write down my list of principles and what they mean to me:

Test early and often – This principle is probably the simplest one. Test as early as you can and as often as you can. In my ideal world, we find more and more defects closer to the developer by 1) running tests more frequently enabled by test automation, 2) providing integration points (real or mocked) as early as possible, and 3) minimizing the variables between environments. With all this in place the proportion of defects outside of the development cycle should reduce significantly.

Improve continuously – This principle is the most important and hardest to do. No implementation of DevOps practices is ever complete. You will always learn new things about your technology and solution and without being vigilant about it, deterioration will set in. Of course the corollary to this is that you need to measure what you care about, otherwise all improvements will be unfocused and you will be unable to measure the improvements. You should measure metrics that best represent the areas of concern for you, like cycle time, automation level, defect rates etc.

Automate everything – Easier said than done, this is the one most people associate with DevOps. It is the automation of all processes required to deliver software to production or any other environment. For me this goes further than that, it means automating your status reporting, integrating the tools in your ecosystem and getting everyone involved to focus on things that computers cannot (yet) do.

Cohesive teams – Too often I have been in projects where the silo mentality was the biggest hindrance of progress, be it between delivery partner and client, between development and test teams or between development and operations. Not working together and not having aligned goals/measures of success is going to make the technical problems look like child’s play. Focus on getting the teams aligned early on in your process so that everyone is moving in the same direction.

Deliver small increments – Complexity and interdependence are the things that make your cycle time longer than required. The more complex and interdependent a piece of software is, the more difficult it is to test and to identify the root cause of any problem. Look for ways to make the chunks of functionality smaller. This will be difficult in the beginning but the more mature you get, the easier this becomes. It will be a multiplying effect that reduces your time to market further.

Outside-in development – One of the most fascinating pieces of research I have seen is by Walker Royce about the success of different delivery approaches. He shows that delays are often caused by integration defects that are identified too late. They are identified late because that’s the first time you can test time in an integrated environment. Once you find them you might have to change the inner logic of your systems to accommodate the required changes to the interface. Now imagine doing it the other way around, you test your interfaces first and once they are stable you build out the inner workings. This reduces the need of rework significantly. This principle holds for integration between systems or for modules within the same application and there are many tools and patterns that support outside-in development.

Experiment frequently – Last but not least you need to experiment. Try different things, use new tools and patterns and keep learning. It’s the same for your business, by using DevOps you can safely try new things out with your customers (think of A/B testing), but you should do the same internally for your development organization. Be curious!

If you follow these 8 principles I am sure you are on the right track to improve your speed to market.

{"GetBlogPosts-return":{"author-list": [{"Name":"Mirco Hering","Short_Description":"Mirco leads Accenture's DevOps and Agile practices in the APAC region with a focus on Agile and DevOps transformations…","Long_Description":"Mirco leads Accenture's DevOps and Agile practices in the APAC region with a focus on Agile and DevOps transformations. He is Accenture's global offering lead for DevOps, helping to define the services Accenture offers in this space. He is also a member of the global Accenture Agile leadership team.","Url_Bio":"","Url_Image":"//www.accenture.com/t20181113T203019Z__w__/us-en/_acnmedia/Accenture/Conversion-Assets/Blogs/Images/5/Accenture-Mirco-Herring.png","Social_Linked_In":"","Social_Twitter":"https://twitter.com/intent/user?screen_name=MircoHering","Social_Email":"mailto:","AuthorId":"{0EB40F26-DC50-473A-9757-BFF234C56292}"}], "tag-list": [{"Url":"/us-en/blogs/blogs-accenture-devops?blogTag={E13DA579-5FDF-4E15-BE63-FABBB78D1995}&author=0eb40f26-dc50-473a-9757-bff234c56292","Tag":"DevOps","TagId":"{E13DA579-5FDF-4E15-BE63-FABBB78D1995}"}],"recentpost-list": [{"PostTitle":"Something is missing in the Agile manifesto","PostUrl":"/us-en/blogs/blogs-mirco-hering-something-missing-agile-manifesto"},{"PostTitle":"It’s time to make application management sexy again","PostUrl":"/us-en/blogs/blogs-mirco-hering-modern-application-management"},{"PostTitle":"The simple Agile question","PostUrl":"/us-en/blogs/blogs-mirco-herring-agile-maturity-definition"},{"PostTitle":"Don't waste a perfectly fine transformation for your Agile and DevOps change efforts","PostUrl":"/us-en/blogs/blogs-mirco-hering-transformation-agile-devops"}], "year-published-list": [{"year":"2018"},{"year":"2017"},{"year":"2016"},{"year":"2015"}], "blog-archive-link": ""}}

More blogs on this topic

Archive

COMMENTS (0)

By providing your e-mail address, you agree to the terms outlined in our privacy statement associated with commenting on the site. Your e-mail address will not be used for promotional marketing purposes.

Already applied to a job?

Sign in with e-mail and password

Validation summary

Invalid username / password

Or sign in with LinkedIn

Comment submitted

Submitted comment may not display automatically.

Comment submitted

Submitted comment may not display automatically.

There is already a separate, active Accenture Careers account with the same email address as your LinkedIn account email address. Please try logging in with your registered email address and password. You can then update your LinkedIn sign-in connection through the Edit Profile section.

There is already a separate, active account tied to your LinkedIn profile. Please continue registration for this program without your LinkedIn profile or use a different LinkedIn account or email address.