Transforming developer from commodity to premium — A tale of Microservices

This blogpost is an excerpt from a talk I gave couple of months back in one of the events. Slides can be viewed here http://www.slideshare.net/kishoreyekkanti/commodity-to-premium

From Commodity To Premium

As we know most of the software development processes are acquired from the manufacturing industry. One of those processes which we were not able to get out of, for the past three decades is treating developers as assembly line workers. There is always an incentive for industrialists to give one and only one specific task for an assembly line worker. If you want to replace the worker for any reason its more of no brainer and you can get another worker without any man hour loss.

developer commoditised

Software development process in the large organisations goes through similar cycle of doing a tiny bit of thing repeatedly and these corporates don’t have an incentive to grow their commodity(read it as developers). This means software maintenance on a large project without having any context of how the business works. Which also means you can never create your own assembly lines.

In the past creating your own assembly lines is not easy. It requires huge upfront cost and mandates you to go through multiple humps of legal, accounting, safety requirement. But, this is changing. Over the last five years, the innovation in hardware and software sector led us to place where creating these companies is no longer a complex process.

In this post i’m going to take the example of Micro services as a concept and try to correlate the concepts of Micro services to the change mentioned above.


Technology Heterogeneity

You no longer need to develop a software application in one specific language. Your technology stack can comprise of any number of technologies and there are enough softwares which can orchestrate your interactions across different technology projects.

Technology Heterogeneity as it is called, gave the flexibility for developers to go beyond their traditional technical stacks and use the right set of tools for the problem in hand. The raise in javascript and other dynamic languages made the need for faster prototyping tools very obvious.

Raise Of Third Party Tooling

There’s a surge in *As Service platforms over the past few years. Some of them to highlight include -

  • AI As Service — Tensor Flow, Wit.ai, SciKit-learn
  • Bot As Service (raise of Chatops) — Facebook Messenger, Slack, Hipchat
  • Voice Recognition As Service — IBM Watson & Cognitive Intelligence platforms, Amazon Echo, Google Home,
  • Authentication/Authorisation As Service — Auth0, Firebase, OneLogin, OAuth Providers

Ease Of Deployment

With the increase in cloud hosting providers, the provisioning costs of your production infrastructure has drastically reduced.

cloud hosting

Raise Of Devops Platforms & Deployment Innovation

There’s a lot of churn and innovation happening from the systems engineering point of view. More & more abstractions are being created to make the deployment of your application far more easier than ever. From infrastructure provisioning to Application deployment and releases there are enough set of free tools which will help you to hit the ground running.

Resilience & Scaling

With the decrease in cloud hosting prices, there’s an increase in B2B businesses which operate on Resilience & Scaling of the systems which are provided as service.

Isolated & Autonomous

Software development teams are becoming more self organised and self sufficient. Microservices adoption is one of those reasons which has driven this change.

Raise Of A Premium Developer

Technology Heterogeneity, Ease of deployment, Resilience and Scaling, Isolation and autonomous nature of the teams gave raise to product developers who have 360 degree view of the systems both from product point of view and also from the engineering point of view.

Its Time To Build Your Own

Amount of free software which is at our disposal gives us an option to try our idea at extremely low costs.

As a software engineer, you can take career risks aggressively because your downside is fundamentally capped.

The economics of the big company do not reward the lower level workers. Today, it is easy for a skilled engineer to opt out of the poorly compensating corporate machinery.