February 21, 2006

Agile Development

Agile Development Sometime last year, our engineering and product teams embraced the Agile Software Development framework.  Without going into too much detail (here’s the Wikipedia entry for those who want it), the concept of Agile Development is to run software development in small pieces with a focus on more communication between product and development teams resulting in collaborative requirements development.  This leads to a “release early and often” environment where there are continual improvements.  For us, we group development projects now into a “release” that consists of a series of usually six, two-week “iterations.” The release planning and iteration planning meetings are reasonably long meetings that involve the major stakeholders, product management and engineering.  The process also includes a very short, 10-minute Daily Stand-Up meeting with everyone on the team to review progress and identify roadblocks to completing the two-week iteration.  Requirements are not heavily documented and discussed more or less on the spot during the iteration meetings.  Because there’s a major pull-up every two weeks and a minor one every day, it’s easy to be light on requirements and for product management to constantly be in the loop with engineering to see progress, test functionality, and make mid-course corrections. […]