Agile software development
“Remember: You can't spell fragile, without agile”
“On and on the rain will say, how agile we are, how agile we are”
Agile software development is often considered a software development process, but is actually a marketing technique developed by 3M to sell more post-it notes. It's rapidly increasing in popularity and the creators are laughing all the way to the bank.
Another quietly held belief is that agile development was devised by a group of grumpy developers in a near empty bar one dark and rainy night when they couldn't ride their bicycles. They complained to each other of specifications that kept getting in the way their creativity. Quickly, since they were running out of money, they devised a plan that Marketing would buy into since those guys weren't smart enough to understand it. This culmination of Sam Adams Summer Ale and lime jello shots allows a developer the freedom to create without having to decide what the product or function should accomplish. The process saves the developer several hours of effort. That small slice of time is exponentially expended at the end of the project where Testing and Marketing try to determine if the resultant product does anything useful or has any value at all. Since that fateful night Development has considered Agile a pretty neat method for testing the creativity of their co-workers.
Techniques[edit | edit source]
Agile software development encourages the use of several different techniques:
- Test driven development - the art of developing software while driving a race car or writing wonderfully complex tests you never plan to run.
- Behaviour driven development - training monkeys to write code - also known as "monkey see, monkey do"
- Death Star driven development - Developing software by using The Force.
- XP / Extreme programming - XP suggests two practices:
- Peer-programming - Brain washing your peers into doing your work
- User stories - fun stories about stupid users that you talk about over lunch
- Beer-powered - Yeah.
- Scrum - A project management methodology taken from synchronized swimming, the primary goal of which is to convince people they need to attend a "certification" course so they can become a "master"
- Certified ScrumMaster - Someone suckered into a taking a Scrum certification course.
- ScrumMasterBater - Someone who fantasizes about leading an agile project team.
- Sprint - A mass delusion that breaking a project into pieces will make it go faster. Soon to be owned by a Verizon near you, allowing them to Horizon-tally integrate the software development market and take over the world
- Sprint Review - a formal gathering of peers who detail their excuses why the sprint was too short
There are many well-known case studies on the application of the above practices in the real world of software development [1], [2] and [3].
Origin[edit | edit source]
The idea for agile software development was founded by the owners of 3M during their annual post-it party. During the next weeks they created the Agile Manifesto, a book bound in human skin and written in blood. The book itself proclaims that all humans, especially users, are evil, and developers must sell their souls to large processes to avoid having to deal with humans. The most important points of the manifesto are below.
Manifesto[edit | edit source]
- We value processes and tools over users - they just complain anyway
- We value documentation over working software - from a good documentation you can always recreate the software
- We value contract negiotiation over customer collaboration - don't get scr**ed
- We value sticking to the plan over responding to change - after all, what is a plan for
- We value no meetings sitting down, all must be "standup" meetings
- We value beginning all meetings by singing the imaginary "Lords Prayer" of Agile, as below:
The Agile Song[edit | edit source]
- Imagine (with apologies to John Lennon)
- Imagine there's no requirements. It's easy if you try
- Just a bunch of coders, reachin' for the sky
- Imagine all the people, coding for today
- Imagine there's no schedules. It isn't hard to do
- No silly project deadlines, no one supervising you
- Imagine all the people, coding hand in hand
- Imagine (with apologies to John Lennon)
- You may say I'm an extremer but I'm not the only one
- I hope someday you'll join us and make coding lots more fun.
- You may say I'm an extremer but I'm not the only one
- Imagine oral documentation. I wonder if you can
- No need for UML diagrams. Just words passed, man to man
- Imagine just refactoring, playing in the sand
- Imagine oral documentation. I wonder if you can
- You may say I'm an extremer, but I'm not the only one
- I hope someday you'll join us and make coding lots more fun.
- You may say I'm an extremer, but I'm not the only one
“Lloras tu y lloro yo, Que agilidad, que agilidad ”