The following is a true story.   I haven't even bothered to change any of 
the details.

1. The developers were really enthusiastic about .NET technology but they 
couldn't persuade
management to re-write any of the existing products using it.

2. The developers went off and put together a general, all-purpose 
platform with data management
capabilities.  It was so general that it could have housed almost any kind 
of products, including ones far outside of the range
offered by the company.  It used every .NET feature, including remote 
databases.  (The developers may
have thought that they were working for Microsoft.)

3. They showed it to management.  Management wanted to know what it was 
good for.
The developers said, it's a product development platform with data 
management capabilities.
It uses all of the latest .NET features.

4. Management asked, could it help customers manage their data?  Sure, 
said the developers.
It manages any kind of data.

5. The new product got a catalog number and product manager to manage it 
and promote it.

6. After five years in development and three years in the market, the 
product was canceled.
No problem with existing customers being upset about the cancellation; 
there weren't any!

Moral of the story: the kind of programmer directed development that Frank 
Wales references
only works if the developers are developing something whose usage the 
developers understand well, for example,
software the developers will be using every day themselves. The usage 
knowledge requirement also extends to 
the adoption mechanism, e.g., who will distribute/promote/sell
it?

For the remaining 99% of the time, a good set of requirements, not 
specifications, really helps.
The requirements needn't be detailed but they must give the developers a 
really accurate idea of the
problem they are solving.

Tomorrow, I'll tell a story about agile development in which they didn't 
bother with documentation,
because the code is what is really important, and they didn't bother with 
test cases until the very end.
I'll also tell the true cost of the project, including the cost of "agile 
recovery."

Ruven Brooks

Reply via email to