# Presentation: 063661

## Disciplined Software Engineering Lecture #14

**Software Engineering Institute**
**Carnegie Mellon University**
**Pittsburgh, PA 15213**
**Sponsored by the U.S. Department of Defense**

## Lecture # 14 Overview

**Process terms**
**Why define a process**
**Process definition**
**process elements **
**process architecture**
**process evolution**
**A process development process**

## Selected Process Terms - 1

**Accuracy - the degree to which the process produces the intended result**
**Agent - the person or machine that enacts the process**
**Fidelity - the faithfulness with which the process is followed**
**Fitness - the degree to which the agents can faithfully follow the process**

## Selected Process Terms - 2

**Precision - the degree to which the process-defined actions produce accurate results**
**Process architecture - a process design framework **
**Process definition - a process implementation**
**Process design - an embodiment of a process architecture**

## Selected Process Terms - 3

**Process element - a component of a process**
**Process script - a process definition suitable for a human agent**
**Process step - an atomic process action with no visible external substructure**
**Process tailoring - the act of adapting a process design to support a particular purpose**

## Why Define a Process 

**The principal purpose of a defined process is to help agents to faithfully enact it.**
**To help to automate the process**
**To provide a framework for process measurement**
**To improve the process - if you don’t know what you are doing, you can’t improve it**

## Software Process Elements

**Defined scripts for performing the tasks**
**A set of planning, tracking, and recording forms and templates**
**A set of standards and checklists**
**An improvement procedure, with process improvement proposal (PIP) forms and facilities**

## Process Formats 

**There are many possible process formats.**
**A convenient format is helpful but not critical.**
**The textbook follows the principles of information mapping.**

## Information Mapping

**The principles of information mapping**
**group information into manageable chunks**
**place only like things together in chunks**
**provide a label for each chunk**
**be consistent with terms, organization, format**
**use tables, illustrations, diagrams**
**write at the most usable level of detail**
**provide a clear hierarchy of chunks**

## Process Architecture - 1

**Process architecture:  a conceptual framework for consistently incorporating, relating, and tailoring process elements into enactable processes**
**An effective process architecture**
**provides consistency among processes**
**facilitates unit process development and reuse**
**identifies missing process elements**
**enables the use of consistent support tools**
**provides a common measurement framework**

## Process Architecture - 2

**Process architectures will ultimately be very helpful in guiding process development.**
**At present, no general process architectures have been developed and there are no guidelines for their development.**
**Until we have experience with developing multiple related processes, we will not likely be able to develop sound process architectural principles and guidelines.**

## Defining the Software Process

**The steps in defining a software process are**
**determine agent needs and priorities**
**define process objectives, goals and quality criteria**
**characterize the target process**
**characterize the current process**
**establish the development strategy**
**define the initial process**
**validate the initial process**
**install and enhance the process**

## Agent Needs and Priorities - 1

**The actions involved in determining agent needs and priorities are**
**identify the potential process agents**
**determine the nature of the products that the process is to produce**
**identify the principal product attributes **
**determine the relative priorities of these attributes**
**determine the process features needed to produce these attributes**

## Agent Needs and Priorities - 2

**Note the relationships among the product attributes and the process features**
**strong**
**medium**
**weak**
**Categorize these process features into priorities**
**HP - high priority**
**P - priority**
**N - needed**
**NN - not needed**

## Objectives, Goals, Quality 

**To determine the process objectives, goals, and quality criteria define what a good process would look like to each using constituency.**
**the product customer**
**the agents**
**project management**
**organization management**
**Considering the agent’s needs, set composite product and process objectives.**

## PSP Example 

**Using the PSP as an example, define the using constituencies.**
**the developers of the PSP **
**agents using the PSP**
**Specify the nature of products to be produced.**
**small experimental programs**
**the PSP process**
**process improvement data**

## Example Product Priorities - 1

**Highest priority**
**meet the program functional objectives**
**minimize the number of defects**

## Example Product Priorities - 2

**Priority**
**meet the performance objectives**
**minimize the development time**
**maintain the development cost within 10% of plan**

## Example Product Priorities - 3

**Needed**
**an easy to use product**
**a maintainable end product**
**a reusable object asset library**

## Example Process Priorities - 1

**Highest priority**
**process improvement feedback**
**comprehensive process measurements**
**a fully planned and tracked process**

## Example Process Priorities - 2

**Priority**
**assure minimum latent product errors**
**minimize test and rework cost**
**maximize process predictability**

## Example Process Priorities - 3

**Needed**
**minimize cycle time**
**minimize development resource**

## Example Goals and Criteria - 1

**Goal 1: learn how to produce an effective PSP**
**process improvement proposals (PIPs) are submitted **
**a process development process is used to make process updates **
**process development data are gathered and used**

## Example Goals and Criteria - 2

**Goal 2:  obtain comprehensive process data**
**a final report is prepared on each project**
**a database is maintained for all defect data**
**a database is maintained for all plan and actual project data**

## Example Goals and Criteria - 3

**Goal 3: process and product quality**
**overall process yield is above 80%**
**test defects are below 5/KLOC**
**compile time is below 2% of total development time**

## Example Goals and Criteria - 4

**Goal 4:  process predictability**
**the estimate to actual standard deviations are under 20%**

## The Target Process - 1

**The target process is used to relate process objectives to the process design.**
**By setting a long-term direction, the target process guides process improvement priorities.**

## The Target Process - 2

**Since a target process will likely be hard to define, some helpful initial steps are to**
**examine other processes**
**use available data on the current process**
**define an early experimental version as a learning vehicle**
**At a minimum, the target process should contain**
**a high-level listing of the principal steps**
**key process measures **
**the principal improvement goals**

## The Target Process - 3

**Ask some questions about the target process**
**which steps are currently performed?**
**which steps are and are not well understood? **
**which steps will be  frequently repeated?**
**which steps will likely use the most resources?**
**where do you expect the most problems?**
**Use the answers to guide your prototype studies and improvement priorities.**

## The Current Process - 1

**How well do you understand the current process? **
**can you describe the principal steps? **
**do you know how these steps relate?**
**do you know the resource distribution among   these steps?**
**   **
**Does each step have defined entry and exit criteria?**
**Does your current process have known serious deficiencies?**

## The Current Process - 2

**Is the current process planned and tracked?**
** **
**Is it well enough measured to permit quantitative improvement plans?**
**Is there a current quality baseline?**
**resource distribution**
**defect rates**
**schedule and cost performance**

## Process Development Strategy 

**Ask some questions about the steps in the current process.**
**Establish some initial priorities.**
**Define the initial process.**
**Test and adjust the initial process.**

## Current Process Questions

**Which steps **
**are and are not well understood? **
**are frequently repeated?**
**use the most resources?**
**cause the most quality problems?**
**have the most management problems?**
**have the most technical problems?**

## Initial Priorities

**Include the following items in an early process version**
**an initial planning phase**
**basic resource and product measures**
**some initial quality measures**
**documented estimates of all measured items**
**planning and reporting forms for all measures**
**a process completion report**
**a postmortem phase for data gathering, data      analysis, and reporting**

## Define, Test, and Adjust

**Follow the abstraction paradigm**
**first define the total process as a single step**
**second define each subprocess step**
**then continue until the process is appropriately refined**
**use a standard format**
**Focus on process quality**
**do a walkthrough with available data**
**do an initial test with a small project**
**encourage user feedback**

## Definition Level

**A process captures knowledge; you must have   knowledge to develop a good process.**
**only generally define the steps you know well and that do not cause current problems**
**study and measure the steps you do not understand before attempting to define them**
**on steps you generally understand, define a little more than you know and revise the definition as your knowledge improves**

## Defining Process Steps

**Use a standard step definition template to ensure you include all the necessary items.**
**purpose**
**responsibilities**
**products produced**
**inputs**
**tasks**
**methods, procedures, and standards**
**entry criteria**
**exit criteria**
**next steps**

## Process Definition Guidelines

**Start with your current process.**
**make minimal initial enhancements**
**only define things you know reasonably well how to do**
**if you know a step well, focus elsewhere**
**if a step is confusing, experiment or talk to    someone who knows how to do it**
**expect to get it wrong the first time**
**plan to prototype and test**
**plan for perpetual enhancement**
**make improvements in small steps**

## Process Evolution

**To evolve and improve your process**
**it must be defined**
**it must reasonably represent what you do**
**You must **
**know where you want to go**
**be willing to experiment**
**observe and measure your own performance**
**Expect process evolution to take time.**

## The 4 Processes 

**supposed**
**to do**

**The 4 Processes **

**what you**
**want to do**

**what you think**
**you do**

**what you do**

## Start By Converging

**supposed**
**to do**

**Start By Converging**

**what you**
**want to do**

**what you think**
**you do**

**what you do**

**your **
**initial**
**process**

## Evolving Your Process - 1

**Your first objective should be to converge what you do, what you think you do, and what you are supposed to do to a common process.**
**Convergence is an iterative process that lasts throughout process development and evolution. **

## Evolving Your Process - 2

**Process convergence is critical because**
**until converged, improvement actions will often not affect behavior**
**convergence provides a deeper understanding of the current process**
**convergence can result in substantial behavior modification**

## Process Development Process

**Start with a simplified process definition**
**Plan and measure your work**
**record development time per process category**
**count the numbers of product items by category**
**define productivity measures**
**plan every process development**
**keep a record of each process development**
**produce a summary report for each process development**

## A Process Development Process

**Requirements**
**and Planning**

**Review PIPs**

**Step **
**Definition **

**Test and**
**Update**

**Post-**
**mortem**

**Scripts**

**Standards**

**Databases**

**Forms and**
**Templates**

**PIP**
**Submissions**

**Further**
**refinements?**

**yes**

## Lecture #14 Assignment

**Complete the final report.**
**Update the process used to develop the mid-term report and use it to develop the final report.**
**Turn in the updated process, the plan for the work, the actual data for the work, and the final report.**
**Consult the report specifications in Appendix D.**

## Messages to Remember from Lecture 14 

**1.  Process development is an evolutionary **
**     ****process.**
**2.  You must understand your process before **
**     ****you can properly define it.**
**3.  Process development is a process that **
**     ****should also be defined, measured, and **
**     ****managed.**