To identify problems, ask questions such as:
-
What are the problems on projects? How do you know each is a problem?
-
Who specifically is most affected by each problem?
-
Is there a perception that something is broken?
-
Are projects routinely behind schedule or over budget?
-
Have any metrics been collected that can be analyzed?
Make sure you cover all areas of the development process, including all disciplines, tool support, and competencies
within the scope of the assessment. Also make sure that you look at organizational and political issues.
Identify what negative effects each problem has, or will have, if it is not eliminated or reduced for
projects. Knowing the impact of a problem helps you understand how critical it is to eliminate or reduce that problem.
Characterize impacts:
-
What is the impact now?
-
What would you like it to improve to be?
-
What is the value of the improvement over time?
Identify the root causes of each problem to help you understand how to remove, or reduce, the problem and how
much it will cost. If a problem has several root causes, you need to weigh them against each other.
Rank the problems with respect to the effect they cause. For example, use a 1-to-5-scale, where 5 is for problems with
the most dangerous effect and 1 is for harmless problems. The primary purpose is to understand the relative importance
of the problems.
List the problems in a table as shown in the example below:
Problem
|
Effect
|
Root causes
|
Ranking
|
The quality of the delivered software is bad.
|
- The customers are dissatisfied.
- We have to release bug-fixes after the main release.
|
- The test cases does not provide complete coverage.
- Testing is not automated.
- The test people are not adequately trained.
|
5
|
...
|
...
|
...
|
...
|
There are situations when it is more or less pointless to identify problems, for example if there is no common way of
working.
|