http://mkdtechnologies.com copyright 2006 mkd technologies, inc. all rights reserved. 1 applying the...
TRANSCRIPT
Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 1http://mkdtechnologies.com
Applying the Right Process to the Right Environment
by
Michael K. Daskalantonakis
MKD Technologies, Inc.
Austin SPIN Meeting
9/14/06
2Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Outline
1. Introduction
2. Selecting an Applicable Software Life Cycle Model
3. Selecting the Applicable Process Steps and Tools
4. Using Process Improvement Mechanisms
5. Conclusion
Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 3http://mkdtechnologies.com
1. Introduction
4Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Software Process and Life-Cycle Model
Software process:
A set of steps involved in creating project deliverables
Identified roles responsible for each process step
Entry/exit criteria associated with the process
Software life cycle model:
Determines the specific ordering of the steps involved in the processes used by the project
5Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Software Engineering Environment
It is the context in which life cycles and processes are applied. It varies by project and it is characterized through attributes such as:
Size of the development team
Geographical distribution of the development team (communication needs)
Geographical distribution of the users (localization needs)
Average level of developer expertise
Average application familiarity of the developers
Problem domain
Domain difficulty
System constraints (response time, memory limitations)
Estimated product size (e.g., total KLOC vs. delta KLOC)
Extent of technology and tool usage
6Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Project Types Prototype Projects
Develop and test new algorithms and technology
Requirements are developed throughout the project
Prototype used to extract requirements and derive technology
Baseline Projects
Develop and test new software product
Requirements changes occur but they are less extensive in scope
Derivative Projects
Add functionality to a software product already in use
Fix any bugs founds in previous releases
Requirements are typically well understood and relatively stable
7Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Tailoring Process to Environment If you want exceptional project results it is necessary (but not
sufficient) to:
Tailor processes and life cycle to:
– the project environment (characteristics / needs) and
– the project type
It is such tailoring that results in using the right process for the right environment! This involves:
Selecting the applicable (or customizing a generic)
– Life-Cycle Model
– Process steps and entry / exit criteria
– Software engineering technology and tools
– Assignment of roles and responsibilities to project participants
Creating a Project Plan reflecting the choices made with buy-in within the organization
Constantly reviewing, fine tuning, and updating the Project Plan to match the changing needs of the project as it progresses and when necessary
8Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Software Project Leverage Points - Achieve the Desired Results
New Technology
& Tools
People Familiar with the Application Domain
Assigned Project Roles
Life Cycle and Processes Tailored to the Needs of the Project
Performance determinants for: • Cost / Effort• Schedule• Quality
Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 9http://mkdtechnologies.com
2. Selecting An Applicable Software Life Cycle Model
10Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Software Life Cycle Models They indicate the sequencing of process steps to complete a project
Many models exist and are in use in the industry
This section only provides samples of such industry models for purposes of discussion, not a complete list
New models are introduced as a need arises
11Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Prototyping Model
Extract Design andEnhance It
Support and Maintenance
Feature List
Reqs Spec
Coding
Proto Reviewwith Users / Enhance
Coding And Testing
Reqs Update
Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections)
12Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Waterfall ModelReqs Analysis
Design
Coding and Unit Testing
Integration, System, andRegression Testing
Release
Maintenance and Support
Time
Progress (Gates and Criteria)
Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections)
13Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Incremental (Waterfall) Development Model
Reqs Analysis
Design(Incr 1)
Coding and Unit Testing (Incr 1)
Integration, System, andRegression Testing
Release
Maintenance and SupportTime
Progress (Gates and Criteria)Design(Incr n)
Coding and Unit Testing (Incr n)
.......
.......
Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections)
14Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Refined V ModelReqs Analysis
High Level Design
Low Level Design
CodingUT1
UT2
UT3
UT4
UT5
Unit Test
IT1
IT2
IT3
IT4
IT5
Integration Test
ST1
ST2
ST3
ST4
ST5
System Test
Time
Progress (Gates and Criteria)
Progress (Gates and Criteria)
Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections)
15Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Spiral Model
Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections)
Determine Objectives, Alternatives, Constraints
Evaluate Alternatives, IdentifyAnd Resolve Risks
Develop and VerifyNext Level Product
Plan Next Phases
Risk Analysis
Prototypes
Reqs and IterationPlan
Development Plan
IntegrationAnd Test
Support and Maintenance
Concept of Operation
Reqs Spec
Reqs Validation
Design Verificationand Validation
Design
DetailedDesign
Code
Unit Test
Integration and System Test
Regression / Acceptance Test
16Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Web Development Model
Establishthe Goals,Audience,And Reqs
DevelopPrototype
Test, Enhance,
and Go Live
Attract Traffic to the
Web-based System
MonitorUsage Stats and Evolvethe System
Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 17http://mkdtechnologies.com
3. Selecting The Applicable Process Steps and Tools
18Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Process Steps and Entry / Exit Criteria
Processes indicate
the steps involved to complete a related set of project deliverables
the criteria involved in determining whether or not to enter or exit the process
– Enter when pre-requisite materials have been completed
– Exit when resulting materials have been completed
Process definitions vary and typically reflect organizational needs
This section provides samples in use in the industry for discussion purposes only (not a complete list)
19Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Requirements Analysis Process
Entry Criteria
Tasks Responsibility Exit Criteria
Potential product identified.
Initial project team formed.
Survey and meet with representative users from the market segments (use any existing customer contact databases).
Product Manager Requirements Specification document completed.
Hold product User Group or Advisory Group meetings. Product Manager
Define the product scope and determine its features. Create feature prioritization and roadmap. Create Preliminary Requirements Spec.
Product Manager
Use the template for Requirements Specification to document the product requirements.
System Architect
Inspect, update, and obtain approval of the Requirements Specification document. Place it under configuration management using the standard tool.
System Architect
Update the Requirements Specification throughout the project per the applicable guidelines.
System Architect
20Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Design Process
Entry Criteria
Tasks Responsibility Exit Criteria
Draft Requirements Specification available.
Determine the software structure and architecture. Use the System Architecture template to document it. Place it under configuration management using the standard tool and update throughout the project as necessary.
System Architect Software Design document completed.
Identify and obtain any design and code available for reuse. Developer
Create the design for the new software modules. Developer
Use the Design template to document the software design.
Developer
Inspect and update the Design document; place it under configuration management using the standard tool.
Developer
Update the Design document throughout the project. Developer
21Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Coding and Unit Testing Process
Entry Criteria
Tasks Responsibility Exit Criteria
Requirements Specification updated per inspection and available.
Draft Design available.
Write source code for each module using the applicable coding standard.
Developer Software code written, inspected, unit tested, updated, and placed under configuration management.
Draft user documentation / training materials developed.
Compile the source code (both new and reused) and run the tools identified in the Project Plan.
Developer
Inspect the subset of the new code specified in the Project Plan and update it appropriately.
Developer
Create and execute unit test cases (for new code and reused code).
Developer
Update the code and place it under configuration management in the appropriate project directory.
Developer
Update the code as necessary throughout the project. Developer
22Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Process Stages
Process steps may be grouped in stages to make the process definition easier to comprehend
Such stages may have their own entry / exit criteria (based on the overall process entry / exit criteria)
Following is an example of how processes are organized in stages which involve process steps
23Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Example: Test Process Stages
Test Plan and Design
Test Creation
Test Execution andResult Reporting
Defect Isolation and Fixing
Isolate construction defectsand fix them
Isolate testing defectsand fix them
Review and test the fixes Review fixes and rerunthe tests
Test PlansTest Design
Test ProceduresTest Cases
Test Report
Test Fixes
Construction Fixes
Post-Mortem
Development Process Feedback (for Developers)
Test Process Feedback(for Testers)
Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 24http://mkdtechnologies.com
4. Process Improvement Mechanisms
25Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
What Is Process Improvement? Once the process steps and life cycle models have been defined and
tailored for use in different projects, they need to be measured and improved
Process improvement involves:
Identifying strengths and weaknesses (opportunities for improvement)
Prioritizing opportunities based on the project environment / types
Creating and executing an improvement plan reflecting the priorities
Requires a closed feedback loop through Assessments & Measurement of:
Project Characteristics
Process
Technology / Tools
Product
Service
People Teams
Dedicated resources
26Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Quality Improvement Paradigm (QIP)
Planning
Characterize the project environment
Define goals, questions, metrics for successful project performance and improvement
Choose the execution model and supporting methods and tools
Execution
Execute the chosen process steps and life cycle models to:
– Construct the products or services
– Collect and analyze data to provide feedback in real time
Analysis, learning, and feedback to the project group
Analyze the data to evaluate practices and recommend improvements
Proceed to the next planning cycle armed with the recorded, structured experience gained from this and previous projects
27Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Goal Question Metric (GQM) Paradigm
Develop a set of goals for productivity and quality
Develop operational definitions (questions) that characterize, predict, and motivate
Specify the metrics needed to answer these questions and to track conformance to the goals
Develop mechanisms for data collection and analysis
Collect, validate, and analyze the data in-process for feedback to projects and corrective action
Analyze in a post-mortem fashion, to assess conformance and make recommendations for future improvements
28Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
The GQM Approach to Measurement
Goal
Q1 Q2 Q3
M1 M2 M3 M4 M5 M6
29Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Software Metrics A software metric is a method of determining the extent to which a software
process, product, or project possesses a certain attribute
Metrics should be:
Simple to understand and precisely defined
Objective (as much as possible)
Inexpensive to use
Robust
Examples:
Delivered defects and delivered defects per size
Total effectiveness throughout the process
Adherence to schedule
Estimation accuracy
Time that problems remain open
30Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Benefits of the QIP & GQM Approaches
Allow for the differentiation of project environments
Permit the development of a company-wide experience base
Provide a mechanism for:
Assessment of quality and productivity goals
Assessment of the impact of new technology used within projects
Justification for selecting and tailoring the appropriate methods and tools
Improvement
Measurement is not the goal; the goal is improvement through measurement, analysis, and feedback
31Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
SEI Progress Assessments - 1 Purpose:
Provide a self-assessed measure of progress in terms of implementing prioritized best practices
Identify strong/weak areas
Improve organizational practices through action plans
Scoring Approach:
Score each SEI Key Process Area (KPA) by assessing implementation of Key Practices (KPs) using established guidelines
A facilitated meeting of practitioners is the mechanism used to determine the outcome (scores, strengths, weaknesses)
Key Practice scores are in 0 (poor) to 10 (outstanding) scale
32Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
SEI Progress Assessments - 2 Three primary evaluation dimensions
Approach
– Organizational commitment and management support
– Organizational ability to implement
Deployment
– Breadth of practice implementation across project areas
– Consistency of practice implementation across project areas
Results
– Breadth of positive results over time and across project areas
– Consistency of positive results over time and across project areas
Use Kiviat charts to indicate progress
33Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
KPA Scoring Sheet
34Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
KP Evaluation Dimensions
35Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
KPA Assessment Results
Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 36http://mkdtechnologies.com
5. Conclusion
37Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Right Process for the Right Environment
Define your company’s software process handbook (process steps, life cycle models)
Characterize your organization’s project environment
Tailor the process to your environment by selecting process steps & life cycle models mapping to your type(s) of projects
Continuously monitor and improve performance through metrics and progress assessments
38Copyright 2006 MKD Technologies, Inc. All Rights Reserved.
http://mkdtechnologies.com
Acknowledgements The concepts presented here were developed and practiced over the
last twenty years through contributions of many individuals across the industry
Special acknowledgements to:
Dr. Victor Basili (University of Maryland)
Dr. Bob Yacobellis, Dr. Michael Jackson (while at Motorola)