- Everyday DevOps duties
- DevOps and Agile methodologies
- Thanks to DevOps, developers can focus on their work
- Testers work faster and more accurately
- Managers have a better sleep
- The business perspective: DevOps ensures a faster and cheaper release
- The end user gets a better app
- DevOps? 10/10, would hire
Depending on whom you ask, DevOps can mean a set of rules, processes, development tools, a specific person, or an entire team watching over the smoothness of development. In some organizations, DevOps will be responsible for the product’s final quality, and in some, it will not. Some people don't even recognize the name DevOps at all and talk about system admins.
On some level, however, it doesn’t matter because regardless of the definition and scope, DevOps always has the same role — to create a development environment that will facilitate the work of testers and developers. Which, in turn, is expected to increase code quality and end-user satisfaction.
What does this mean in practice, however?
Everyday DevOps duties
At OG, DevOps are people responsible for the tooling and software environmental needs of specialists, mainly testers and programmers. So the example needs coming from the team may look like this:
To find bugs in the app faster, I want to be able to make an anonymous copy of the production environment with one click,
We have two servers where we’re running out of space and need a bigger drive,
Before we release a feature, we want to be able to test it in a separate environment without messing around with the whole product, and if it doesn’t pass the tests, the entire team should be notified.
DevOps receive such tickets and provide solutions in the form of appropriate software environments and tools. Automation is key here. Most of the work of DevOps is to automate repetitive tasks that programmers or testers would have to do manually every time.
DevOps and Agile methodologies
DevOps is a natural response to programming in Scrum or other Agile methodologies that assume frequent deployment and testing of applications in short cycles, not longer than 2-3 weeks.
Each time we release an app for production, we have to perform many administrative and processing tasks unrelated to coding, e.g., building a new version of the application, uploading it to the server and reporting it to the right people correctly.
This is where DevOps comes into play and sets up the software environment so that all such things happen automatically. DevOps is responsible for CI/CD (Continuous Integration/Continuous Delivery), meaning the creation and optimization of automatic processes that allow for quick and repeatable code release.
Thanks to DevOps, developers can focus on their work
Before the DevOps idea was established, the developer had to do all the work mentioned above himself or ask an admin for help each time. So he had to be able to manage server-related issues and, above all, spend time working on them instead of coding.
DevOps takes repetitive tasks off the programmers’ shoulders and automates their work, thanks to which they can entirely focus on their specialization. Every specialist, sooner or later, will need helpers who make their job easier. Salespeople have pre-sales specialists, marketers have researchers, and developers have DevOps.
Testers work faster and more accurately
As I mentioned in the example at the beginning, DevOps creates an environment that allows implementing and testing only one feature without tackling the entire product.
Thanks to this, QAs work faster and more accurately because they can test smaller packages (instead of large, clunky batches of changes) and better refer to what went wrong and why.
Second, DevOps makes it easier for testers to replicate data. For example, it’s often the case that a client or Product Owner reports a bug in the app, and the notification goes straight to the tester. Thanks to the environment prepared by DevOps, they can create a copy of the production data (anonymized if needed) for testing with one click, saving themselves much manual hustle (that can be less precise too).
Managers have a better sleep
At a basic level, the most significant benefit for Project Managers or Product Owners (depending on the type of project) is the high quality of the code, or simply, a top-notch app. Thanks to the work of DevOps, people responsible for creating the application have the best conditions for coding and testing, so it can be assumed that they are doing the best possible job in given circumstances.
But we can also go down to more process-related advantages for managers. Let's go back to the pre-DevOps situation and imagine that the app spits a critical error, and users cannot log in.
The programmer quickly fixes what's broken, but the new version needs to be uploaded on the server ASAP. Without an established, automatic process, the administrator must do it. If they're at work and have time, that's great, but if they're not or busy, we've got a problem.
DevOps removes these types of bottlenecks from the process. As a result, the managers have greater control over the project and the confidence that the continuous project flow is kept.
Similarly, suppose a PM or PO is heavily involved in the project and wants to be updated with all new releases. In that case, because of the DevOps infrastructure, they will immediately receive a Slack notification about the latest version. They will quickly download and click through it without waiting for the demo.
The entire process, from uploading the application to the easily accessible, clickable version, will happen quickly and automatically, giving the PM more control over the project and, ultimately, more peace of mind.
The business perspective: DevOps ensures a faster and cheaper release
At the end of the day, all that we do in OG is for the sake of our clients, and thanks to DevOps, they get the software faster and cheaper. DevOps processes and tools are an investment that pays off after a few sprints.
For example, if DevOps implements a CI/CD environment at the start of the project, all testing and deployment will happen automatically until the final release. Depending on the project’s complexity, it saves a few to a dozen administrative working hours a month, but above all, it allows software specialists to stay focused and efficient over the course of the whole project.
On top of that, DevOps creates an IT architecture that’s easy to introduce to new people. So if new developers or testers come in, or even if the whole product team needs to be replaced, the knowledge and infrastructure transfer will take 15 minutes, instead of 40 to 80 hours.
The end user gets a better app
Working in agile methodologies and Continuous Delivery processes, the development team releases smaller features more often instead of making huge updates every six months.
Of course, on the other side of the equation is the user who regularly receives bug fixes, but they’re regular, small, and thus barely noticeable. Not to mention that if a user finds and reports a bug, thanks to the self-managed environment, it’s likely to be fixed immediately.
Therefore, thanks to the infrastructure set up and managed by DevOps, actual users can enjoy trouble-free app use.
DevOps? 10/10, would hire
DevOps is a trend that has entered the canon of software development, and I can’t imagine working without it. We’ve already mentioned that software development strives for simplicity but tends towards specialization and outsourcing too.
In the long term, hiring more people who do a narrower job well is more efficient and profitable than one or two omnipotent employees responsible for the entire process.
DevOps manifests precisely this trend, and after running an IT business for over a decade, I’m sure this is the right direction.
So big up to all the DevOps in the world for making our work smoother, our clients happier, and the end-users relaxed. Cheers, folks!