home   [about]   contact   downloads   links   pricing   reading list   salesforce   site map  

Current loctn: about > methods > software > analysis


"If you want to do a good job washing a table, you must first know whether it is to be used for surgery or for lunch." - W. E. Deming

Analysis stage focuses on development of a complete understanding of tasks to be supported by the system, from the user's perspective. The functions to be suported are detailed and organized in fashions that facilitate planning of software structures. The information used is gained from interactions with client staff who are invovled in actually performing the processes to be supported. Supporting information is sometimes derived from documents provided by the client.

Formal studies of software development have repeatedly documented that a focus on clear documentation of requirements is an effective method for reducing overall software development expenses and reducing violations of predicted project timelines. Error detection and correction is most cost-effective at requirement stage - many studies document 10 to 20 fold increases in error-correction expenses at later development stages.

To take advantage of this possible efficiency, we typically ask for a high level of client engagement in this stage. In effect, frequent client review and comment during this stage integrates informal inspections into requirements development. Inspections have been repeatedly demonstrated to be among the most cost-effective methods of ensuring software quality - especially when applied at this stage of a development project.   Additional advantages result from client staff's resulting familiarity with the new system, and with the decisions made during project development.


Work Process

A great deal of time is spent discussing processes, information needs, and current systems with users during this stage. If the client has system documentation or other prepared materials that provide important information, the analysis team will attempt to make the best use of these materials. However, it often happens that few written materials are avaialble for review. In fact, it often happens that the data contents of current systems have been completely undocumented - the development process for the new system is sometimes the first time a written description is developed. Information gathering therefore is typically a process of interacting with appropriately chosen client staff members, and documenting the information gained from this process.

Work on these products typically overlaps, but the majority of the work usually proceeds in this sequence:

  1. User Requirements Interviews

    As information from interviews is accumulated, the following products are updated to include that information:

  2. Variable Domain Descriptions/Code Conversion Maps
  3. Use Case Descriptions
  4. Process Diagrams
  5. Function/Entity Matrix
  6. Function/Attribute Matrix
  7. Variable Loading Map
  8. Revised Work Plan