about
Blog: OCD
11/26/2024
Blog: Operational Concept Document (OCD)
concept for system operations
About
click to toggle Site Explorer
1.0 Initial Thoughts:
1.1 Scale to Project Size
Team Size | Documentation Size |
---|---|
one or two developers | All documents consist of one to a few pages, may be captured in code comments. |
small team (5 devs) | Concept and test document, specification and design may be captured in comments. |
large team (50 devs) | All stand-alone documents with emphasis on interfaces and functionality. |
multiple teams (200 devs) | Carefully written stand-alone documents with legal status for acceptance. |
1.2 Document Types
-
Specifications:
Define software product behavior and properties, are complete, unambiguous, and as brief and clearly stated as possible. We often, naively expect specifications to be immutable. -
Design Documents:
Describe the product as built. Support maintenance and provide a starting point for later versions. Usually describe the packages, classes, and data flow in the application. May explain algorithms that are used and the functions that implement them. -
Test Plans and Results:
A Test Plan provides unambiguous descriptions of how each specification requirement is to be tested. Each description has one or more test procedures that provide step-by-step instructions for testing. These must be clear enough that any knowledgeble person who probabaly did not write the software can successfully conduct each test. If a test fails that shows that either the software or the test procedure has one or more errors.
Operational Concept Document (OCD):
-
Executive Summary:
Gives a brief summary of the concept and most important risks. -
Uses:
An analysis of the product's users and their uses. What are the user's goals? What tasks do they execute and what data do they need to supply and retrieve? What is the impact on product design to satisfy these user needs? Here is an example analysis of uses for a software development environment built out of a federation of open source tools, called the Project Center. -
Partitions:
Describes the major packages and their responsibilities, activities, and interactions. -
Critical Issues:
Enumerates significant risk areas and proposes solutions. Typical risks are complexity of parts and data flow, poor usability, potential for security breaches, inadequate performance, potential loss of information, and loss of life or wealth. Obviously a flight navigation system has different risks than a software analysis tool. The assessment of risk is tuned to the context of the application.