It was just another Monday morning at the office… or maybe it was Tuesday or even Wednesday, but most definitely it wasn’t Friday. Our customer contacted the team using our chat tool and presented us an idea… and after 37-minutes it was in the production. This is an opinionated writing of that story, from where you will learn our experiences how we managed to pull this off and how we think that having fast deployment pipeline solves many everyday problems.
The idea was that one of the features in our most recently implemented service was not working as intended. Our customer wanted to remove that obsolete feature which was causing confusion among the end-users. The request was interpreted instantly from the chat tool by a single champion of the development team and he started to work with the request.
Actually, he just went to grab another cup of coffee, as it was indeed early morning…
After 37 minutes (and a couple of cups of coffee) the feature was removed from the product and new version was deployed to the production for the end-users. Our customer didn’t get any queries about the confusing feature and we got the usual
(thumbup) in our chat tool when the customer was informed about the production deployment.
Before we can go any faster, we must understand what slows us down. Usually when a customer or any other party experiences that developers are delivering features slowly, they think that it’s the actual coding process which speed needs to be increased. Usually this is just sub-optimizing the single part of the value stream and the actual problem lays in somewhere else.
Waiting and handoffs in value stream are the places where ideas gets stuck for days before it even gets to developer’s desk. There might be excessive planning, waiting for approvals, workshopping, waiting for test resources, waiting for customer’s input or something similar which negates any effort which has been put to speed up the coding process.
In our case, we noticed that when developing the old monolithic application, issues (ideas) were stuck in many different phases during their lifecycle. Our JIRA board had for example
waiting for testing and
waiting for deployment columns. Needless to say, that the time from an idea to production deployment for single issue was not 37 minutes, nor 37 hours. At the worst, it was more close to 37 days.
We realized that by reducing waiting and handoff times we can go faster and deploy stuff into production more often. But how you can deploy more often if your issues take many days or even weeks to implement? The answer is simple; you cannot. What we discovered is that you can deploy multiple times in a day with a relatively small team if you do only small chunks of changes at the time. Keeping things simple and small seems to be the key here. After that, everything else comes to a lot easier.
Having DevOps mentality helps a lot. It is equally important as the small changes because doing small things doesn’t help you, if you still have big and time-consuming testing and release process. “You build it, you run it” is the perfect quote for this situation and the automation is your best buddy when running it.
We tried to decrease all waiting times to minimum when developing new services and get rid of any handoffs which may occur when implementing a single change. And I must say that we managed to do pretty well on this subject.
Getting constant feedback from the customer and the end-users is viable in this process. Doing small things at fast rate isn’t enough, you also must do right things and who’s better telling you which things were right than end-users!
Yes. We have recorded far quicker idea to production times than 37-minutes, it’s just something that we have used as a reference. Currently our builds take couple of minutes to complete so we’re back with the question “How fast can you code it?”
We didn’t achieve this by using waterfall process, nor Scrum, nor Kanban. We had to invent the process of our own: the unicorn process! But just a heads up warning, reading about our journey or copying our process probably doesn’t help you much. You should try things out yourself and seek what suits you the best.
We will tell you more about our unicorn process in the upcoming blog posts. Subscribe to our blog to get the latest updates and stay tuned for the next post!
See what we have to offer - Careers