Monday, November 20, 2017

Post Agile

Recently, during an Agile meetup, I came across an interesting question - What is after Agile? This intriguing question did not leave me all day. I explored the internet but was not able to come up with anything concrete.  Agile is one of the steps in the evolution of our working style and heavily influenced by the very nature of the work. Then today, I thought, I should pen down my thoughts.
Before the industrial revolution, we were doing most of our work as craftsmanship which required a heavy dose of interpersonal relationship, col-location, rich communication, and solving unique problems every time.  The industrial revolution brought the division of labor, mechanization, and scientific management which diminished human relationships, rich communication, and problem-solving in a day to day repetitive work environment.

At present, software development is in pre-industrial revolution era where every problem is unique. Though some of us tried to utilize learnings from post-industrial revolution work culture in software development due to a unique proposition of software development, it failed repeatedly. In software development, most of the problems faced are unique, so they require unique solutions. This paradigm forces us to look into pre-industrial era work style which is very similar to Agile way of working.
I visualize at least two possible scenarios which may arise in software development area.

Scenario 1: We develop machines which can solve the problems posed by software development. The software development may turn into something like assembly line operation with the arrival of intelligent machines. Artificial Intelligence, machine learning, and general purpose components are trying to move software development in this direction.

Scenario 2: We keep on solving existing challenges using software and in this pursuit keep on discovering newer challenges. This will keep Agile or its successor alive provided we do not discover a way to replace human intellect by the machine.

So, which scenario may play out in the future? If I have to bet, I will go with the second scenario in short to medium term (approx. 30 to 50 years) and then to the first scenario. As we are discovering better and better AI algorithms in the area of assisted learning, sooner or later we are bound to discover non-assisted AI algorithm (probably using assisted AI algorithms). At that time Agile or not Agile may lose the relevance.