Applying the Right Process to the Right Environment

  • Slides: 38
Download presentation
Applying the Right Process to the Right Environment by Michael K. Daskalantonakis MKD Technologies,

Applying the Right Process to the Right Environment by Michael K. Daskalantonakis MKD Technologies, Inc. Austin SPIN Meeting 9/14/06 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 1

Outline 1. Introduction 2. Selecting an Applicable Software Life Cycle Model 3. Selecting the

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 2

1. Introduction http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 3

1. Introduction http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 3

Software Process and Life-Cycle Model è Software process: A set of steps involved in

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 4

Software Engineering Environment è It is the context in which life cycles and processes

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 5

Project Types è Prototype Projects Develop and test new algorithms and technology Requirements are

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 6

Tailoring Process to Environment è If you want exceptional project results it is necessary

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 7

Software Project Leverage Points Achieve the Desired Results New Technology & Tools Performance determinants

Software Project Leverage Points Achieve the Desired Results New Technology & Tools Performance determinants for: • Cost / Effort • Schedule • Quality People Familiar with the Application Domain Assigned Project Roles Life Cycle and Processes Tailored to the Needs of the Project http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 8

2. Selecting An Applicable Software Life Cycle Model http: //mkdtechnologies. com Copyright 2006 MKD

2. Selecting An Applicable Software Life Cycle Model http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 9

Software Life Cycle Models è They indicate the sequencing of process steps to complete

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 10

Prototyping Model Extract Design and Enhance It Proto Review with Users / Enhance Reqs

Prototyping Model Extract Design and Enhance It Proto Review with Users / Enhance Reqs Spec Reqs Update Feature List Coding And Testing Coding Support and Maintenance Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 11

Waterfall Model Reqs Analysis Design Progress (Gates and Criteria) Coding and Unit Testing Integration,

Waterfall Model Reqs Analysis Design Progress (Gates and Criteria) Coding and Unit Testing Integration, System, and Regression Testing Release Maintenance and Support Time Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 12

Incremental (Waterfall) Development Model Reqs Analysis . . . . Design (Incr 1) Coding

Incremental (Waterfall) Development Model Reqs Analysis . . . . Design (Incr 1) Coding and Unit Testing (Incr 1) Design (Incr n) . . . . Progress (Gates and Criteria) Coding and Unit Testing (Incr n) Integration, System, and Regression Testing Release Maintenance and Support Time Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 13

Refined V Model Reqs Analysis ST 1 Progress (Gates and Criteria) High Level Design

Refined V Model Reqs Analysis ST 1 Progress (Gates and Criteria) High Level Design IT 1 Low Level Design IT 2 ST 2 UT 1 Coding UT 2 UT 3 UT 4 Time UT 5 Unit Test IT 3 IT 4 IT 5 Progress (Gates and Criteria) Integration Test ST 3 ST 4 ST 5 System Test Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 14

Spiral Model Evaluate Alternatives, Identify And Resolve Risks Determine Objectives, Alternatives, Constraints Risk Analysis

Spiral Model Evaluate Alternatives, Identify And Resolve Risks Determine Objectives, Alternatives, Constraints Risk Analysis Prototypes Reqs and Iteration Plan Concept of Operation Reqs Spec Detailed Design Code Reqs Validation Development Plan Unit Test Plan Next Phases Integration And Test Design Verification and Validation Support and Maintenance Integration and System Test Develop and Verify Next Level Product Regression / Acceptance Test Integral Processes (Project Mgt, [Subcontractor Mgt], Configuration Mgt, SQA, Inspections) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 15

Web Development Model Monitor Usage Stats and Evolve the System Attract Traffic to the

Web Development Model Monitor Usage Stats and Evolve the System Attract Traffic to the Web-based System Test, Enhance, and Go Live Develop Prototype Establish the Goals, Audience, And Reqs http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 16

3. Selecting The Applicable Process Steps and Tools http: //mkdtechnologies. com Copyright 2006 MKD

3. Selecting The Applicable Process Steps and Tools http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 17

Process Steps and Entry / Exit Criteria è Processes indicate the steps involved to

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) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 18

Requirements Analysis Process Entry Criteria Potential product identified. Initial project team formed. Tasks Responsibility

Requirements Analysis Process Entry Criteria Potential product identified. Initial project team formed. Tasks Responsibility Exit Criteria Survey and meet with representative users from the market segments (use any existing customer contact databases). Product Manager Hold product User Group or Advisory Group meetings. Product Manager Requirements Specification document completed. 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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 19

Design Process Entry Criteria Draft Requirements Specification available. Tasks Responsibility Exit Criteria Determine the

Design Process Entry Criteria Draft Requirements Specification available. Tasks Responsibility Exit Criteria 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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 20

Coding and Unit Testing Process Entry Criteria Tasks Responsibility Exit Criteria Software code written,

Coding and Unit Testing Process Entry Criteria Tasks Responsibility Exit Criteria Software code written, inspected, unit tested, updated, and placed under configuration management. Requirements Specification updated per inspection and available. Write source code for each module using the applicable coding standard. Developer Compile the source code (both new and reused) and run the tools identified in the Project Plan. Developer Draft Design available. 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 Draft user documentation / training materials developed. http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 21

Process Stages è Process steps may be grouped in stages to make the process

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 22

Example: Test Process Stages Test Plan and Design Test Plans Test Design Development Process

Example: Test Process Stages Test Plan and Design Test Plans Test Design Development Process Feedback (for Developers) Test Creation Test Procedures Test Cases Test Execution and Result Reporting Test Report Defect Isolation and Fixing Isolate construction defects and fix them Isolate testing defects and fix them Test Fixes Construction Fixes Review and test the fixes Review fixes and rerun the tests Post-Mortem Test Process Feedback (for Testers) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 23

4. Process Improvement Mechanisms http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights

4. Process Improvement Mechanisms http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 24

What Is Process Improvement? è Once the process steps and life cycle models have

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 25

Quality Improvement Paradigm (QIP) è Planning Characterize the project environment Define goals, questions, metrics

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 26

Goal Question Metric (GQM) Paradigm è Develop a set of goals for productivity and

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 27

The GQM Approach to Measurement Goal Q 1 M 2 Q 2 M 3

The GQM Approach to Measurement Goal Q 1 M 2 Q 2 M 3 M 4 Q 3 M 5 M 6 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 28

Software Metrics è A software metric is a method of determining the extent to

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 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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 29

Benefits of the QIP & GQM Approaches è Allow for the differentiation of project

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 30

SEI Progress Assessments - 1 è Purpose: Provide a self-assessed measure of progress in

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 31

SEI Progress Assessments - 2 è Three primary evaluation dimensions Approach – Organizational commitment

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 32

KPA Scoring Sheet http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved.

KPA Scoring Sheet http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 33

KP Evaluation Dimensions http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved.

KP Evaluation Dimensions http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 34

KPA Assessment Results http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved.

KPA Assessment Results http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 35

5. Conclusion http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 36

5. Conclusion http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 36

Right Process for the Right Environment è Define your company’s software process handbook (process

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 http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 37

Acknowledgements è The concepts presented here were developed and practiced over the last twenty

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) http: //mkdtechnologies. com Copyright 2006 MKD Technologies, Inc. All Rights Reserved. 38