Instructor: Mike O’Dell

Slides:



Advertisements
Similar presentations
CSE Senior Design I Classic Mistakes Instructor: Vassilis Athitsos This presentation was derived from the textbook used for this class, McConnell, Steve,
Advertisements

Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
IS 214 Needs Assessment and Evaluation of Information Systems Managing Usability © Copyright 2001 Kevin McBride.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
CSE Senior Design II Staged Delivery Instructor: Mike O’Dell.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
CSE Senior Design I Risk Management Instructor: Mike O’Dell This presentations was derived from the textbook used for this class: McConnell, Steve, Rapid.
CSE Senior Design I Project Recovery The slides in this presentation are derived from materials in the textbook used for CSE 4316/4317, Rapid Development:
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
INFO 637Lecture #31 Software Engineering Process II Launching & Strategy INFO 637 Glenn Booker.
Software Engineering Process I
Risk management in Software Engineering T erm Paper By By Praveenkumar Sammita Praveenkumar Sammita CSC532 CSC532.
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Software Project Management Introduction to Project Management.
22 Jul 2005CSE403, Summer'05, Lecture 12 Lecture 12: Scheduling, Estimation, and Prioritization (Part II) Valentin Razmov.
10-January-2003cse Context © 2003 University of Washington1 What is a development project? CSE 403, Winter 2003 Software Engineering
CSE 403, Spring 2007, Alverson Software Projects – the challenges we face RD:McConnell.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
Disciplined Software Engineering Lecture #15 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Introducing Project Management Update December 2011.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
CS 5150 Software Engineering Lecture 2 Software Processes 1.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System A Use Case Primer Organizing.
CSE Senior Design II Staged Delivery Instructor: Manfred Huber Partially adapted from Mike O’Dell.
1 Software Project Management Final Stages. 2 Migration Moving users from existing system to your new one.
CSE Senior Design II Timebox Development Mike O’Dell Based on an earlier presentation by Bill Farrior, UTA, modified by Mike O’Dell.
Timebox Development Mike O’Dell Based on an earlier presentation by
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
1 Team Skill 4 Managing the scope Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and Information Technology Based.
Delegation in the workplace PRESENTED BY: STEPHEN SHROPSHIRE JENNIFER MARLOW.
Chapter 33 Introduction to the Nursing Process
Metrics That Matter Real Measures to Improve Software Development
Why is software engineering worth studying?
Project Management Chapter 3.
Managing the Project Lifecycle
Dilbert Scott Adams Manage It! Your Guide to Modern, Pragmatic Project Management. Johanna Rothman.
The importance of project management
Quality Assurance: Early Work Items
Teens lesson eight credit cards.
Mike Cohn - Agile Estimating and Planning
Risk Analysis.
Classic Mistakes chapter22
Lecture 11: Scheduling, Estimation, and Prioritization
Client Management Managing Client Expectations
Taking an Iteration Down to Code
IT Systems Analysis & Design
Software engineering Lecture 21.
The Features of a Product or System
Project Management Complexity, Risks, Failure and Technology
Instructor: Manfred Huber
CEN 4021 Software Engineering II
Lecture 02: Software Lifecycle Models
Timebox Development Instructor: Manfred Huber
Risk Management - Manage them or they will manage you...
Employee Advisory Service
Lecture 03: Software Lifecycle Models
Instructor: Mike O’Dell
How to fail at delivering software
Capability Maturity Model
Instructor: Mike O’Dell
Principles of Customer Service
Instructor: Vassilis Athitsos
Instructor: Manfred Huber
Capability Maturity Model
Presentation transcript:

Instructor: Mike O’Dell Project Recovery Instructor: Mike O’Dell The slides in this presentation are derived from materials in the textbook used for CSE 4316/4317, Rapid Development: Taming Wild Software Schedules, by Steve McConnell.

A Project in Trouble (C.S. 16-1) What was the first indication of trouble? How was the recovery plan developed? What was the recovery plan? Mythical man-month? Signs of denial? Defensiveness? Was the problem that people weren’t working hard enough?

Characteristics of a Project in Need of a Recovery Plan No one knows when they will finish, and can’t even guess Product quality has plummeted and defects are on the rise Everyone is working long, hard hours Peer-pressure and management pressure is on the rise Customer confidence is lost

Characteristics of a Project in Need of a Recovery Plan Developers become defensive of their progress Project team (development, marketing, management, etc.) relationships deteriorate… finger pointing Morale is at rock bottom Cancellation appears imminent No one's having any fun anymore

How to Get Things Back on Track Three fundamental approaches: Cut the size of the project so it can be completed within the time and effort planned Increase productivity by focusing on short-term gains Face the facts – slip the schedule, do damage control, possibly cancel the project Or (usually best), combine these three: Drop a few features, increase productivity where possible, slip the schedule as necessary

Recovery Plan Basics One plan does not fit all Adopt a plan that is right for where you are on your project It almost never helps to… Cut corners Add people (mythical man-month) Rely on silver bullets

First Steps Assess – figure out where you are Recognize that significant action is required Same ol’, same ol’ won’t work! Apply Theory-W analysis What do all stakeholders need at this point? How does everyone win?

Theory-W Management Everyone Wins Customers Bosses Developers End-Users Maintainers Quick Schedule No Overruns Interesting Work Loss of Features No Defects Low Budget No Surprises Exploration of New Technology User-friendly Software Good Docs. Meets Requirements Successful Project No Grunt Work Fast Software Easy Modifiability A Life Robust Software

More First Steps Ask the team what needs to be done Involve everyone Evaluate all ideas Be realistic about your team’s ability to recover Avoid over-committing (again?) Objectively evaluate your ability to estimate, and adjust accordingly

… and More First Steps Assess the “political situation” Identify and fix the “why” if others are not helping the project succeed Everyone onboard with Theory-W? Is there a power struggle going on? What are the priorities of the stakeholders? Could be the reason for failure beyond your control… recovery plan, or not.

A Recovery Plan Three components (the 3 P’s) People… fix these problems and you will get the most leverage toward getting the project back on track Process… fix these problems or your recovery plan will fail Product/Technology… getting the feature-set under control and minimized is critical to project/product stability

Dealing with People Problems Address the morale of the team Critical to productivity Potential Approaches Sacrifice the sacred cows Take explicit action that makes the development team feel important Remove unreasonable schedule pressure Remove micro-management practices

Dealing with People Problems Deal with “problem people” Recall discussion of “Welch Grid” Deal with major leadership problems Is the project leader who got you in this hole the right one to get you out? Identify where on the team the leadership is weak

Dealing with People Problems Add people very carefully, if at all Brooks’s Law: Adding people to a late project is like pouring gasoline on fire! Consider adding only if project can be partitioned to isolate new people Err on the side of NOT adding people Focus… Removing distractions wherever possible

Managing the Process Identify and Fix Classic Mistakes Stabilize product definition, design Shore up control and tracking Validate product quality Verify (and re-verify) the new schedule Validate your tools (any silver-bullets?) Shore up accountability

Managing the Process Identify and fix things that are clearly broken or not working Take decisive action Create “mini-milestones” Miniature, binary and exhaustive Miniature- completed in days, not weeks Binary- done or not done Exhaustive- when last is done, project is done Monitor progress with finer granularity

Managing the Process Track schedule progress meticulously Make sure “done” is 100% done Ask “the next question” Calibrate and recalibrate your schedule Expect additional work (over-time) to make up slips on a mini-milestone Record reasons for missed milestones Look for and fix underlying causes

Managing the Process Recalibrate the recovery plan after a short time after 1 or 2 weeks Don’t let things get away from you again Make every recovery schedule a meaningful one Don’t give in to pressure or create “off-the-cuff” estimates Painstakingly manage risks

Reining in the Product Stabilize the requirements Unstable, changing requirements may be the root cause of all your problems May need to restart requirements phase Implement a rigid change evaluation process for any further changes Implement minimum time delay to even consider further change

Reining in the Product Trim the feature set Prioritize/Re-prioritize features Focus on features that create best possible product at this time Relegate low-priority features to the next release Minimize, minimize, minimize…

Reining in the Product Take out the garbage Eliminate low quality components… carefully! Redo them from the beginning if they are critically needed Systematic redesign and implementation will reduce your risk!

Reining in the Product Systematically reduce and manage further defects Track progress daily… #open, #fixed, #resolved Don’t try to take short-cuts… short-cutting the fix inevitably results in more defects Use design and code reviews on every module that you touch

Reining in the Product Identify a known good state and build on it Use as base for further work Daily build and test cycle Make maintaining the build each day a top priority Consider a “developers on call” approach

Timing Your Recovery Plan Need to find right balance between: Too early – people won’t believe there is a problem, so they won’t take your plan seriously Too late – you’re probably already in a recovery mode, having implemented numerous mini-plans, and your credibility will already be damaged