Roles and Activities > Manager Role Set > Process Engineer > Assess Current Organization
Activity:
|
Purpose
|
|
Steps
|
|
Input
Artifacts:
|
Resulting
Artifacts:
|
Frequency: Do this at the beginning of, or before, a project, and revisit after each iteration. | |
Role: Process Engineer | |
Guidelines: |
Workflow Details: |
In order to configure a process and create a development case for a specific project, you need to understand the context of the project; that is the current state of the software development organization in terms of its people, its process, and its supporting tools. To successfully configure the process, it's important to understand problem areas and potential areas for improvement, as well as information about external issues such as competitors and trends in the market. When this step is complete, you need to know:
The reasons for assessing the current state is so you can:
We recommend that you initiate the assessment with a workshop where you gather the key people known at that time. The primary purposes of such an initial workshop is for the process engineers to meet the stakeholders of the project, so they can gather a comprehensive list of problems from the project's stakeholders. See Work Guidelines: Assessment Workshop for details on how to conduct this type of initial workshop.
Identify the stakeholders to the process implementation effort. Identify stakeholders outside the development organization, such as:
Identify stakeholders within the development organization, such as:
Ask stakeholders or representatives what expectations they have on the development organization.
Describe the internal organization, particularly the current roles and teams. Also, look at the relationship between different parts of the development organization. For example, what is the relationship between development and maintenance, and what is the relationship between development and test?
Identify the key people in the organization by asking people in the organization. A key person is someone who has one or several of the following characteristics:
To succeed in implementing the process and tools it's important to have the key people on board. Later, when you implement the process and tools, you will involve the key people:
Note: Watch out for people who want to discuss process and methodology, instead of developing systems.
Ask the stakeholders why they want to change to a new process and tools by implementing the Rational Unified Process (RUP). The following are some typical answers and their effect on how the process gets implemented:
Make a list of relevant competency areas, such as those shown in the following list:
For each of these competency areas, assess the knowledge, expertise, and experience of the people in the organization. There are several ways to do this:
For each area, estimate the individual's competency. The following is an example of a simple competency scale that can be used:
Make a competency profile of each individual and compile competency profiles for entire teams. It's just as important to understand the competency profile of a team as a whole because no individual alone can have all the necessary competencies.
Interview people to understand their attitudes toward changing to new technology, new tools, and new process. If people are negative or skeptical toward the change, it's impossible to succeed with the change unless you turn their negative attitudes into positive ones.
See section "Attitudes" in Concepts: Process Discriminants for typical signs of negative attitudes and over-enthusiasm, and for methods on how to handle them.
Analyze the capacity for change in the organization and among its individuals. When looking at the organization's problems, there's a tendency to want to fix everything all at once, especially since many of these problems occur together. This is a fatal trap. Organizations, just like individuals, can accommodate change only within a limited range. Different organizations are better prepared for change than others. To understand the organizational capacity for change, interview people in the organization to understand the attitudes and willingness to change.
Read existing process descriptions to understand the depth of the existing development process. For each discipline, identify what kinds of description they have for that discipline. For example, find out if there are no descriptions at all, and whether there are examples, guidelines, document templates, activity descriptions, artifact descriptions, and so on.
With a good understanding of the existing process, you will:
Describe the characteristics of projects and applications typical for the organization. Look at both finished projects and projects currently running. Collect information by interviewing individuals or entire teams. See Work Guidelines: Interviews and Work Guidelines: Brainstorming and Idea Reduction for more guidance. Study the results produced by projects—for example, project plans, artifacts produced by the project, process descriptions, project testimonials and final status assessments, and so on.
Collect the following characteristics about each project and its product:
To understand the factors and what effect they will have on how you tailor the process, see Guidelines: Process Discriminants.
Identify the tools that are currently being used by the projects. Identify the areas where project members lack tool support. See Concept: Supporting Tools for information.
The best way to identify problems is to gather a number of key people for a problem-identification session. See Work Guidelines: Brainstorming and Idea Reduction for general advice on how to organize such a session. Notice that there are situations when it is more or less pointless to identify problems, and that is if they do not have an existing way of working (see section "Change Everything" in Concepts: Implementing a Process in a Project, for more details).
To identify problems, ask questions such as:
Make sure you cover all areas of the development process, including all disciplines, tool support, and competencies. Also make sure that you look at organizational and political issues. See section "Problems and Root Causes" in Guidelines: Process Discriminants, for a list of typical process-related problems.
Identify what negative effects each problem has, or will have, if it's not eliminated or reduced for the projects. Knowing the effect of a problem helps you understand how critical it is to eliminate or reduce that problem.
Identify the root causes of each problem to help you understand how to remove, or reduce, the problem and how much it will cost. Fishbone diagrams may help your understanding. If a problem has several root causes, you need to weigh them against each other, in which case Pareto diagrams may be helpful.
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:
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 |
... |
... |
... |
... |
Analyze the results of the collected information and compile a list of areas and issues on which to focus. Issues that should be addressed early usually fall into one or several of the following categories:
Document the gathered information and the conclusions in the Artifact: Development-Organization Assessment.
Often some recommendations for the future are needed as part of the
assessment. The recommendation should describe how the development project (or
entire development organization) should go forward to implement the new process
and tools. The recommendations could consist of outlined implementation plans,
project plans, development cases, and so on.
Rational Unified Process |