I've been thinking a lot about project management lately, given that we are about to dive head-first into another release of Geocortex Essentials. During this development cycle, we've decided to adopt a number of Agile development practices. For those new to Agile, Agile Development is best characterized by a number of development practices which include
- Frequent and sustained customer involvement with developers.
- The use of automated tools including Continuous Integration and Revision Control Systems.
- Short development iterations that are normally 2-3 weeks in length.
- The use of the Test-Driven development methodology.
- The adoption of simple designs that get the job done.
Of course this is an over simplification as there are many Agile methodologies, however, most of these practices are common to each of them.
I must admit that at first I was a little sceptical that Agile would really work in practice, but then I re-read a chapter from a textbook used in a project management course I recently took. In it I found a list of success factors for successful software projects which include
- Executive Support
- User involvement
- Clear business objectives
- Formal methodology
- Minimized scope.
It's not hard to see the parallels between Agile practices and these success factors. Given that, it seems to me that many Agile practices can only help make the execution of a software project better.
I'll let you know how it works out