Feb 22, 2021
Lessons From the Field
Part 8: Automating the Basics
Written by Craig Vosper, Chief Delivery Officer
Last week we talked about defining a true north and how to focus our retrospectives on moving towards it. When we first began having our teams work towards a true north, we quickly identified one key area that would benefit greatly from improvements – the automation of tests cases, builds, and deployments.
Given our focus on delivering value as soon as possible, it became clear to us that we needed to have the ability to deploy often and ensure that each deployment was done with consistency and high quality. Projects that had manual build and deployment processes increased our risk far too much for us to support them sustainably in the long run.
We started this effort by focusing on a project in which we had quarterly releases. This project was selected because of its extensive regression testing and manual deployment processes that were fragile and inconsistent. The first issue we tackled was the deployment process. We reviewed each step in the process starting with the one that was most complex. We continued to execute against each manual step in the process until it was entirely automated and could be executed during every check-in.
We then tackled the large volume of regression tests. We first reviewed all the individual tests to understand and identify which ones could be removed and were no longer applicable. Once that was done, we prioritized the remaining tests based on their duration (when completed manually) and highlighted any that covered test cases in the upcoming release.
One reason there were so many regression tests was due to the significant changes that took place throughout a given quarter. We gained a lot of focus by implementing a structure in which releases took place every 4 week. This also forced us to prioritize all the changes in order to deploy things effectively. At the same time, we began to automate the longest regression tests – bringing the manual regression times down from a couple of weeks to just a couple of days.
One additional lesson we learned from this activity was to: “just start”. We did not try to develop the perfect solution, but just started to bite away at the issues we knew about and solved them one by one. We continued to do this until we felt we had achieved the best ROI possible. This not only improved our time to market, but also improved the quality of our deployments and ultimately the quality of our final solution.