Day 5, Part 2Applying the Principles and Techniquesof Productivity, Quality and Cycle Time Management Software Project Planning and Management Dr. Dennis J. Frailey Principal Fellow Raytheon Company
The Overall Planning Cycle Manage Risks Analyze Job Generate Initial Plans Generate Detailed Plans Execute Measure, Manage Productivity and Quality
Summary of This Module • Simplifying the process • Reduce rework • Make processes more consistent • Analyze value-added (see part 1) • Analyze and optimize process flow • Periodically re-engineer the process • but not so often as to be disruptive • Manage the white space • Exercise to apply and demonstrate the power of these techniques
Many Processes are Too Complex Volume 2 Volume 3 Volume 4 Volume 5 How to Change a Lightbulb Volume 1
Process Complexity Means Low Productivity and Long Cycle Time • Typical software development processes are much more complex than they need to be • This often results from trying to be too comprehensive or too rigid • Processes are important • But they must be designed for efficiency We need to focus on eliminating steps that do not add value to the product
Ways of Analyzing Processes to Simplify Them • Reducing rework • Making processes more consistent • Value-added analysis • Flow analysis • Re-engineering the process • Managing the white space
Reducing Rework - The Impactof Defects on Cycle Time Defect Detected Process Step Process Step Undetected Defect Several Steps
Doing It Over Again Defect Detected Process Step Process Step Undetected Defect Several Steps Rework costs money and time
The Longer It Takes To Detect, The Higher The Cost C O S T PHASE WHERE DETECTED
Look for Rework • Rework is anything you do because you didn’t do it right the first time. • debugging • correcting documentation • correcting designs • correcting requirements • re-testing • responding to customer complaints • Some rework is hard to avoid but most can be reduced significantly
Rework = Inefficiency • Total rework is a measure of process efficiency • You probably have a lot more rework than you think
Impact ofInconsistent Processesand Procedures • Tools do not share data • Individuals do not understand each others’ work • Excessive time and effort spent on interfaces between different individuals and organizations System Engineer Story
Example of InconsistentProcesses and Procedures On one project, we found that roughly 50% of the cycle time was spent in the following activities: • Converting documents and software from one tool/format to another • Correcting problems due to different programming styles • Handling interfaces between programs written in different languages
Making Processes More Consistent • Use standards, especially for interfaces and data formats • Use compatible tools and procedures (even if they are not optimal for individual tasks!) • Develop a culture that resists “ownership” of processes and methods Email Story
Flow Analysis IdentifiesProcess Bottlenecks • Determine what people actually do throughout the entire software development cycle • what is their actual, day-to-day process? • Diagram the actual process flow • (not what you think it does - what it really does!) • Draw a flow chart or other diagram
INSPECT START MODULE FIND SW MODULE DETERMINE WHY? OK? REPEAT INSPECTION NO CHECK STATUS YES LOGOUT CORRECT CORRECT ERROR CNT ERROR COUNT? NO IS ERROR CORRECT THE ERROR CORRECTION YES CORRECT? NO GO TO DEBUG STEP YES APPROVE DEBUG ERRORS LOGOUT LOGOUT FINISH Sample Process Flow Diagram
Show Everything • Include all inputs, outputs, inspections, rework, temporary storage, set ups, etc. • everything that happens • Determine which components do not add value • Identify opportunities to eliminate waste and flow problems • Focus on non-essentials
Areas to Focus On • Procedures and methods • Are they working effectively? • Are they interfacing well with each other? • People • Are they using their time efficiently? • Are they spending too much time waiting between tasks? • Coordination - or lack of it … continued
More Areas to Focus On • Computers and Software • Are they available and effective? • Is too much time spent getting them to work? • Requirements/specifications/other inputs • Are they available when needed? • Queues and waits • Where is the excess WIP?
Identifying Queues and Waits • Think of yourself as the software product being developed. • Take yourself through the process. • At what points are you just waiting, with no useful work being performed? • These are bottlenecks, waits or queues that should be removed
Example -Eliminating Queues and Waits Problem: you take a long time to complete unit test because everyone needs the test system at the same time Analysis: the test system is a constraint Solution: optimize the constraint! But I must have it too!! I must have the test system today!
Some Options for Solution • Stagger development schedules to even out use of test system • costs more up-front planning • requires people to be flexible in their schedules • Obtain more test systems • costs more money • but may be worth it
Exercise - The Passing Game • Input: Six coins piled on the end of a long table, with six people lined up on one side of the table • Output: Six coins piled on the other end of the table • Goal: Shortest time / highest productivity Start Finish
Rules for The Passing Game • Each coin must be picked up before it is moved. • Each person must hold each coin for a minimum of 1 second -- if they do not, you get a penalty - the coin moves back to the starting point See how fast you can move the coins by coordinating and synchronizing your handoffs
Typical Results • First time - 22 seconds • After coordination of handoffs - 13 seconds
Customer, Environment, Technology Organization Organizations Optimize toFit the Customer • Organizations usually begin by designing themselves to fit the needs of the customer, the business environment and the available technology
Customer, Environment, Technology Organization But Things Change • After time, the organization no longer fits the customer and/or the available technology
Process Re-engineering • Basic Idea: from time to time, it is necessary to reinvent the process • Motivation can come from: • intense competition • new technologies • new customers • new laws • other changes in the environment • realization that competition does it better • realization that you have not rethought the issues in a long time and may be stagnating
You define your organization to mirror or support a given environment. But environments change and changes can make organizations less effective. Changes Make Organizations and Processes Obsolete
Organizations Need Periodic Redesign or Re-engineering “We’ve always done it this way and it works just fine” • Assess the environment • Rethink the processes • Reinstate the direct connections to • customers • suppliers • employees • etc.
Example 1Credit Approval Process Before: • Credit approval must go through six departments • Each department takes 2-3 business days • So credit approval typically takes 3 weeks Meanwhile, the competition is approving credit in 1 week! And we are losing sales because of this.
SolutionCredit Approval Process • Each department must increase productivity and reduce cycle time to 1 day per approval step • Each department does this through incentives (bonuses, rewards, etc.) • Will this work? • If so, why? • If not, why not?
Wrong Solution!Credit Approval Process • It is accomplished by • Rejecting faulty input (even slightly faulty) • Producing output that is often defective Result: Average credit approval takes 6 weeks! Greatly increased rework!
Re-engineered SolutionCredit Approval Process • One individual handles all six steps of each transaction • The six former departments become consultants, available to handle special cases but not involved in routine cases Credit approvals reduced to 1 week!
Analysis • Changed the process • Changed the organization structure • Responsibilities • Authority • Changed the culture • What is important is serving the customer
Graphic Artist Design Group: Assignment Dept G1 Graphic Artist Printing Group: Assignment Dept P1 G2 P2 G3 P3 G4 P4 G5 P5 Example 2Graphic Artist Group Original Process: Design Need Defective Products Sample Inspection Good Products
Graphic Artist Design Group: Assignment Dept G1 Graphic Artist Printing Group: Assignment Dept P1 G2 P2 G3 P3 G4 P4 G5 P5 Example 2Graphic Artist Group Original Process: Design Need Defective Products Motive for this approach: even workloads Sample Inspection Good Products
Graphic Artist Design Group: Assignment Dept G1 Graphic Artist Printing Group: Assignment Dept P1 G2 P2 G3 P3 G4 P4 G5 P5 Example 2Graphic Artist Group Original Process: Design Need Defective Products Sample Inspection Good Products Bad samples are common on the first attempt due to the nature of the work.
Graphic Artist Design Group: Assignment Dept G1 Graphic Artist Printing Group: Assignment Dept P1 G2 P2 G3 P3 G4 P4 G5 P5 Example 2Graphic Artist Group Original Process: Design Need Defective Products Sample Inspection Good Products More defects are generated on the second cycle!
Assignment Dept G1 P1 G2 P2 G3 P3 G4 P4 G5 P5 Re-engineered Process forGraphic Artist Group Improved Process: Design Need Defective Products Inspection Sample Good Products
Assignment Dept G1 P1 G2 P2 G3 P3 G4 P4 G5 P5 Re-engineered Process forGraphic Artist Group Improved Process: Design Need Defective Products Inspection Sample Good Products By tying a graphic designer to a printer for the whole job, defects were repaired quickly and good products had greatly reduced cycle time.
Example 3 SW Process Takes Too Long Problem: there are many delays during software test because of requirements errors and changes • Rework to fix code to match new requirements Analysis: we didn’t have time to examine and rework the requirements earlier
Improving the SW Process Process changes: • ADD a requirements inspection • ADD time in the requirements phase to correct defective requirements • MODIFY the reward system to foster discovery of requirements defects during the requirements phase
Results of Re-Engineering to Reduce Rework • Reduced total development time • Modest increment to requirements analysis schedule • Large reduction in debugging time • Reduced cost • The number of staff during requirements was smaller than the number during test • The amount of rework during the test phase was smaller so they saves money
Rethinking The Passing Game • Re-engineer the process • You must follow the rules • But examine the assumptions Hint: it can be done in under 2 seconds!