DevOps - Part I

What is DevOps and how can startups adopt it?

In this post, I want to talk about this buzzword and what DevOps really is and how can startups adopt it. This is a two part series where first I want to talk about DevOps and some philosophies around it. The second part is it’s adoption as a startup.

Let’s start with a definition: DevOps is fundamentally a business-driven software delivery approach which takes a new business service from an idea all the way to production, providing the service to customers in an efficient manner and capturing feedback as customers engage with the service. DevOps is made up from two words: Development and Operations, the former word implies the process used to create a product and the latter is the production environment the product that we created is launched and maintained. One of the defining features of startups is flexibility in themselves and in adapting to the market and at their very core they are harbingers of change. That makes it easier to bring DevOps culture to startups, but every new adoption must have a need driven by the business itself or the market. It is a set of ideas used to guide our behaviour and more fundamentally to give us the flexibility required to change our behaviour based on extrinsic feedback incorporation1.

Originally, just like most Agile approaches to software development, DevOps originated as a methodology for large companies to create cross-functional teams that can make product release easier, but this doesn’t mean that DevOps can’t be applied as a set of principles to startups. At its core, DevOps is a more than product-management, it’s a cultural movement and it’s all about people in your team. An organization may adopt the most efficient processes or automated tools possible, but none of that matters without the people who eventually must execute those processes and use those tools. Building a DevOps culture, therefore, is at the core of DevOps adoption. Here I want to make the case that startups can greatly benefit in the areas of customer discovery and development from putting together a team in the same way a corporation would put together a DevOps team2.

DevOps is also guided by the agility of an organization to catch on to trends and incorporate the most popular ones into their own products and speed of delivery of those features. This is due to the shift in technology development that has occurred over the time, in the past the software we used was written for purposes of recording and managing the recorded data in the form of transactions. This required a very stable core and the business making that software only needed to provide maybe one or two updates. The landscape now is far different from what existed back then, with the advent of mobile and web apps, we no longer just have software recording data but also an interactive component that the customers interact with. This creates the user-experience that keeps the old users wanting to use the app more frequently and also bringing in new users. This system of engagement requires high performing and very rapidly changing interfaces that the business creating them needs to adopt, deploy and update.

Applications like that must be easy to use and be easily to change to address customers’ changing needs and evolving competitors. Given these needs, the user-interfaces require intense focus on user experience, speed of delivery, and agility or put differently a DevOps culture to grow around them and the best place to start this off is startups.

DevOps is well understood at the level of corporates, but as startups what can we take from it? This culture change is not drastically different from your regular work, it can be thought of as a business process that exists as a collective of tasks that when put together logically in the form a service that is easy to maintain, sustainable and most importantly resilient to perturbation from any number of sources all the while being available for the customers to use. More importantly, this set of principles enable a business to maximize the speed of its delivery of a product or service, from initial idea to production release by heavily incorporating customer feedback to generate enhancements based on that feedback. For a startup, this translates to creating a culture around the team based on customer-driven-development that incorporates feedback as soon as possible. Anyone that has ever worked on new products knows that most products that engineers create don’t see the first custumer (and also the first feedback) until after they have been officially released and these products  doomed to failure. The reason is not that we are not creating them efficiently, but because the end-product that we create is something that fundamentally no one wants to use and to change that we need to incorporate customer feedback in every step of the development process. The process of customer discovery that Steve Blank3 has created describes the basic idea behind it: If you ship a product and nobody wants to use it, that problem occurs because the engineers didn’t validate their assumptions about the product design with the founder, and the founder further didn’t validate the higher-level design with real customers.Enhanced customer experience that is engaging and unique builds customer loyalty and increases market share. To deliver this experience, a business must continuously obtain and respond to customer feedback and that’s what DevOps aims to bring to startups.

A lot of the content here was inspired by DevOps For Dummies by IBM. So stay tuned for more on DevOps and implementation methodologies till next time!

  1. Dig Deeper: Extreme Programming Kent Beck 

  2. Dig Deeper: Refactoring Kent Beck 

  3. Dig Deeper: Customer Discovery Steve Blank