Back in the days, in the absence of handy automation tool, I used to install 40+ servers all manually, following exact same sequence of steps 40 times. I did not neglect the existence of automation tools. At the get-go, I estimated the efforts between sorting out automation and just plowing through the install manually. The option with less estimated effort is the way to go, and manual approach often wins. It wasn’t fair to say that there were no automation tool. There were indeed, clumsy ones, that does nothing but adding one more thing on my list to fix, and a few more words to project manager that come off as bullsh1t.
In hindsight that tells me two things. One, Homo economicus refuses to use automation tool because it can be counter-productive. Two, the tools do not get a chance to improve itself if it is not adopted widely enough to receive sufficient feedback.
A few years later, these tools are much more mature now. It is interesting that the difference in automation maturity does not only span across different years, it also spans across industries. IT Solutions in some industries are just more automated than others.
Think of WordPress, world’s most popular content management platform. When you want to spin up a wordpress site, the steps to configure a server are so standardized that there are tons of platforms out there to automate it end to end. Larger wordpress hosting solutions are usually well architected: web tier is stateless, computing engine is immutable. As a result, fully automated deployment has become pretty much a reality. Similarly, applications in consumer market are widespread as well. Think of CRM. Not only are there many open source flavours, it is fairly easy to find tools to automate their deployment on the cloud. Small and medium businesses delivering SaaS for CRM or finance, are shifting towards continuous deployment in their processes. If you work in these sectors, you are likely to come across a mature automation pipeline, whereas other organizations, especially in the industry, with focus on functional delivery may have very primitive to no continuous delivery model. They are the way they are, again, for a good economic reason.
By industrial solution I am referring to enterprises outside of general consumer market, such as healthcare, aviation, mining, public sector, etc. IT solutions in these sectors are heterogeneous. They usually requires domain knowledge to operate, develop and integrate with each other. Compared with consumer market, solutions in these markets adopts more conservative deployment strategy, stricter change approval process. They have higher cost of downtime, and require more domain knowledge to manage incidents and problems. For this very reason, the level of automation in industries usually lags behind that of consumer market, mostly because automation tool gives them more potential point of failure, whereas IT is not their focus of business.
Does that mean they are not moving forward? Absolutely not. They are evolving at their own pace. Attempting to automate an existing IT process in a rush, can turn out counterproductive if not approached properly. Front line users usually have adapted to their incumbent technology. Although they may not articulate their exact pain point. They know when their IT support makes their lives easier or screws them up. And it is up to the IT consultant to sense that, fix that, and deliver result. From many years of IT implementation and consulting in my own experience, I found the following tips particularly helpful:
- Get honest answer about how the users use their software in their day to day. This is the key to successful implementation. Hint: answers are less likely from the top dogs.
- If full automation is found to be a lofty goal, start with semi-automation. Refine existing steps instead of replacing them with brand new ones. Non-IT professionals are not trained in IT and there is a cost of learning. On the other hand, IT professional’s role is to empower non-IT professionals with technology, instead of converting them into IT specialist.
- Know some of their business. In the industry, there are roles such as business analyst to convert business knowledge into IT languages. Speak with them. Do not ever underestimate the cost of implementing IT solution without understanding domain knowledge.