Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 13: Defining the Software Process - Coggle Diagram
Chapter 13: Defining the Software Process
Why Define Processes
You should also have process objectives, such a
to help you to plan and track your work
To guide you in performing tasks.
To help you to evaluate and improve the way you do your job
Software Process Basics
Process Elements
A personal process contains the following items:
Scripts to describe how the process is enacted and to refer you to the pertinent standards, forms, guidelines, and measures
Forms to provide a convenient and consistent framework for gathering and retaining data. They specify which data are required and where to record them.
Standards to guide your work and to provide a basis for verifying product and process quality.
Process improvement provisions to help ensure your process will continue to meet your evolving needs.
Process Formats
The purpose of a process is to provide a clear and succinct description of what you intend to do.
Process Definition
The steps for defining a personal process are as follows:
1.Determine your needs and priorities.
2.Define the process objectives, goals, and quality criteria.
3.Characterize your current process.
4.Characterize your target process.
5.Establish a process development strategy.
6.Define your initial process.
7.Validate your initial process.
8.Enhance your process.
Determine your needs and priorities
Determine the nature of the products your process is to produce.
Identify the principal product attributes.
Determine the relative priorities of these product attributes.
Determine the process features needed to produce these product attributes.
Note whether the relationships between the process features and product attributes are strong, medium, or weak (S, M, W).
Categorize these process features into highest priority (HP), priority (P), needed (N), and not needed (NN).
With the Personal Software Process (PSP), the product priorities are as follows
Highest Priority
Meet functional objectives.
Keep the number of defects to a minimum.
Priority:
Require the minimum development time.
Complete development within the planned costs.
Needed:
Produce easy-to-use products.
Provide reusable end products.
Characterize your current process
In general, your process improvement efforts will be most successful when you plan for multiple incremental improvements rather than a single drastic change.
If the task the process is to implement is one you currently perform, start with a simple definition of your current work and ask some questions about it:
How well do you understand the current process? Can you describe its principal steps, how they relate, and the time you spend on each?
Do you have serious problems with your current process? If so, list them and decide on their relative priorities.
Do the steps in your current process have explicit entry and exit criteria? Make these as specific as you can. If they are unstated or general, the process measurements will be poorly defined and not very helpful.
Is your current process planned and tracked? If you do not now consistently make project plans and track performance against them, this should be your initial improvement priority.
Is your current process sufficiently well-measured to permit quantitative improvement plans? After introducing planning and defining entry and exit criteria, you should next incorporate time and quality measures into your current process.
Do you have a current process baseline? For the PSP, you now have productivity, quality, and planning data. If you do not have such data on your new process, get some as quickly as you can.
Defining Process Phases
The definition of a process phase includes the following items:
Purpose: Why is this phase performed?
Responsible agent: Who enacts this process phase? For the PSP, this is you.
Entry criteria: Which inputs are needed and what conditions must be satisfied before starting the phase, and who is responsible for each? Also, what process elements are needed and where do they come from?
Tasks: Which sub-process tasks are performed, and where are they described?
Exit criteria: Which conditions must be satisfied at phase exit, what outputs are produced, and where do those outputs go?
Next phase: Which steps come next, and what are the conditions or selection criteria among them?
Process Development Considerations
Process Clarity: Avoid creating overly complex process definitions that are hard to understand and remember. Keep your process clear and straightforward.
Balancing Detail: Design your process at the level that best guides your work. Provide helpful reminders and guidance, but don't overwhelm with unnecessary detail.
Gradual Enhancement: Start with a simple process and gradually enhance it as you gain experience. Over time, refine and expand your process as needed.
Trial Definitions: Trial and error is essential in the process definition. You may not initially know the best level of detail until you start using the process.
Specific Forms: Design forms that capture the essence of the task being performed. Forms should be convenient and user-friendly but may require multiple revisions.
Learning from Data: Use historical data and feedback to improve processes. For example, when creating a code review checklist, analyze past data to prioritize review items.
The Process Development Process
Process Development Guidelines
Start with a simplified process definition.
Include a planning step.
Record the development time for each major step and product category
Keep track of the numbers of product items produced in each category.
Define productivity measures, such as minutes per form, script, or standard.
Keep a record of each process development.
Produce a summary report for each process development