Your message is highly valuable for us. One of our experts will follow up with you within 1-2 business days to discuss your request or to inquire for additional information if needed.
How do you decide where to start the DevOps transformations in your organization? Knowing the key principles of DevOps and the current best practices is one piece of the puzzle. The second main component of a successful transition is knowing exactly how to apply those guidelines.
DevOps is not about solely adopting new tools for automating certain development and operational processes or applying “patches” to the problematic areas. The key to success with DevOps is to embed its core principles in your company’s culture and relentlessly encourage their adoption and adherence by staff at all levels.
There’s no unified framework for “Doing DevOps The Right Way”, but rather a set of steps transitioning companies can take to facilitate the process as per our experience.
Develop a Vision for Your DevOps Culture
To succeed, you need a clear business justification for embracing DevOps. The process will require a sit down with not just the development and operational teams you will want to merge, but with all business teams.
Take the time to understand the teams’ current needs, the common struggles and pressing pain points that prevent them from operating at full capacity. Optimization without a proper vector is useless. You will have to define very specific objectives and measurements for success during your vision development sessions.
The result of your sessions should be:
- Strong justification for implementing DevOps;
- The overall vision of how it will work for your company.
Draw Your Current Value Chain and Flow
Every company has its internal drivers for creating certain value. It can be purely monetary reward, social responsibility, industry leadership or any other positive outcome you are trying to achieve.
Each and every value is pinned to certain actions, performed by your staff and respective systems or tools. Investigate into these matters. Start with one business unit (the development team) or a business system (Quality Assurance Workflows) and expand from there.
Look into how new features are currently developed, deployed, and then used by customers. Consider how you can make the entire process less wasteful – reduce zero-value processes, increase efficiency of individual actions and the cumulative team effort.
As a Product Owner, you should be asking the following questions:
- What is our current process for this?
- Why are we doing it this way?
- How long does this action take on average?
- What prevents you from doing it faster? What bottlenecks are you dealing with?
- How long does it take to develop this feature and hand it to Ops?
Next, map existing processes and teams to the value chain and define the critical path towards your ultimate goals. See what obvious optimization routes are available. Repeat the same thought process for different teams and look for hidden and indirect opportunities for further optimization.
Communications is a really big place to get started. Getting everyone educated. Developers need to be able to tell the ops team the big things that are coming. Ops will then be well aware that this is coming. Visibility is key here – much more visibility into what’s going on in a day to day basis.
Make Sense of the Key Metrics
Establishing a set of key metrics is essential to have a clear understanding of your DevOps progress over time.
The baseline KPIs to track are as follows:
- Production failure rate: how often new software fails in production over a set period of time (6+ months)?
- Average lead time: how long does it take to build, test, deliver and deploy a new requirement in production.
- Deployment speed: how long does it take to deploy a new product version to a particular environment (e.g. integration, staging, pre-production or product environment).
- Deployment frequency: how often can you deploy new releases to test, staging, pre-production and production environments?
- Mean time to recover: what is the average recovery time for an application after a failure?
- Mean time to production: how long does it take for new code committed to a code repository to be deployed to production?
You may consider tracking other metrics, however, do not go after those that would look impressive on paper, but will not correspond with your value flows or business benefits.
Look Into a New Toolkit
The tools you choose should support the value roadmap you have developed. They should complement your key processes, which in turn support your entire business systems, and match respective value flows.
Automation is the best solution for processes that are time-intensive, prone to error and inefficient at the moment. Your approach to automation should be standardized to ensure that all teams have a common frame of reference.
At a minimum, you should look into tools that will facilitate version control, build/deployment process, testing, change management and possibly Infrastructure as Code.
The ones we recommend are as follows:
- Code Management Tools: GitHub, Bitbucket, Gitlab.
- Build Tools: Gulp, Npm.
- Deployment Tools: Jenkins, Bamboo, Codeship.
- Testing Tools: Selenium, Appium, Sikuli, BrowserStack.
- Containers and Orchestration Tools: Docker, Kubernetes, Ansible, Chef, Puppet.
- Project Management Tools: Atlassian Jira, Confluence, CA Agile Central.
The Full Spectrum of DevOps Tools
How to Assess Your DevOps Performance
Whether you are just en route to adopting DevOps or have already incorporated certain practices, measuring DevOps performance is crucial to succeeding with the initiative in the long run.
As mentioned earlier, DevOps transformations when not underpinned by specific business drivers, can face a backlash from teams, who do not fully share or understand the reason for transition. That is why everyone should be aware of the key success metrics and have a clear understanding of their role in achieving those.
Driver 1: Business Success
Products are valuable for the company when they generate steady revenue, increase customer base, improve the brand perception, reduce customer service costs, and so on.
Each new piece of software pursues a certain goal and can potentially influence either of the following KPIs:
- Average revenue per user;
- Overall recurring or incremental revenue;
- Customer lifetime value;
- Customer acquisition costs;
- Rate of customer churn;
- Conversion rates.
Knowing the exact goals of your product helps everyone on your team to understand how their actions relate to the product success. It also helps you prioritize certain features production over others and improve the overall decision-making process.
Driver 2: Customer Experience
Building a product aligned with your company’s business values does not guarantee its success. If it does not delight the customer and does not meet their expectations, that product is doomed to failure.
Think Fitbit. In 2016, the company had to lay off 6% of their workforce due to lower than anticipated revenues during the holiday season. The new product line failed to meet the customer’s expectations. The good news is, Fitbit was fast to recover from a failure and paid more attention to customer experience KPIs.
For software products, the metrics you should track are as follows:
- User growth rates;
- Average funnel/conversion rates;
- Amount of time spent interacting with a product/feature;
- Number of daily/weekly/monthly visits;
- Frequency of key transactions;
- Split test results;
- Overall customer satisfaction rating and direct feedback.
Driver 3: Product Performance
will immediately delete a mobile app if it froze, crashed or displayed an error. And only 16% will give a glitching app a second chance for recovery.
Web app users may have a slightly higher tolerance for underperforming products, but will still quickly lose interest in a brand that does not offer a seamless experience. Yet few software products are completely prone to failures.
One of the pillars of DevOps is to detect system problems before they manifest or even stage certain failures to test how your system will react. Whether you are planning to adopt Chaos Engineering practices or not, it’s still worth to measure the next performance KPIs:
- Average uptime;
- Database response time;
- % of transaction time spent in database;
- Database query times;
- Resources utilization;
- App response time.
Driver 4: Production Speed
Faster time-to-market is one of the key benefits of DevOps. But the overall speed of development, deployment, and response time to problems should not come at cost of compromised product quality.
To create the right balance, pay attention to the following indicators:
- Mean time to resolution;
- Lead time for changes;
- Frequency of code releases;
- Time elapsed between deployments;
- Wait time at each step.
Delivery and deployment can be significantly accelerated by adopting continuous delivery and utilizing automated testing tools and cloud computing services. IaaS and PaaS platforms eliminate the need to provision and manage servers, networks, or storage.
Driver 5: Product Quality
DevOps bridges the gap between fast development and great software. By improving core business processes, eliminating redundant and ineffective practices and reducing the time spent on reactive actions (bug fixing) versus proactive efforts (building, testing and shipping), the practice enables companies to create high-quality products within shorter timeframes.
To understand how you are performing at this department and whether your current initiatives pay off, take a close look at the following metrics:
- Deployment success rate;
- App error rates;
- Incident severity;
- Outstanding bugs;
- Outstanding support tickets;
- Frequency of broken builds;
- Ratio of manual and automated tests.
Certain quality issues may not emerge up until the production stage, so it’s important that you compare all of these metrics pre/post deploy to get a bird’s-eye view.
Aligning your DevOps transition with the following drivers should give you an overall idea of your current state of DevOps maturity and pinpoint new areas for further optimization. By constantly assessing your DevOps performance, you find new ways to prioritize improvements and quantify the performance results with each new automation or process upgrade.
Moving Forward With DevOps
Transitioning to DevOps is a major mind and operational shift. The practice revamps how your company develops and delivers software and the change involves multiple business units and technical infrastructure. Rapid change is not always welcome. To avoid facing a backlash, break the transition process into smaller steps.
Your teams should experience small victories as the process takes place, to stay motivated and feel comfortable about the upcoming bigger changes. Invest in your development and IT operations staff as they are the employees who will feel the most tension – their jobs are on the line. They are also the key people who will drive further DevOps adoption for your entire organization.
Everyone should understand why the transition is taking place, how they should respond to it and what new success metrics they should adhere to.
Infopulse team will be delighted to assist you in your journey towards DevOps adoption. Our professional team of consultants can help you develop a new operational framework from the ground or help with transitioning an ongoing project. Make the first step towards faster time to market, increased teams’ efficiency and better product quality by scheduling a discovery session with our professionals.