Documentation

 

These are personal notes. You are welcome to read them.

Index page

Top-level home page  
Management hints
HTML, javascript
Other
     
More pages here ("technical" pages) Ham radio pages Contents of current page

 


Contents

 

 


Various Specifications

Note: Final owner is the supporting organisation

Area

What is understood

Functional Specifications Business requirements: scope document. It refers to the business requirements.
Design specifications Design documents
Production document for Application An overview of the system, similar to the "Introduction to CBS".
Design Review Specifications Define a formal process for changes during the design phase.
Program specifications Detailed documentation covering such topics as access to database, tables, etc. Partially covered by: Administration Guide.
Test specifications Test strategy. Details of the testing plan for system, production acceptance, functional, performance and end-to-end testing.
Data Modelling Specification A description of the data model.
User documentation User manual
Contract models Describe the interfaces between systems
System Administration
  • System Administration Checklist
  • Database Backups
  • System Backups
  • Restart and Recovery
  • Logging/Error Handling
  • Application Administration
  • Audit Trail
  • Unix System Administration
  • Configuration Management
  • Scheduling
  • Data Backup and Archiving
  • Disaster Recovery
  • Security Approach

Agile list:

  • written for maintenance developers
  • overview of the system’s architecture
  • summary of requirements
  • summary of design decisions
  • references to the detailed architecture and models
Operational documentation

Information for writing the operational procedures (daily operations): backups, generation of tapes, observing for critical process failures, database thresholds, line availability, etc. The user documentation extended with enough information so as to write the operational procedures (daily operations). Other aspects should include information related with day to day operations such as undertaking backups (full and partial), generation of tapes, observing critical process failures, database thresholds, line availability, etc. This would basically be an operator's handbook.

Knowing the top-level jobs is most important. It is fairly easy to follow the threads down into each procedure or function that they call. However, if one job triggers another via a message or other dependency, the triggered jobs should be listed as well.

In particular, for operations, each process should have:

  • Job Description
  • Severity Level of Job Abends (Automatically Sent to Helpdesk)
  • How to control the job, how to know if the job has finished, how to know if it has succeeded
  • Typical error types and procedures to handle them
  • Restart Procedures
  • Documentation (Free Form)
  • Job Controls
  • Dependencies, interactions with other systems, databases, and files
  • Backup procedures
  • Troubleshooting guidelines
Change Control Documentation Procedures for change request management, problem report management, and delivery management. A project plan for the phases following User Acceptance Test needs to be drawn up including the following:
  • Define a Change Request Plan.
  • Detail of change and overall impact to the organisation and to the application managers.
  • Identify the potential risks to the organisation and how to address these.
  • Summary of the change to Management.
Configuration Management Current configuration and procedure for modifying the configurationThis section covers the procedure for keeping track of the configuration of the machines.
Desktop Configuration Hardware, systems software, datacomm, applicationSecurityCommunication
Host Configuration Hardware, systems software, datacomm, applicationSecurityCommunication
Development documentation
  • database object creation scripts
  • Database schema
  • How the tables are filled with data (data flow): source of data, loading and transformation, description of processes
  • How to use the tool
  • Description of all interfaces (files, database views, ...)
  • How to install / set-up the application
  • Complete parameterisations, initialisation files (location and short description of particularities)
  • Application code sources: location, short description of sub-directories
  • Non standard compilation requirements.
  • Application code sources: location, short description of sub-directories. Describe non standard compilation requirements.
  • Parameters (input/output, data type, nulls/defaults allowed, potential errors, abnormal exits, how to deal with abnormal situations, ...)
  • For tables:
    • Column name, allow nulls, data type, default value
    • Indexes
    • Security / grants (select, and insert/update/delete)
    • Views
Database documentation
  • Version information (main version and patches)
  • Oracle-home (name and path)
  • Machine, port number and sid / service name.
  • Oracle-home of client
  • Passwords for sys and system

Project plan

Application

 
Functional Definition for Application Description of the executables (configuration, pictures, naming conventions, critical processes)
Implementation Plan roll-out starting with the user acceptance testTime line, tasks, people, Dependencies, Milestones, "Dry run", "Next Step" criteria (validation, go/no go)
Procurement The actual procurement of the hardware and the software
Training An inventory is needed for the training that is necessary. However, we still need to know who is staffed in the organisation in charge of the operations.For the people using the system and the people supporting it.
  • Skills needed
  • Skill Available
  • Gap analysis
  • Proposed Action Plan
  • Management overview for all training needed
  • Application specific training
  • Knowledge transfer
Physical security  
Logical security Logons, retries, disk access passwords, disk permissions
Capacity & Performance Define the possibilities for growth (growth path). Add a growth plan for the database size (how should the database be incremented?)
Organisation A description of the organisation that will support the application.
Audit and Review Procedures High-level test cycles that verify that the system complies to the functional specifications. This section contains high-level test cycles that verify that the system complies to the functional specifications. These test scenarios are used after each change of the system to verify functional compliance. This section describes what should be done. The test cases are in "Test Specifications".
Change Management Procedures How to manage changes in any one of the sections in this document
Disaster Recovery - Business Continuity
  • Availability practices: What makes it so that the application will be as available as needed.
  • Imagine disasters and define appropriate responses (fall-back plan etc.).
  • Define procedures to prevent disasters (backups, UPS, shadow disks, ...)
  • Get a written statement indicating what type of disaster recovery is needed. And if disaster recovery is needed, then to what level of disaster.

 

 

 

Reports produced

 

deliverables for each change to production (EIC)

 

 

Documentation

Documentation of an existing system:

 

Template for Document History:

 

System Requirements

 

 


Data Modeling

Deliverables to be produced by a data modeler according to Simsion [1]:

 

 


Minimal Documentation

 

 

Minimal documentation to be produced at the end of a project by the database developers and Business Objects developers so that the objects in the BO universe can be understood. (The original list was created in Beverly...)

Data model:

The definition of each object in Business Objects:

Other:

 

 

Some thoughts on documentation in agile environment

See Agile Documentation

Tests also serve as documentation of requirements. I think that requirements are important and need to be captured on their own.

Model with others in a collaborative effort, ideally with several generalists. When people work alone, they tend to make copies of the documentation from elsewhere.

This are the main things to document:

The idea is to minimize the information in the written documents so that there is less to maintain, capturing the information in only one place. Ideally, if several people work together, there is not the temptation to copy over information from another document. Work with the audience of the document, who will determine when it is complete.

On the other hand, detailed project plans, detailed requirements specifications, detailed design specifications are not agile.

Documentation in the code are less critical now that variables names are more descriptive. Code comments explaining a design choice and why the developer is doing something are more useful than a comment about how. Explain "tricks" and algorithms. Comment for modifications with date and developer are useful too.

 

 


"Technical Specification Document"

Developers write the "Technical Specification Document" (TSD). It serves both as a short technical design document, with an architectural diagram, and an operational document. It assumes that a "Functional Specification Document" exists with requirements, a source to target mapping, or a screen layout, depending on the type of component.

The mains points of a TSD:

See also some thoughts on documentation in agile environment in the previous section.

 


The Project Plan

Project Plan Layout

Who? (1) Myself and have it reviewed, (2) with key players, (3) break it into sub-projects and assign to groups [2].

A project not worth doing
is not worth doing well

Jery Pournelle[2]

 

 

Features of a system:

Name of feature
- description of the need
- proposed solution
- benefit of solution (what it is useful for)

Terms and definitions