Software requirements

Beth Agnew beth.agnew at senecac.on.ca
Wed Aug 23 20:18:55 MDT 2006


A good working process is requirements (what the product, any product, 
is supposed to do to meet the needs of the market) first, then 
specifications (details on how the product is going to match each 
requirement), and finally design, which is the manifestation of the 
requirements according to the specifications. Test cases, i.e., QA, 
usually ensure that the product meets specifications. I don't think you 
can adequately capture such design features as you're talking about 
without indeed getting into the details. The thing has to become very 
detailed and specific at some point. Leaving requirements up to the 
developers to interpret is fraught with problems. Much better to hammer 
out the specifications which detail the design, so that all the 
developers have to do is build it. If they run into an implementation 
problem, such that they cannot build to specification without changing 
the design, then there should be a process for working that solution 
through the requirements/specifications/design process. All kinds of 
insanity result when developers just change things as they go along.

Making specifications afterward based on the designed product seems to 
me to go at things wrong way round, but a lot of companies do that to 
ensure their specifications are correct. Of course, you then get what 
the developers have decided you'll get. Hope you've at least got a 
business analyst and a systems analyst working with them on that.

The marketing requirements in the example you gave would be that the 
customer needs to be able to pre-determine a time period during which a 
random reboot will occur. Specifications say that this can be any time 
period from 1 to 24 hours, with a default of a 5 hour period. Your #3, 
the 10:00 a.m. local time, actually conflicts with the first two. It is 
not random, nor is it a period, but a fixed point in time -- but perhaps 
it's related to something else and not the first two points.

 I'm a firm believer in detailed specifications. Very few products go 
wrong when the specifications are thorough, detailed, completed, and 
followed. It's when the specs and the design get out of sync that 
problems occur.

Ladonna Weeks wrote:
> One of my TW duties is to help with an internal web site that contains
> requirements for our new product.The requirments are stated in very general
> terms in order to leave opportunity for the developers to design the
> product. Here are a few examples:
>  
> 1. It shall be possible to set a time period during which the [product] will
> reboot at a random time during the set time period. 
> 2. The set time period shall be from 1 to 24 hours. Default shall be 5. 
> 3. Default time shall be 10:00 AM local time. 
>  
> We are writing a test case for each requirement. However, we have come to
> realize that during testing we need some kind of specifications that
> describe the behavior of the product as it ends up being designed so that
> something in the GUI or functionality doesn't get accidentally changed after
> the customer has become accustomed to it. The person writing the
> requirements has come up with the notion of including design features after
> the fact which describe how the product works. When we test, we would test
> against the requirements _and_ the design features. 
>
> I am trying to figure out how to write these design features without getting buried
> in details. Have any of you dealt with a similar problem?
-- 
Beth Agnew
Catch the Buzz: http://bethbuzz.blogspot.com
STC Presentation archived at:
http://www.301url.com/podcasting

Professor, Technical Communication
Seneca College of Applied Arts & Technology
Toronto, ON 416.491.5050 x3133
http://www.tinyurl.com/83u5u




More information about the TECHWR-L mailing list