Categories
Community Tips

DevOps 101 for a Dev Who Doesn’t Like Ops

(To the tune of The Fresh Prince of Bel-Air

— 

Now this is a story all about how 

DevOps improves software development, here and now 

And I’d like to take a minute, just sit right there 

I’ll tell you why DevOps should make developers care 

— 

In the world of software, development and ops 

Often work apart, and it’s easy to flop 

But DevOps brings them together, for a common goal 

To make software faster, better, with more control 

— 

Now that the sick rhyming has captured your attention, let me tell you why even as a developer with little knowledge of ops knowledge, I’m a big fan of DevOps. It’s so time-saving that I cover the basics, even when I’m the sole developer on a project. Who doesn’t like saving time?  

The basics of DevOps 

So, what is DevOps? At its core, DevOps is a culture and set of practices that aim to break down the barriers between development and operations teams to improve collaboration and efficiency. It involves automating and streamlining the software development process, from code creation to deployment and beyond.  DevOps is not just a set of tools or processes, but a way of thinking about software development. It’s about creating a culture of collaboration, communication, and continuous improvement. With DevOps, developers and operations teams work together to build, test, and deploy software faster and more reliably. 

Additionally, DevOps promotes collaboration and communication between different teams, which leads to a more efficient and streamlined development process. By breaking down the silos between development and operations teams, everyone is on the same page, working towards the same goal. This results in faster and more reliable releases, as well as overall better quality of the product. In short, DevOps is a time-saving and collaborative approach to software development that ultimately leads to better outcomes for everyone involved. 

Why should developers care about DevOps? 

You might be wondering why, as a developer, you should care about DevOps. After all, isn’t that more of an operations thing?  Well, the truth is that DevOps is highly relevant to developers as well. According to the Developer Nation Survey 23 results, DevOps adoption keeps increasing (from 47% to 56% in 1½ years), while most of the implementation work is done by software developers themselves, with an earlier Developer Nation report mentioning only 5% of the DevOps practitioners being DevOps specialists.

In my mind, this makes sense. DevOps is, at its core, a culture of breaking down the walls between devs and ops people. While a specialist can be invaluable in complex implementations, or to help kickstart a culture, the culture itself should be the responsibility of generalists. By adopting DevOps practices, you can save time and streamline your development process. You can avoid manual steps in building and deploying your code, get test results without running tests, and have your changes live in production far faster than you would without DevOps.  Sure, setting up version control, pipelines, testing, and deployments takes some effort. But more often than not – even sometimes when you’re the only one working on the project – the investment is worth it! 

DevOps exists to make your life easier 

This is the bottom line – DevOps is not there to create a new profession of DevOps consultants (just like Agile Software Development isn’t there to ensure Agile Coaches make their bread). It’s there to make the lives of devs and ops people easier.  By adopting DevOps practices, whenever I am actually working with Ops, DevOps makes the collaboration easier as everything is traceable, often reversible,  and even easier to document. This means that if there are any issues or bugs, we can quickly identify where the problem occurred and take steps to fix it. 

According to the Q3,2022 Pulse report DevOps implementation witnesses more instrumental action from the programmers and software developer community with a 45.6% involvement, while the supervisory roles reflect the participation of less than 12% with Tech/engineering team leads at 11.2%, architects involvement at 10.7% and the C-level CIO/CTO and IT management roles at the lowest 10%. Computer and data science students show some practical learning involvement with 13.3%.

DevOps also encourages frequent communication between developers and operations, which helps to avoid misunderstandings and ensures everyone is working towards the same goals. The result is a more efficient and effective development process, with better quality software releases and happier customers. And even when I’m working by myself, DevOps makes it easier to deploy, maintain, and scale my apps. This collaboration can help to identify and fix issues earlier in the development process, reducing the risk of costly delays and downtime caused by issues discovered during deployment or after release. 

Just recently, I was building a .NET MAUI project – my first one – and realised I only had a rough idea of how to build, test and publish an app, and not even that on how to distribute it. The obvious solution was to let someone else figure the details out for me. Luckily, I have someone who knows more about this stuff – namely, GitHub.  Getting the basics to function using GitHub and Visual Studio App Center took me about an hour. GitHub Actions would take about 15 minutes to ship my code – from checking in to having a download available on App Center – and I don’t have to do anything!  I should probably add some tests to the build process, but hey, I’ll add those right after I’m done with the documentation. If you want to read more, the whole article is here.

How to get started? 

Here are some simplified steps to get started with your journey as a DevOps-savvy developer: 

  1. Automate everything you can: Automate your build, testing, and deployment processes using tools like GitHub, Azure DevOps, Jenkins, TeamCity, and GitLab.
  2. Collaborate with Operations: Work closely with your Operations team to understand their needs and to ensure your code runs smoothly in production. 
  3. Embrace Continuous Improvement: DevOps is all about continuously improving your development processes, so always look for ways to streamline and improve your workflows. 
  4. Learn by Doing: DevOps is a hands-on approach, so start by experimenting with new tools and practices on small projects. 
  5. Prioritise Communication: Effective communication is essential to DevOps, so ensure you regularly communicate with your team to ensure everyone is on the same page. 

And remember, DevOps is a journey, not a destination.  By taking small steps towards automation, collaboration, and continuous improvement, you can gradually incorporate DevOps practices into your development workflows and reap the benefits of faster, more efficient software development. Don’t get too attached to any one tool – plenty of tools exist, and you can get tremendous value from many. 

Bio: Antti Koskela is a Microsoft MVP trying to stay current on what’s what in the Azure and .NET world, and a Developer Nation Dev Committee member.