The road to excellence is paved with continuous change
Head of Engineering Juho Anttila discusses DevOps success at Valamis’ product development.
“It is not the strongest of the species that survives … It is the one that is the most adaptable to change.”
— Charles Darwin
It’s one thing to just read about changes that run through an organization, and another to actually participate in (and partially act as a driver for) those changes.
Over the last three years, I’ve had the honor of being a part of what can only be described as the ‘DevOps transformation of Valamis’.
On a high level, this whole process has been inspired by an excellent book Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren, Jez Humble and Gene Kim.
We started as a textbook example of a product organization following proven (but somewhat inefficient) development and delivery processes, with software development conducted in cycles of months, and bigger releases deployed a few times a year.
As the product itself began taking big leaps forward, it brought fresh challenges. The knock-on effect meant that deploying new software increments took tons of planning and were often stressful and risky projects. Reaction times for issues and change requests were not optimal, especially when measured using modern software development metrics.
Now, three years later, we’ve turned everything around. What used to be one big monolithic product has been cut down to dozens of independent services that can be developed, tested and deployed, in many cases, completely independently.
Recently we’ve celebrated a huge success in hitting a key DevOps metric: change lead time, to less than 2 hours. That’s the time it takes from a developer making a commit to the code repository to that change running in production, properly tested and approved.
While average lead times for some changes can be higher, we’re still talking only a couple of days for even the most challenging.
Overall, it’s a huge improvement that places us firmly in the high-performing category, already flirting with that prestige group of elite-performing organizations.
Lead time for changes is not the only core metric we’ve improved on.
Our deployment frequency has gone from around once every few weeks to several times a week. As a direct result of smaller changes deployed more frequently, we’ve also pushed the change failure rate well below the magic 15% limit.
Nowadays most of our deployments go through with no issues whatsoever, almost to the point where they are simply routine tasks over a morning coffee.
“High performers understand that they don’t have to trade speed for stability or vice versa, because by building quality in they get both.”
— Nicole Forsgren, Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
As fun as it is to celebrate these victories, I must note that none of this can be taken for granted. A huge amount of work done by individuals throughout the organization has gone in to make both the required technical and process-level changes possible.
The most obvious part of this is the architectural changes required to reorganize our product into those independent modules. That alone has taken considerable effort from all of our development teams, not to mention hours of architectural planning and problem-solving.
Maybe an even bigger challenge still has been aligning a whole organization of professionals towards a completely different process model. Switching from scheduled, heavily coordinated big release projects to continuous delivery affects all parts of the business.
For example, our Quality Assurance team has moved from verifying strictly defined big change packages to overseeing a continuous stream of product increments. Or the Operations team, whose focus has shifted from acting as gatekeepers of production environments to enablers of delivery automation and highly sophisticated monitoring and logging capabilities.
My key takeaway from it all is that no change like this will ever be successful without two main ingredients.
- Firstly, we need talented and motivated individuals in all parts of our organization who share the vision and skills needed to enable such a paradigm shift.
- But that’s not enough without the most important ingredient: organization-level commitment towards continuous improvement and change, the shared ambition to become the best in the market.
The results achieved during the last three years in Valamis are proof that we have found that magic formula. Change is always a challenge, but our people have risen to the occasion again and again.
These kinds of rides can be a bit bumpy at times and change itself never stops but, looking at how far we’ve come, I have nothing but confidence in our capability to continuously improve on all the metrics that define excellence in the modern (and future?) software industry.