After nearly a full year of a global shift towards remote work, we've reached the point at which we can evaluate what has succeeded and what hasn't in our new work-from-home normal. For software engineers, DevOps has proved to be one of the most useful methodologies for maintaining open communication, overcoming bottlenecks and hitting deadlines. DevOps is a set of practices that combine tasks of software development and IT operations. The goal is to shorten product development and provide continuous delivery capability while maintaining high quality. DevOps and Agile are complementary and our industry seem to be in agreement that bringing people together to collaborate is a better way to approach product development. But what's the next stage of DevOps? How can enterprises and other large organizations start from scratch and adopt DevOps methodologies?
Inertia can be an imposing challenge when attempting to change long-standing habits and workflows. No one likes change, and people will revert back to their natural state if given the chance. Many team leaders will read The Phoenix Project and DevOps guides, only to fall back into old habits because they don't know how to start. Rather than make wholesale changes, start small, team leaders can ease into DevOps through 15-minute daily stand-up meetings by having all parties that are responsible for a product's success (e.g. Developers, Operations, Product Owners, etc.). These brief check-ins keep everyone informed of what's happening throughout the team by asking each participant three simple questions:
- What are you working on?
- What have you completed?
- What is blocking your progress?
The goal here is to use Agile practices to get disparate teams into the same room to solve challenges for those that are blocked. Remember DevOps is not a single person or the automation process that is in place, it is about removing silos from within your organization to achieve a common goal
In pre-COVID-19 times, teams would often find themselves hamstrung by the idea that DevOps requires employees to be on-site and at their desks at all times to facilitate open communication. The reality is that employees only need to be online and engaged to make the most out of daily stand-ups. DevOps allows you to give more autonomy to your employees — one more reason why it has gained so much traction over the past year.
The second challenge when implementing DevOps is in choosing the right technology stack, particularly given the strong opinions this decision will draw out of every member of an engineering team. In this case, the best path forward is the path of least resistance — find the option that is easiest for your team to implement and addresses your most pressing problems, then look to the bigger picture. For my team, our goals necessitated a focus on observability and visualisation with tools like New Relic, helping us to more quickly identify and overcome roadblocks.
It's important to bear in mind that DevOps isn't about blaming anyone — it's about moving forward. Beyond improving workflows, DevOps has the potential to dramatically improve a company's culture by shifting the focus entirely onto eliminating headaches and facilitating progress.
Letting go of bad work habits can be as difficult as trying to quit smoking, and some teams will inevitably fail during their first try at DevOps. However, DevOps rewards those who keep trying. If the stand-ups don't seem to be having an impact on performance, managers could consider adding biweekly retrospectives and planning meetings to reflect on how the team is performing and set the course for upcoming work. Again, this is to improve the process of teams being engaged and communicating.
When DevOps is adopted within an enterprise, it's unlikely to take hold all at once throughout the organization. Instead, one or two teams may start using DevOps methodologies in their work, serving as test cases for the rest of the company. Once teams get into a rhythm, they'll find that DevOps is contagious. Products go out faster with fewer bugs and with a quicker mean time to resolution — beyond the effect this has on performance and a company's bottom line, it also has a visible impact on quality of life. If one team's employees are relaxed, loose, and logging off on time every day, their friends in other divisions are going to want to know how they got there. This is even more noticeable during the pandemic, where communication and collaboration are essential for success. DevOps is the right mindset to build a better way of working, particularly when teams are spread out remotely.
DevOps gains momentum as teams invest more time and energy into its methodologies. Software engineers will eventually hit a point where projects are on time, on budget and hitting every milestone marker just by maintaining communication and focusing on the little things. As each team adopts a detail-oriented DevOps mindset, it will lead to a better company culture and happier employees.
The contagious nature of DevOps isn't limited within a single enterprise. A software engineer's clients will also see the value of DevOps as their ideas come to fruition faster. This instant gratification — where customers see a concept implemented and automated over the course of a single sprint — becomes its own proof point for DevOps, particularly as habits build over time and start to operate as a well-oiled machine.
No perfect end state
DevOps isn't a silver bullet, and success depends on clearly defining each organization's goals. Success could mean improving cadence or creating automation pipelines. Some enterprises may want to prioritize GitOps, while others will focus on infrastructure. The key is to define these priorities clearly, and ensure that the team's energies are focused in the right direction.
There is never a true end state for DevOps, but it is possible for a team to reach a state of near-perfection for their needs. Any company that adopts DevOps should do so with the goal of making each team member's life better, using the methodologies to become more agile and more ephemeral.
DevOps is neither a marathon nor a sprint. It could be better defined as a diverse set of exercise routines — regardless of where you start or how many reps you do, you'll soon end up in a healthier place.