Thursday 11 December 2014

Where does Agile fit in

One of the first questions, I get asked by people new to Agile is "where does Agile fit in". My quick answer is wherever there is a complexity in domain or technology front - which requires an "inspect and adapt". In other words, where the means uncertainty and/or ends uncertainty is high.

Say you are developing an e-commerce application - there is this urge to use the latest mobile and/or analytics technologies. Then there is a the market dynamics which dictate what we do and when we do. This means that we cannot go the waterfall way and say here I have the finalized requirements, develop and get it running in x months. This way, we lose out on leveraging the technological advancements and can be out of sync with the market.

This would be a classic case for adopting agile, you have a fair idea of what to do and how to do, but you do not want to cast it in stone. Agile provides the flexibility to introduce new technologies and fine tune & prioritize the requirements in line with market needs. So at any point we are committing ourselves to 2-4 weeks of work (i.e the iteration length) and rest is open to change. 

In project contexts where things are fairly straightforward - like say developing a timesheet in a known technology, then it can certainly be done in the agile way, but the real benefits which will accrue in a complex set-up might not be realised.

Later on, in my Agile journey, I found out that this was best explained by the Stacey's graph or Stecey's matrix. This was developed by Ralph Stacey of the University of Hertfordshire.

Picture Credit: Edgeware Aides

The software industry has also be been moving from simple towards complex applications. As we see, more and more software is being used domain specific and hardware intensive contexts in Medical equipment, automobiles, Mobility, Utilities, Energy, Retail and so on. Software has moved from MIS oriented systems of 1990's to satisfying niche requirements coming from various sectors - also called as Vertical Specific Software.