Saturday, June 04, 2005
Legalities of Agile Methodologies
Francis Hwang asks "Is an Agile methodology going to stand up in court?" With large software projects increasingly becoming the subjects of litigation, it is increasingly becoming necessary for software developers to cover their asses by creating lots of useless documentation and performing activities that are ineffective in developing software but which will sound good in court.
If we reach the point where every web site must be designed with the same level of documentation as was used to design the Space Shuttle, software development will come to an end. Unfortunately, there are a lot of people out there who think they know the One True Way to develop all software, and promote a set of very-specific "best practices" that any True Professional must follow. If we gather all the "best practices" from all the experts and follow them all, we'll never get anything done.
We don't yet know how the courts are going to be deciding these issues, or if legislatures will start mandating particular practices. Ideally, I hope that instead of promoting particular practices or methodologies, a set of ethical principles will arise. When judging a developer's competence and the degree of care they gave to their work, I'd like courts to ask questions such as the following:
- Did the developer take adequate steps to determine the customer's desires?
- Did the developer assure that there was mutual agreement with the customer before beginning work?
- Did the developer provide timely feedback about the progress of the work?
- Did the developer deliver a product with the mutually-agreed features according to the mutually-agreed schedule?
- Did the developer take adequate quality-assurance steps before delivery of the product?
With principles like these, I think an Agile methodology could stand up in court. Unfortunately, I think the non-Agile methodologists will eventually win and make us do things their way. The legal system values documentation over progress.