Developer Viewpoint — What is DevOps and when should you use it?
DevOps is Agile done right and it is an Agile enabler
Developer Viewpoint is regular section on the blog a section, the previous post can be read Developer Viewpoint — How has Dynamics 365 changed in the last few years.
In this post Ekhor Asemota explores the topic of DevOps with Kriss Sulikowski.
Kriss is popularly referred to as the “daddy of DevOps” within the Capgemini Microsoft community for his relentless effort to ensure that the core tenets of DevOps are adopted by projects within the unit. He is a highly experienced software engineer who has worked in several industries using a broad range of technologies such as C#, ASP.NET, SQL, SSIS, SSRS, BizTalk and CRM. He currently focuses on .NET, Azure, Dynamics 365, and DevOps.
Ekhor is an experienced Microsoft developer with experience in DevOps processes for Dynamics 365
Ekhor: In today’s IT industry, DevOps is trending and as such everybody is jumping into this train with little knowledge of what DevOps entails. Could you given a brief overview on what you would consider as DevOps?
Kriss: The simplest answer is that “DevOps is Agile done right and it is an Agile enabler”. It is not a job role or a buzzword but the whole business transformation and big cultural change required for everyone — starting from the top managers, finishing on the final person supporting the software in the production. It requires business, architects, developers, testers, operations, security — and anyone else required for the delivery to work together as a one team with work clarity managed in the same way as normally just development work was managed, for example using a Kanban board. All team members should share the same values and have the same objective — working software in production!
Ekhor: What do you think are the benefits of DevOps?
Kriss: It is a customer-centric delivery approach eliminating waste and many potential manual mistakes thanks to automation. This allows it to achieve a very high release pace — even a couple of releases per minute if required — and allows us to deploy in small batches to bring some value immediately, instead of the one big release much less often; which usually goes wrong and makes it very difficult to find what was wrong. The one big release usually ends up costing more.
Thanks to the instant feedback obtained directly in DevOps from the production environment and customers, business really knows what brings the value and makes the difference and is worth further investments. All defects are found much faster and can be fixed much faster as well.
Ekhor: In your opinion, do you think DevOps must be used all the time or probably used in collaboration with other processes depending on the requirements or prevailing context?
Kriss: It depends on the customer requirements, technology choice and delivery expectations. DevOps is a set of many good practices, but we have to decide which work for us and which we want to use and how — none of them is mandatory!
Ekhor: What do you think are the main challenges or obstacles that may prevent an enterprise from implementing a DevOps pipeline for its IT delivery?
Kriss: Existing team structures, reluctance to change, peoples’ mindset and lack of trust — which often is oriented to isolate teams and protect them behind some agreements, SLAs and official sign off process, instead of encouraging collaborative work for the final delivery success. Each team has its own objectives and metrics — very often completely different to what really makes value for the customer, but something that helps to justify the team’s existence and prove how much work the team is doing.
Ekhor: Do you think training of personnel can help mitigate some of these challenges?
Kriss: Definitely YES. Because as I said earlier DevOps affects the whole business and the delivery team — everyone should have some basic understanding of DevOps.
Ekhor: Are there tools that can assist such enterprises in achieving this?
Kriss: The best tool l I know is Microsoft Azure DevOps (formerly VSTS) — the only one on the market with a fully comprehensive integrated DevOps Hub instead of a set of many independent small tools integrated together. Microsoft has done some huge progress and now is one of the top players in the DevOps world — providing top class tools, trainings and materials about DevOps.
Ekhor: Would you recommend DevOps training as a must-have skill for any software engineer?
Kriss: Yes. Software Engineers especially should understand the whole delivery process, not just the coding side of that. I expect each Senior Software Engineer to be a DevOps coach at the same time, helping the rest of the team and business to understand DevOps and use it in practice, and any Software Engineer to understand and be able to set up and use the main DevOps practices without the need of any dedicated DevOps Engineer, which in my opinion is an artificial role created by marketing sales guys.
Ekhor: I know predicting the future is a scary thing. However, what do you think will be the future of DevOps?
Kriss: It is happening already, I don’t think any modern project which is using cloud technology can be delivered without some of the DevOps practices anymore.
Here are some resources that provide a quick introduction to DevOps and tools: