Remember the buzz around SOA? Service Oriented Architecture, or SOA, was all the rage for almost three years, beginning in 2006. It was everywhere you turned, whether in presentations in almost every conference you attended or in conversations with clients and colleagues. Every vendor or systems integrator at that time was also guilty of this, as we were all recommending SOA related products to our clients. Many companies also invested heavily in such products.
Then, just as suddenly as the buzz had started, it disappeared. Sometime in January of 2009, a well-known publication published the obituary of SOA, basically saying that SOA was dead- and that was it! It was like ‘The Emperor’s new clothes’. Overnight, all references to SOA disappeared and it was hard to find anyone who was working with SOA then. This was basically because many firms which had invested heavily in SOA-related products did not get the results they expected.
I mention this because in many respects the current craze around micro-services mirrors everything that happened with SOA. With the emergence of the cloud, everything we talk about today is somewhere or the other related to services, whether it be infrastructure services, platform services or software as a service. Even the platforms such as Amazon AWS, IBM Bluemix or Microsoft Azure are essentially providing services rather than products. Everyone today is talking about micro-services. Yet, even if you search, you will find it very hard to find a good case study where an organization has reaped the expected returns using micro-services architecture. Another thing to note is that it is SOA or at least a subset of the SOA approach which underlies micro-services.
So what exactly is happening here? Are we going to repeat the same cycle that we saw with the craze around SOA? What are the lessons we can draw from what happened with the buzz around SOA?
According to me, the earlier excitement around SOA holds at least one very important lesson for the current cycle we are going through with micro-services and it is this: If we are to get the most of these technologies, we need to concentrate equally on both the business side as well as technologies themselves. Let me explain this a bit.
My basic thesis is that during the last cycle, a majority of the firms seemed to fixate on understanding and implementing the technologies without paying adequate attention to the organizational, cultural and process changes required to make the new approach work and this is why they failed. This also applies to the acquisition of the correct skills as well as retraining of the workforce required.
Today, I see the same mistakes being made in the current scenario. IT companies or SI’s can no longer think only in terms of applications when working with their clients. Rather, they also need to really understand the client’s organization, the organizational structure, and their business objectives. Thus, one key skill required to make such engagements work is to be able to talk to the business, understand their deliverables or KPIs and then design the project around this. Thus today, there is a need for people having both technical as well as either business skills or domain experience in the related field.
This basically implies people who can talk to business, understand how it is currently modeled, identify the right set of services as required by the enterprise consumer ecosystem and then design a holistic plan which takes organizational, governance and skills aspects into consideration while delivering the service. In this new model, vendors and SI’s should be acting as the bridge between business and IT at their client organizations. This is why we have the business analyst kind of roles, the ones focused on the business aspect, carrying out the requirement gathering exercise. Carrying out such roles effectively also requires well-developed soft skills. Thus apart from providing purely technical training, companies also need to provide business and soft-skills related training to their employees.
In short, if companies are to be successful with micro-services implementations, we need more focus on the non-technology aspects. Time needs to be spent on developing a well-rounded plan for the implementation of the applications suggested. Moreover, companies also need to support this eco-system by organizing and providing the right kinds of training for their employees.