Monday, 26 July 2010

Agile Programming.

I spent half of Friday and most of today doing writing a program for one of my programming colleagues. To break it down very simply, we would be given a text file which contained tab delimited values and we wanted to take some of these values, process them, and then put the results into a new XML file. By Friday afternoon I had a simple working little program that could do this.

Through the course of today I was asked to add some extra features; some entities in the XML file have attributes that should be customisable and so the program should have options to do this. This list of attributes grew during the day. So I implemented these changes and rebuilt the program a number of times today.

Around the end of the day, I commented to my colleague that it’s interesting being asked to write something with constantly changing requirements that were never really set out to begin with. And then I remembered that I’d been sent on a course specifically to train me for this technique.

Taken from Wikipedia, some select principles of Agile programming are;

  • Working software is delivered frequently
  • Even late changes in requirements are welcomed
  • Close, daily cooperation between business people and developers
  • Regular adaptation to changing circumstances.

So at least this method of development has a name; money well spent I think.