Design vs. Specifications

Discussion about what constitute design vs. specifications has been a part of many projects and systems product teams that I have been on.  In some groups we built detailed specifications for every component, and other groups just focused on the assembly of the parts in the design, and let each developer build the parts her own way.

If your design is component specs without assembly instructions, then it becomes impossible to tell whether your design will actually meet the requirements.  If your design is assembly instructions, without component interfaces, it is hard to tell whether your design is going to work.  If your design does not include a PUNCH LIST of components that need to be built, it will be hard to build a plan to get to complete.

Contemplate this analogy:

Project: build a truck to transport 15 tons of High Explosives across the country.
Requirements:
* Must get there in less than 70 hours
* Must prevent explosives from detonating

Design Criteria:
* Distance is 3500 miles – must be able to average 50 miles per hour including gas and food stops.
* Explosives will detonate if inside temp exceeds 105 degrees Fahrenheit
* Explosives will detonate under acceleration of 1.4 g

When designing this vehicle I need to ensure that I meet the requirements and design criteria.  When reviewing the design, I need more than anything to understand how the design meets that requirements and design criteria.  How does knowing that I am using 3/4" lug bolts torqued to 150 lbs-ft to secure the wheels to the axles help me understand this?  What I am going to be concerned with first is:

* What will be the expected fuel economy and fuel capacity (how many fuel stops)?
* What is the top speed of the vehicle, and the fuel economy at top speed?
* What is the expected gross vehicle weight and carrying capacity of the vehicle?
* What mechanism am I going to use to damp the acceleration of the vehicle or cargo when encountering normal or abnormal bumps?
* What method am I going to use to keep the load cool?

In order to understand whether the proposed vehicle will meet the requirements, my design must expose the answers to these questions. 

Do your software designs expose information this way, or do you require your audience to "figure it out"?

No Comments

Leave a Reply