Agile, agile and money.moo
One does not simply sit at a computer and write code any more – that is so old fashioned – ridiculous even! Any software worth considering by a bona fide business must now be Engineered(TM) Properly(TM). There are a plethora of engineering “methodologies” available, as any Computer Science graduate will tell you, but only one is really worth considering [as of 2012]: Agile. I have worked for and interviewed with many companies that claim to be “Agile”, and it sometimes seems that project leaders value “Agile experience” more highly than coding experience; but never before my tenure at money.moo have I had to suffer the shameful indignity of a company that has become born-again Agilist.
From what I can tell, the origins of Agile stem from the frustrations of “developers” (the new word for “computer programmers”, the nomenclature that some of us old farts prefer) in decades past, having to deal with rigid, slow-moving processes in order to create software. Once fashionable methodologies such as Waterfall or Spiral, whilst popular with the management consultants who depended on their massively top-heavy processes to keep them in business, really started to piss the developers off; the ones who did the actual work. Trying to actually get stuff done was becoming increasingly difficult as a result of the heavy management-led process. The thought was that developers need to do their thing, and get feedback from users (which includes QA teams) rapidly in order to address concerns at an early stage; that way they can provide fixes and perform re-engineering where necessary in the face of design problems which only come to light when someone actually tries using the software. If a specification was faulty in practice, the project could be altered and the code changed before any more wasted commitment. Thus was born the idea of agile development, which begat The Agile Manifesto:
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
There are few experienced developers who would disagree with these sensible ideals. The idea of “agility” (small ‘a’) is key in an industry which moves as quickly as technology, and so it makes sense to us.
Such simple ideas form the basis of many doctrines, belief systems, and religions. Taking religion as an example: even basic ideas such as “be nice to people”, “look after your parents” or “forgive people because we all make mistakes” will mutate over time as the result of egos, embellishments, and errors, into dogma that requires the cutting of holes in sheets, eating fish on Friday, not eating shellfish, or wearing special underpants. Until recently these splinter-groups could have taken hundreds of years to develop, but now we have the Internet. The Internet has allowed Agilism to evolve into a monster within a short decade.
Now read on…