Friday, September 11, 2015

The Agile "Mindset"

Most of the Project Management Community in Software Development has been trying to imbibe and use Agile Methodologies in their production processes, but very few have been successful in delivering to the promised potential. In this article I will try to bring to light some of the obvious but less known concepts that prevent us from realizing the full potential of the Agile Methodology.

Agile as a "Mindset" - For most of us, Agile is a set of processes and practices - Scrum, XP etc. - that define the way to implement an Agile methodology. However, few realize that the true meaning of Agile is to be just that - AGILE. If this was Just Another Set of Processes (JASP), there would be little point in calling it Agile. Its Agile because it is supposed to be a flexible and tailor-able to the needs of the organization, without being restrictive in its implementation. Quite simply put, Agile means doing things the way it works Best.

But isn't that Anarchic and Chaotic??

Well, that is partially the point. In order to understand this, let us try and understand the basic difference between the way things work in Agile Vs Non-Agile worlds. As an example, let us compare the Software Development Process to the Car Assembly Line.

Car Assembly
Software Development
Outcome is knowable
Outcome is not tangible
Change is Expensive
Low Cost of Change
Boundary of Completion is Well Defined
Work will expand to take up the amount of time available, based on the desired quality

Therefore, in Car Assembly Line we need “Trained Workers” whereas in Software Development we need “Knowledge Workers”. However, most of the times we try to apply the Assembly Line processes to Software Development. Therefore, while implementing Agile, all we want to do is DO Agile. Instead, the full potential of Agile can only be realized by Being Agile.

What does it mean to BE Agile?
Agile is not a set of procedures but a mindset. And in order to switch to this mindset, one needs to inculcate the following:

  • Welcome Change
  •  Failing Early
  • Build and Feedback Rules
  • Continuous Delivery
  • Value-Driven Development
  • Small Value-Add Slices
  • Learn Through Discovery
  • Continuous Improvement

These few points move the style of working from the Assembly Line mindset to the Knowledge Worker mindset. As a Knowledge worker, you are not Trained but Educated. Instead of following processes, you learn to Create processes that best fit your needs and provide the best results.

Therefore, Agile is not chaotic, anarchic or process deficient. It is a way of working where the process is applied if it works and only the processes that work are applied.

Scrum, XP, Product Backlog, Continuous Integration etc. etc. are just practices and tools that have been designed to give you a head-start into the Agile way of work. But at the end of the day the point of being Agile is that you may formulate your own unique tool/practice that works best for you.

Note that in order to be truly Agile you will need to get out of the mindset of “Just tell me what to do” to the mindset of “I have a problem to solve”. And that is when you move from the Assembly Line way of thinking to the Knowledge Worker way of thinking.

I would like to end this article with an illustration that conveys the difference in the mindsets very beautifully.



(This article has been largely inspired by the very informative Webinar done by Ahmed Sidky on September 25, 2013. The recorded video of the Webinar is available here. I would highly recommend anyone reading this to view this brilliant presentation)

No comments:

Post a Comment

Role of a Risk Facilitator in the Risk Management Process

What is Risk In her very lucid lecture on Risk Management , Dr. Penny Pullan provides a very apt definition of Risk, with an analogy ...