“In the last decade, the software development community has strived to build software the “right” way, focusing on technical practices and ideas to ensure high-quality results. But building the product right and building the right product are two different things. We need to do both in order to succeed.
To build the right product effectively, software development practices have to provide the following:
* Assurance that all stakeholders and delivery team members understand what needs to be delivered in the same way.
* Precise specifications so delivery teams avoid wasteful rework caused by ambiguities and functional gaps.
* An objective means to measure when a piece of work is complete.
* Documentation to facilitate change, in terms of both software features and team structure.”
Source: “Specification by Example – How successful teams deliver the right software”, Gojko Adzic, Manning
This idea of “building the right” product is also the center of the “Software Testing is Dead” presentation made by Alberto Savoia at the Google Test Automation Conference 2011. I strongly agree with the fact that you cannot have a successful project without good requirements (which mean also good domain experts). We should however not forget that the right product would not be used if it is not working right. Keeping also the focus on building quality into the application is mandatory.