But WHY, Dad?
Asking 'why' is perhaps the most valuable of all questions both in life and software development / product management. Being the father of two toddlers, I get asked 'Why?' a lot. I only wish the team mates on some of the teams I coach were so inquisitive. Knowing the 'Why' is often the difference between success and failure. This is, of course why User Stories take the form they do: As a <type of user> I need to be able to <perform some function> so that I can <get some value>.
Both the type of user and the 'so that' clause provide valuable information in the form of 'Why'. Without this information, a team could go horribly astray. Asking 'Why?' helps provide valuable context.
Here's a simple example:
The user needs to be able to enter surface positional data. Why?
The directional drilling engineer needs to be able to enter surface positional data so that he/she can perform anti-collision analysis. Why?
The directional drilling engineer needs to be able to enter surface positional data so that he/she can perform anti-collision analysis, avoid drillstring collisions with offset wells and therefore avoid tremendous expense and/or injury/death of drilling personnel.
Clearly knowing who needs to enter this data, and why, puts a different context in front of the team around the requirement of simply being able to enter surface positional data.
My sons make me answer this question a lot and software development teams could learn a great deal if they if they continually did the same!