Friday, November 19, 2010

Agile Computing

With the current industry emphasis on Agile methodology over the last decade, I figured it's about time I chimed in...... but first a little about me.

I started working my first computer programming assignment while a student at Ohio State University in 1983.  The project was for a PhD student in BioMedical Technologies.  I was assigned to help him with technical aspects of his dissertation.  There was no project manager, no methodology -- just me and Dr. Chattergee (my customer).  We worked feverishly to get a set of MRI readings of the human brain to display on the CAD/CAM equipment at OSU using a device independent graphics interface.  The first version of the software simply allowed you to flip thru the cross-section images of the brain that were taken at 3mm intervals.  A few weeks later, version 2 stacked up all the images and skinned them to display a 3d model of the brain from the same MRI images.  We worked further to add selection of deformities with gradient edge detection and splining algorithms to model the selected deformity.  Later we added the ability to detect the same deformity thru all the 3mm cross-sections and model that in 3D also.

Little did I know, that was my first Agile experience.  Given the 12 principals of Agile manifesto, we met 10 of them:
1 - Customer Satisfaction is Priority One
2 - Welcome Changing Requirements
3 - Deliver Frequently
4 - Business and Technical People Should Work Together
5 - Have motivated Individuals, give them tools to do the job and get out of the way.
6 - Face to Face interactions are most effective communication
7 - Working Software is most effective measure of progress
8 - Work pace must be sustainable for long periods of time
9 - Continuous Attention to technical excellence
10 -Simplicity to maximize the amount of work done is essential.
11 - The best architectures, requirements, and designs
emerge from self-organizing teams.
12 - Reflect on the work and processes at regular intervals.

I bet you've guessed which 2 principals were not met, but here's a few hints.  Without customer satisfaction, I was unemployed and couldn't pay my student loans and I seldom miss a meal.  I think that covers 1, 2, 5 and 7.  Since I worked directly with the customer and business person, frequently face to face where we delivered/demonstrated application features, that covers 3, 4 and 6.  I came up with the architecture and  since I'm pretty simple, so was the architecture (9, 10 and 11).  So the 2 we missed were reasonable pace and reflection (8 and 12). 

More on Agile next time, how it has progressed over the years, and how I am using it today.