I've just re-read some of my posts and the various replies, and I'm wondering if perhaps I could put our project into perspective, so you don't think I'm simply being too detailed on a small, 3-month project.
We are re-writing our product to upgrade the technology from a desktop database to a .NET/SQL Server client/server application using Windows Forms. The original product took about 15 man years of effort to complete, and resulted in a useful lifetime of about five years. The product sells for approximately US$6,000 per user. Our number one selling point: ease of use, due to our extremely detailed deisign process to create the user interface.
Translation: The most important part of our product is the user interface.
During the development process for the original system, I took an approach much like the one that seems to be described--just cover the major pieces of functionality, and skip over some of the "smaller" details.
That didn't work out so well. Fictional example:
Me: "Where is the File | Open menu item?"
Programmer: "What File | Open menu item?"
"The one that I just assumed was going to be there. Don't you see it here on the screen capture?"
"Is there anything in the design documentation about it?"
"Um. No."
"If it wasn't in the design documentation, I didn't create it."
We've now spent about 6 man years in the design and development process for the replacement product. I have written 750 pages of SRS documentation (Software Requirements Specification, outlined in Managing Software Requirements, by Leffingwell & Widrig) for the first 50% of the product. (It's not exactly light on functionality).
The expected lifetime of this product is ten years. Again, as with the original product, the user interface is the most critical part of the system.
So, as you can see, this is why I'm so hung up on this. The #1 priority is an aspect of the design I don't have a firm grasp on in terms of handling in EA.
You may ask why I'm changing our process. The main reason is that since the SRS was largely requirements driven, as opposed to use case driven, it was easy for the development team to "get lost" in the documentation. Many times, it seemed like I was the only one who understood the full scope of required functionality--a depressing result after spending 12 months writing the SRS documentation. The primary reason: there was no "entry point" into the process of deciphering the documentation.
My new thought: Stick with the general outline of the SRS package, but make the entire set of functionality of the system driven by use cases. Use cases become the foundation of almost everything:
1. Conception of how the user will interact with the system
2. User interface (designed hand-in-hand with the use cases to support the scenarios they outline.)
3. Implementation
4. Testing
5. Scheduling
6. Documentation
So anyway, that's the backstory. Hopefully it will help you understand the importance of capturing ALL of the details. Six years from now, someone who doesn't yet work here needs to be able to crack open the design documentation and answer the question:
"What did the designer originally intend the File | Open menu item to do?"
