Neuma Technology: CM+ Enterprise Software Configuration Management for Application Lifecycle Management

Neuma Technology Inc. provides the world's most advanced solution to manage the automation of the software development lifecycle.
Neuma Technology Inc.

More white papers:

Find out more ...


Neuma White Paper:

Integrated Problem Tracking

1. Introduction

The CM+ product provides a full management environment for designers, managers, and other staff involved in a development project. Problem Tracking is one of the applications within the CM+. The CM+ product also includes tools for Project Management, Activity Tracking, Document Management, Requirements Traceability, Change Control, Build Management and Configuration Management. CM+ provides a major step forward in running the processes required for any project attempting to meet today's demanding quality standards.

2. Why Track Problems?

Problem tracking is the process of handling problems reported against your product hardware, software, processes or documentation from first identification through to the problem closure. CM+ automates this process so that:

  • You won't miss fixing a problem because all problem reports are permanently recorded in the STS™ repository.
  • You won't waste time trying to solve problems that someone else has already solved.

You can record workarounds for problems that won't be fixed right away, so you can still alleviate your customers' difficulties and so that support staff are aware of workarounds.

  • You always know the current status of each problem and who is responsible for moving the problem to the next state.
  • You can measure the quality of your products and processes objectively, so that the program manager will know when the product is ready to release.
  • You can identify and categorize the root causes of problems so that you can improve the development process to remove the causes.
  • From the volume of problems and the average time taken to fix problems in your shop, you can get accurate resource requirements for planning future releases and products.

Problem tracking is an important communication mechanism which can replace much of the electronic mail and the many phone calls and meetings generally required for problem status reporting. Through problem tracking and reporting, both internal and external customers can be kept aware of the status of problems they have originated.

In addition to the benefits of recording, tracking and assigning problems, CM+ has comprehensive statistics reporting functions.

  • Tables: You can generate tables of problem statistics, in text or GUI format. As an example, you may want to look at a table of problem status vs. problem priority. When you use a GUI table, you can zoom in to show the problem records underlying the summary number (record count, effort total or otherwise) in each table cell.
  • Graphs: All tabular summaries are also available as graphs. Two graphs commonly accessed through buttons in the STS™ GUI are the arrival and fix rate graphs.
  • Gantt: You can use gantt charts to graphically display problem history. A common operation is to display, using the gantt charts, the life-cycle of emergency problems.
  • Ad-hoc reports and queries: Create browse panels and/or listings of problems meeting criteria you specify in varying levels of detail. Or integrate with a word processor

Neuma's Fundamental Rules of Problem Tracking

Neuma recommends that the following rules be enforced to help ensure successful problem management.

  • All problems must be tracked in the system. "A problem is not a problem unless it has been entered into the problem tracking system." There must be a single, reliable source for all problem data.
  • Universal access to problem data is just as important as universal access to problem origination. The entire project team must have access to all problem information.
  • Screening of problems will always be necessary to ensure proper routing of the problem report and proper interpretation of the data fields. It is recommended that a Problem Review Board be established to help review problem data. This may be a single person in a small project, or may involve representatives from several areas of a large project. The role of a Problem Review Board becomes most critical when new releases are in field trial or are being shipped to the initial set of customers.
  • Problem tracking must be integrated with other parts of the development process to maximize its benefits and to help ensure the timeliness and accuracy of the data. A clear flow of responsibility must exist for each problem from the point of its origination until it is closed, that is, accepted by the originator as being resolved.
  • The user interface must be configured so that designers, testers and managers alike may look at standard report summaries with the push of a button.

3. The Problem Tracking Process

The key to successful problem tracking is a well-defined process. Problem tracking involves the following major areas for which detailed process documentation is highly recommended. These are covered briefly in the following pages:

  • Problem reports collection
  • Problem classification
  • Problem awareness
  • Problem resolution
  • Problem feedback
  • Quality assessment

4. Problem Reports Collection

Problem reports will come from many sources. Some will come from the product and process development teams. Some will come from internal or external verification teams. Some will come from customers. It is essential that everyone who encounters problems with your products or processes have adequate means of reporting problems. The problem collection mechanism must be such that problems do not fall through the cracks. It must also allow for special procedures for identifying urgent problems.

5. Problem Classification

Problems need to be classified in several ways and perhaps in several stages. Classification is generally done by assigning values to various attributes of a problem report. Typical classifications would include:

  • Identification of product versus customer (e.g. configuration) problems.
  • Identification of area of responsibility, by product, owner or department.
  • Prioritization of the problem.
  • Identification of platforms, product versions, etc.

6. Problem Awareness

It is essential that the development team is aware of outstanding problems and their urgency so that it can address problems in proper order. This involves ensuring there are proper resources to handle all problem reports. The reporting feature of problem tracking allows both high-level and detailed reports, selected and sorted based on the attributes of the problems. Reports may appear as text listings, numeric summaries, graphical summaries or interactive query displays (using the graphical user interface).

The key properties of problem reporting are that it be fast, flexible, easy and interactive. Outside of these boundaries, managers tend to delegate report production with the result that it has none of these qualities. Neuma's philosophy ensures that managers can have ready access to exactly the data they need, when they need it, even during a meeting. It is recommended that each manager and designer have a single button that may be selected to identify unresolved problems for which the person has the responsibility.

7. Problem Resolution

Problems must be resolved as they arise. Often this will mean a simple customer configuration change. Sometimes, the problem will be one in which the product needs, for example, a software or documentation change. At other times, the resolution will take the form of a workaround.

The keys to problem resolution are:

  • assigning responsibility for the problem
  • ensuring an easy way to reassign "responsibility" and to track such changes
  • establishing an accurate priority
  • having an effective problem resolution team

Typically, design team members will only look at problems assigned to them. Then they will address the problems, in order of priority.

When a designer fixes a problem, CM+ will automatically mark the problem fixed, supplying a timestamp and traceability to the update by which it has been resolved.

8. Problem Feedback

An important part of problem tracking is ensuring that those who originate problems receive notification when the problems are fixed. Typically, this is done as part of a release and is included with the release notes. With CM+, the production of these release notes can be automated. Problem feedback is also required in other forms. For example, you can configure CM+ so that high or emergency problem reports are sent by email to the originator (including customers) when the fix is ready to be installed or even when the problem cause and/or workaround has been identified. Internal verification teams require timely information so that the flawed functionality can be re-tested before the product is released.

CM+ serves as a communications medium for problem reports for all users. Report generation and electronic mail may be used to facilitate the feedback process for staff who, for any reason, are not CM+ users.

9. Quality Assessment

Problem tracking allows a team to measure the quality of its product and processes. This is often in the form of "number of defects per interval of time". CM+ can produce such reports as problem arrival and fix rates for a product or product area. CM+ reporting summaries may be used to identify the number of problems against various other attributes, and the identification of quality for the various parts of the architecture or for the various releases.

Typically, information which helps to identify the root cause of a problem is associated with each problem so that the development process itself may be improved by analysis of the problems, with a result of fewer problems occurring. For example, analysis may reveal that more problems occur when certain areas of the software are modified or when software is modified using certain tools. Correction of the design or of the tool set could help reduce such problems.

10. Defining the Problem Tracking Process in Neuma PT

Neuma knows that every company has its own terminology and its own problem handling process, so CM+ has been designed to be completely configurable, from the set of attributes that need to be tracked, right down to the names of the states and the priorities. You can also tailor the input screens to include the fields necessary for your project or for particular users.

You can also customize the graphical user interface to include the menus and buttons you need to automate your problem tracking process. You can even capture and enforce your process, allowing you to work productively with your QA department. You can:

  • choose your state names and allowable transitions
  • display your process flow chart on your screen or printer
  • decide whether or not to enforce the process

The key to a successful problem tracking application is a well-defined process. The problem tracking process indicates how a problem is to move through the development team. It also identifies the attributes of a problem report in a clear, unambiguous manner. For example, is a problem's priority an indication of a customer's view or of a project view of the urgency.

The overall process is indicated by a status flow diagram which indicates the various states of a problem report, the responsibility at each state, and the actions which cause transitions from one state to another. The process defined in this section reflect Neuma's recommendations for a typical software development project. This may be modified as necessary for the particular needs of your own project.

11. Problem Status

The accompanying status flow diagram, generated by Neuma PT based on the process configuration, indicates a typical flow for problem reports in a software project. The diagram reflects the following problem states:

orig: The problem has been originated. Either the problem is automatically assigned to an owner on origination, or this assignment is done separately by a problem control team.

open: Work has begun on fixing the problem. This transition often occurs automatically when the problem number is referenced by a software update which is to fix the problem.

reopen: A problem which was previously thought to have been successfully addressed (fixed) was found to be persistent or incorrectly resolved. Often, there is no distinction made between "open" and "reopen" in the subsequent handling of the problem.

answer: An answer has been provided which is intended as the final response by the owner of the problem.

submit: The resolution was provided through an update to the product. The update has been submitted to the system. This state typically occurs when a software update is submitted. The update identifier is usually appended to the problem report description.

sitest: The problem has been integrated into a system build. Depending on specific process methodology, this status may or may not indicate that the integration team has verified the problem fix. It generally should. In any event, the problem is ready for verification testing.

svtest: The verification testing has passed the problem successfully. There should be a specific test case written to address each problem and the test case identifier should be specified when the tester marks the problem as verified.

closed: The originator has verified that the problem has been addressed as initially expected. Often this is done by an agent of the originator, such as the customer representative.

Additional states often included in a problem flow process include:

accept: This state indicates that the owner has accepted the problem as a valid problem and accepts responsibility to fix it. If a problem is not accepted, a reply should be given and the problem status moved to the "answer" state.

defer: If a problem will remain unresolved for an indefinite period of time, it should be moved to the "defer" state. In this state, the owner indicates that no action is planned.

Within CM+ you may configure your problem tracking process to include any of these state or your own project specific states.

12. Problem Priority

You can also configure CM+ to reflect your company's problem prioritization scheme. You may have two or more separate processes to handle problems of different priority. For example, an "emergency" problem may need a streamlined, efficient process, and a problem which is really a "feature request" may be better handled by the activity planning process.

Problem priority is often used to reflect a combination of factors including the customer's view, the potential damage that may result, and the required response time. Neuma recommends that priority be tracked in one of two ways.

  • The priority simply reflects the time by which a response is required.
  • There is a second priority field which captures the original (originator's) priority so that this information is never lost.

Note that the priority assigned when the problem is found and entered is often very subjective and inaccurate. Neuma recommends a symbolic assignment of priority with the following meanings:

inv: The priority is not yet known. The problem must be investigated to determine if there are easy workarounds.

req: The "problem" is a feature enhancement request. It will continue to be tracked until the request is tracked as part of a requirements specification.

low: The problem is of low priority. There will be no specific planning as to when it will be resolved until the design team is ready to address the problem. This typically identifies a problem which rarely occurs, has minimal impact, or has a straightforward, unobtrusive workaround.

med: A medium priority problem is one requiring resolution by the next major release of the product. Typically, some important functionality is affected.

hi: The problem must be resolved by the next release of the product. On occasion, specific sites may need some help in dealing with the problem during the interim period.

emer: The problem needs immediate attention. Typically, a one to three day response is required, with the response time dependent upon the severity of the problem. An emergency problem will cause some vital processes to come to a stand-still or to be severely limited.

13. Feature and Test Case References

Each problem report is a description of a defect in a product or process. A defect is a deviation from the specification for the product or process. Ideally, each problem report should refer to the part of the specification which has not been met. In practice, specifications are often loose or don't address many of the potential problem areas. In a well integrated environment, problem reports can be used to help improve the specification. The specification would normally be a decomposition of high level specifications into a detailed set of features. These should be formally tracked with test cases written for each feature.

14. Communication and Configurability

In a traditional development environment, a great deal of emphasis is placed on the production and distribution of problem reports and on the notification (e.g. by email) of the origination of new problems. In CM+, the system itself becomes the communication medium and obviates much of the need for reporting production and notification processes. At the same time, rule and trigger design may be used to configure just the right level of notification for your project.

Typically, problem reporting is set up so that the user can access the reports most often required by pushing a button or by filling in a dialog panel. The command structure underlying the GUI allows complete tailoring of the GUI menu system to allow very specific or very general reports at the click of a button or through customized dialog panels. It also allows for a dynamic report production. Understanding the basics of the "show", "table", "graph" and "gantt" commands and of the "sort" and selection operators allows the user to produce reports using a single command.

15. Customer Tracking

You may need to supplement your problem tracking functionality with customer tracking. CM+ may be easily extended to include a customer and customer request tracking application.

16. A Client/Server Transaction-based system

CM+ is a client/server transaction-based system. This means that it runs as a client/server system in which the client sends transactions to the server. The server then updates the central repository and the changes or additions become available to all other CM+ clients.

A transaction is a package of data update requests resulting from command or GUI operation. When you "commit" a transaction, you send this package to the server. If the server is temporarily unavailable, your transactions are queued and processed when the server becomes available again.

Before you commit your transaction, you can cancel it at any time, with no effect on the data at the server. Until you commit your transaction, the server has no knowledge of it. CM+ will not allow you to exit without warning you if you have a transaction in progress.

With the CM+ transaction-based client/server system:

  • all changes to the system are registered as transactions, for full traceability and automatic recovery in case of a system failure;
  • the client session normally operates on a workstation different than the one on which the repository and CM+ server reside; and
  • there may be several clients concurrently updating the repository through the server.

Information is exchanged between the client and the server in order to complete a transaction. Information does not have to be exchanged between the client and the server for query operations. In this respect, the client is considered a "smart" client which may operate even while the CM+ server is temporarily disabled. This has the effect of distributing the query load so that hundreds of clients may operate off a single server.

17. Summary

CM+ provides effective and affordable problem tracking support to improve your processes and your communications. It plays a key role in meeting all of your problem tracking needs. In addition, the problem tracking application is supported over the internet using any Web browser, improving access and availability.