Agile Zone is brought to you in partnership with: Bino B. has posted 2 posts at DZone. View Full User Profile

Agility in daily life

  • submit to reddit

Several years ago, when I was first introduced to Agile software development methodology, I dismissed the idea saying that its just a temporal hype. Few years later, I re-considered it because I saw it staying in the trend. I failed to see its value until I tried it myself, and when I did I was hooked. I was not only hooked, it revolutionized my life as a software developer. First time in my life, I started enjoying my trade and it boosted my confidence on the reliability of the software I write. The term 'craftsmanship' really started sinking in.

Today, I find myself not only following agile principles at work, but implementing some agility in my personal projects. Recently I experimented it with some backyard gardening.

In Summer, I usually do a vegetable garden in my backyard and every year I do it in a 'waterfall' style which involves step by step progress (building of layers) towards the goal. My goal is very simple: plant different types of vegetable seeds.

These were some steps I took to reach my goal:

Clean the previous year's residues and remove weeds from the the entire area - > Cutting the branches from the surrounding trees to allow sun exposure -> Plow the soil in the entire area -> Make multiple small hills for different types of plants - > Plant the seeds. Let's say each step (layer) took one day to complete, which means I take 5 days to reach my goal.

What is the problem with this approach?

  1. Instead of building 'features', I was building 'layers' for 4 days.
  2. A feeling of overwhelming before the beginning of each day's work.
  3. A lack of job satisfaction at the end of each day (except the last day when I actually plant the seed)
  4. High risk (At the end of step #4, If I decided to scrap my project, my 4 days of work goes waste)

This year I decided to apply small iterative steps. Instead of doing one step on a particular day, I did one small but complete iteration in one day. I cleaned a small area, I cut the tree branches required to light only that area, I plowed only that small area and planted one type of seeds and watered them. At the end of that one iteration,which I completed in one day,I felt satisfied. I produced "business value".

We have a sense of achievement and job satisfaction when we produce a working solution. But it required a change of mind-set, it required breaking a huge use case into reasonable stories (e.g: Story#1 - Plant 10 pumpkin seeds). It required building 'features', instead of 'layers'. And it is the features what produces "business value".

Published at DZone with permission of its author, Bino B. Manjasseril. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Loren Kratzke replied on Mon, 2010/06/07 - 9:39pm

This is a good metaphor which proves something about Agile. You were correct in breaking the project into iterative steps however your project afforded you that "luxury". Agile is a luxury.

Add an underground sprinkler system to your project and it could not be done in true Agile fashion. If your project was bigger and you required a tractor to clear ground, same story. You are not going to rent a tractor for 5 days (bringing it back each day and renting it again the next day) when you only need it for one day. But to do so is not true Agile. I am told this over and over by Agile experts.

Most software projects beyond a certain size or compexity are composed of layers and can not be executed efficiently or effectively in "pure" Agile fashion. Agile is geared for projects that can be sliced vertically into multiple (ideally identicle) smaller projects where there is little to no late discovery and requirements are well known in advance, exactly like your project.

Besides that, I fully agree that Agile was the correct choice for this project. Enjoy your garden, you earned it! Thank you for sharing.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.