This article was sponsored by PagerDuty. Thank you for supporting the sponsors who make SitePoint possible!
In college, I was part of a student body that managed an intranet portal. One of our biggest issues was recruitment. My team of about 35 first organized a written test for over 400 people, of which 50 made the shortlist. Then we painstakingly interviewed these applicants to arrive at our final selections of about 15. Those involved in the selection collaborated through email, and the process took a few nights.
It was a tedious process, but can you think of a way to improve it? Keep that question in mind as I will come back to it later.
The Good Ol’ Days
Email has become a crucial tool with all sorts of uses beyond basic communication. We’ve all used it as a way to manage tasks, as a de facto forum, as a place for reminders, or even as cloud storage (have you ever emailed yourself an important document?). Development teams communicated through email lists. Code patches were shared over email too. With the emergence of new technologies like website downtime monitors and CRM software, those alerts were shared over email too.
Email providers evolved as well, providing us with tags and filters to better manage our inbox. However, this was only a temporary stopgap, and we soon reached a point where email became overwhelming — there were too many emails and too little time.
After outlining the cracks that develop when we try to manage everything over email, let’s answer the question: Why did we overuse email in the first place?
I believe the answer can be found through an analogy: the use of smartphones in our daily lives. Smartphones are now devices we can’t live without. Whether it’s connecting to friends, taking selfies, paying bills, setting alarms, managing to-do lists, ordering food, booking tickets, shopping — modern smartphones do it all, every day.
As humans, we prefer using a single handheld device to perform all our actions because we prefer the idea of singularity — a single medium that helps us in all our tasks. That is the reason we used email for everything — managing all activity through a medium on a single screen is simpler that ranging over different media.
To answer our original question, email served as a medium to connect everything else and joined them together. Looking at the world of web development, we used email to connect the different parts of development of a web application — from understanding the requirements through discussions, coding and testing, automating the code deployment process to analyzing the feedback of the end users. This is where DevOps comes in.
DevOps is a portmanteau of the words “developer” and “operations”. The idea of DevOps is to merge the whole development and system administration process into one that functions seamlessly and efficiently. At its center is proper collaboration between teams and processes through communication and the use of the right tools.
Great! So What’s Next?
Imagine an organization that works on a latest web technology. First, it needs to ensure a service is created, keeping in mind the exact requirements. The alpha and beta phases of the product are then created and launched. Once the product is off the ground, patches are then released to enhance the features of the product. There are many bottlenecks in this process, like the product not being up to the expectations or the presence of unexpected bugs in releases. DevOps is about finding those bottlenecks and fixing them with increased collaboration.
You may say your team is already working efficiently. Why then should you introduce DevOps in an already established organization? Perhaps you’re already using DevOps principles without giving it a title. It’s all about looking for bottlenecks in the status quo, introducing DevOps principles to fix those bottlenecks, and then measuring how DevOps made the whole process more efficient.
Let’s take a look at three places, beyond software development and system administration, where a DevOps approach could drastically improve processes.
1. Smarter Hiring
Let’s revisit the example of the hiring process I mentioned in the introduction. The process of hiring is a hectic one — and rightly so. If you want the best people to work for you, you need to be able to sort out the best talent from the lot, and this isn’t easy. In web development-related roles, a resume shortlisting is usually followed by a coding test, group discussions and one or more rounds of interviews. Obviously, the same group of people may not be handling all of these — especially if the number of requirements is high.
The bottleneck in this process is the communication time between each stage. Implementing DevOps principles could perhaps help make the process more efficient by a long way, with team members able to communicate centrally and share their thoughts and responses to given candidates.
2. More Dynamic Marketing Teams
If you look closely at Quora, you’d see that it’s basically a form: a platform where people ask questions and others answer them. In terms of functionality, it’s probably the same as any other forum like Yahoo Answers (Yahoo Answers also had the gamification system like Quora). The popularity of Quora can be attributed to one important thing — marketing.
Marketing is an umbrella term for a wide range of activities — from doing market research, advertising, developing and repositioning a brand to evaluation reactions of customers to changes in the product lines and much more.
DevOps can help build a connection between teams focussed on research, branding, customer management and sales. Rather than distributing your conversations between a variety of communication channels and restricting it to a subset of your marketing, work along DevOps principles and work in a more collaborative, open way, and use iterative strategies to develop campaigns and creative material.
3. Happier Designers
The process of designing when developing a web application is not simple. After a long conceptualization process, a first draft of the design is completed. It’ll then go through an approval phase, which might involve multiple people, each with their own (often conflicting) feedback. Then, the design is implemented and tested before it goes live. This staggered approach is not too far away from the kinds of open, iterative approaches DevOps encourages.
A more formal introduction of the philosophy of DevOps could help in increasing collaboration, saving time and leading to higher productivity. An iterative approach, where ideas are developed over time and according to feedback starting with simple concepts and moving to more fully-realized products, would also serve designers well. Constructive feedback, given early and often, may reduce the amount of last-minute revisions further down the line.
Shifting to DevOps
Does the idea of DevOps sound exciting? Maybe you are already using it to a certain extent in your team.
There are many services out there which can help you seamlessly bring in the DevOps spirit. One such service is PagerDuty, simplifying incident management for your team.
Changes to the way your team works can sometimes face resistance. However, you are perhaps not going to feel the shift as there are many tools which make the process easier. For instance, if you use emails to manage incidents, PagerDuty provides an email parser to scan incoming emails for information. If your team prefers handheld devices instead, these native mobile apps ought to do the trick.
On the other hand, if you prefer chat applications to manage team communications, you would perhaps find the idea of an integration of DevOps and instant messaging promising. This pairs the ephemeral nature of chat, with the advantages PagerDuty brings (longer-lasting and searchable information, to name just two).
DevOps is a revolutionary idea, which challenges the traditional boundaries of team dynamics, and you need courage to bring about such change! If you’ve decided to take a leap of faith and try out the DevOps principles, I wish you luck.
Are you considering taking the plunge into a DevOps workflow? Or are you ahead of the curve and using DevOps principles already? Let us know in the comments!
Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers
Jump Start Git, 2nd Edition
Form Design Patterns