Detailed Specifications

The Detailed Specifications are the final output of the requirements decomposition. These are the requirements that will be used to build out the infrastructure, populate the configurations, and drive the development of software where necessary.  Based on our previous example from our last discussion, one of our High Level Requirements was “The system shall send text messages to Agents”. This single high level requirement should be further decomposed into the elements which will be designed/created to fulfill the requirement:

 
FR
1.2
The system shall send text messages to Agents
FR
1.2.1
Text messages shall not exceed 140 characters
FR
1.2.2
Text messages shall be stored 120 days
FR
1.2.2.1
Text messages older than 120 days shall be archived
FR
1.2.2.1.1
Archived messages shall be retrievable
FR
1.2.2.1.2
Archived messages shall be retrieved within 15 minutes
FR
1.2.2.1.3
Archived messages shall be stored on Linear Tape File System (LTFS)
 
And so on until the system has been sufficiently described to know how it will be built. There is a whole science behind how the requirements nesting is done, which I don’t fully understand but the requirements management tools mentioned last week help to facilitate this very well. The proper nesting will prevent missed specifications and duplicate specifications as well as providing guidance for testing.
 
Even a simple system can generate hundreds of specifications. I have worked with several teams in the past where we spent multiple weeks churning these out in order to define the systems that we were going to build. It can be a painstaking process but when done properly the resulting build/test/deploy cycle can be completed with confidence that the system will meet the business need.
 
As shown in the previous step, the Detailed Specifications can have many nested layers, each of which is traceable to the layer preceding it.
 
The Detailed Specifications are the requirements which are used for testing to ensure that the system does what it was designed to do. Once the Detailed Specifications are complete the engineer participation in the process drops off significantly.
 
There are artifacts that can be useful for describing the system separate from the requirements. However, these should all be based on the requirements. Examples of these are:
-          Logical Component Diagrams
-          Physical Component Diagrams
-          Process Flow/Swim Lane Diagrams
-          Rack Elevation Diagrams
-          Network cable/port Diagrams
-          Value Stream Maps
-          Performance Metrics
-          Bill of Materials
-          TCO/ROI Analysis
-          Interface Control Document
-          Database Design Document
-          Systems Design Document
-          Systems Test Plan
-          Systems Test Cases
-          Implementation Plan
 
Most of these have some representation already in the PQR process which we get into when we start to discuss the Engineering Artifacts.
 
The Resource Feasibility principle should be a huge consideration during this step and the build step. It may become obvious earlier that there won’t be enough time, money, personnel, or other resource factor to complete the design but this time period is where that determination becomes critical.