Agile is exerting a pull on me, what ho with involvement in Agile events in Chennai, the pull is easy to explain. Learning about Agile were intermittent with a few “Aha” light bulb moments – here is my attempt to connect them dots.
Agile for me is injecting a good dollop of Vishnu(Maintenance, Preserver) nature into the whole software development conundrum.
Let us detour into traditional Indian Trinity – Bhrama(creator), Vishnu(preserver maintainer), Shiva(Destroyer) nature that manifest and explains subject under study.
The Bhrama way of software development is to approach it as unique one off activity – never done before never to be done again. Obviously, this attitude is not going to cut ice with business software. One of Hit games and other software as entertainment could use this model. And reflecting this one off nature, there are very few(much less than handful) temples dedicated to Bhrama in contrast to 1000s dedicated to Vishnu and Shiva.
The Shiva style of software development is clean-room rewrite – throw the old code away – baby with the bathwater. This style is particularly useful for system software and new protocol code. A lot of opensource software is written this way. And yes, the result invariably disrupts and challenges the mainstream. The counter culture tendency does not go well with Enterprise software and so the style is destined to the edges.
Agile is the Vishnu way of software development as I understand it. Vishnu is the deity of Maintenance or preservation. A diligent shopkeeper is a good example of Vishnu nature in action. As I see it, a humble retailer’s rituals has lot in common to Agile software process:
Keep the shop neat and tidy. Ask any successful retailer, they will have very meticulous process for hourly, daily, weekly monthly and annual cleaning rituals. Rather don’t ask – just observe – the practice is so ingrained in them they will not know to talk about it. Agile is clutter elimination!
Move the inventory, Serve it with smile. Retailers keep what the customers wants, give it when they needs it. Retailers constantly engage with customers and building intimate relationship with their customer base to know their needs and wants. Stakeholder centric approach of Agile is exactly that.
Irrespective of actual customer walkins, keep the shop open and functional. Much of retailing is building capacity and waiting for customer with total readiness. Agile software development is successful when capability to handle customer requests is built ahead of actual customer request. The minimalism and prioritized under delivery of Agile is credible only when the capability to over deliver is there but not activated. Just like how the modest retailer creates a virtual abundance for the customer, the (modest)Agile team will have to create a virtual abundance of software development services. Virtual abundance is non-trivial and this is where (In my Opinion), Agile adoption gets tricky.
Much of Lean manufacturing principles celebrated by Agile are covered by shopkeepers. More importantly, the humble retailer smooths out and bridges the rapid changes in both supply and the demand side. This bridging and welcome attitude towards change makes retailers the constant or continuity in the change. Retailers earn this privilege being prepared and waiting – generally considered boring activity. [An aside – in Tamil language Waiting is Kaatal which also means to preserve. A related word Kaaval – denotes Police – that carry out one functionality of Vishnu i.e., maintain law and order. Retailers wait diligently for/on customers and realize profit on each one of them. Thus Diligent Wait is same as Profit which indeed is Lakshmi the consort of Vishnu.] Agile teams indeed welcome and effect the change and strive to be the continuity/constant in the equation. Agile teams achieve the discipline of the retailer with the aid of Scrum or other process – the systematic breaking up of the work into rhythmic routine with incremental improvement built into every cycle of routine.
Agile introduces method in the madness of software development. Now suddenly, software development with all its challenges and quirks is tractable as retail – and unsexy as retail!. Let us face it, Agile takes the maverick shine out of Software Development/IT. The maverick streak ingrained within everyone involved in Software will resist Agile adoption tooth and nail( again. need less to say, in my opinion). However attractive the Agile goodness of Individuals and interactions or Working software or Customer collaboration or Responding to change are – the maverick streak will weigh them all down.