Applied Software Project Management Chapter 1 Introduction Modified

















- Slides: 17
Applied Software Project Management Chapter 1: Introduction [Modified version of Stellman and Greene’s Chapter 1 slides. Adapted to be used only in the CS 709 B course at UNR, Spring 2012] http: //www. stellman-greene. com 1 Andrew Stellman & Jennifer Greene
Applied Software Project Management Why do software projects fail? People begin programming before they understand the problem w Everyone likes to feel that they’re making progress w When the team starts to code as soon as the project begins, they see immediate gains w When problems become more complex (as they always do!), the work gets bogged down w In the best case, a team that begins programming too soon will end up writing good software that solves the wrong problem http: //www. stellman-greene. com 2 Andrew Stellman & Jennifer Greene
Applied Software Project Management Why do software projects fail? The team has an unrealistic idea about how much work is involved w From far away, most complex problems seem simple to solve w Teams can commit to impossible deadlines by being overly optimistic and not thinking through the work w Few people realize the deadline is optimistic until it’s blown http: //www. stellman-greene. com 3 Andrew Stellman & Jennifer Greene
Applied Software Project Management Why do software projects fail? Defects are injected early but discovered late w Projects can address the wrong needs w Requirements can specify incorrect behavior w Design, architecture and code can be technically flawed w Test plans can miss functionality w The later these problems are found, the more likely they are to cause the project to fail http: //www. stellman-greene. com 4 Andrew Stellman & Jennifer Greene
Applied Software Project Management Why do software projects fail? Programmers have poor habits – and they don’t feel accountable for their work w Programmers don’t have good control of their source code w Code written by one person is often difficult for another person to understand w Programmers don’t test their code, which makes diagnosing and fixing bugs more expensive w The team does not have a good sense of the overall health of the project http: //www. stellman-greene. com 5 Andrew Stellman & Jennifer Greene
Applied Software Project Management Why do software projects fail? Managers try to test quality into the software w Everyone assumes that the testers will catch all of the defects that were injected throughout the project w When testers look for defects, managers tell them they are wasting time w When testers find defects, programmers are antagonized because they feel that they are being personally criticized w When testers miss defects, everyone blames them for not being perfect http: //www. stellman-greene. com 6 Andrew Stellman & Jennifer Greene
Applied Software Project Management How can we make sure that our projects succeed? Make sure all decisions are based on openly shared information w It’s important to create a culture of transparency, where everyone who needs information knows where to find it and is comfortable looking at it w All project documents, schedules, estimates, plans and other work products should be shared with the entire team, managers, stakeholders, users and anyone else in the organization who wants them w Major decisions that are made about the project should be well-supported and explained http: //www. stellman-greene. com 7 Andrew Stellman & Jennifer Greene
Applied Software Project Management How can we make sure that our projects succeed? Don’t second-guess your team members’ expertise w Managers need to trust team members w Just because a manager has responsibility for a project’s success, it doesn’t mean that he’s more qualified to make decisions than the team members w If you don’t have a good reason to veto an idea, don’t http: //www. stellman-greene. com 8 Andrew Stellman & Jennifer Greene
Applied Software Project Management How can we make sure that our projects succeed? Introduce software quality from the very beginning of the project w Review everything, test everything w Use reviews to find defects – but don’t expect the review to be perfect w Use reviews to gain a real commitment from the team w It’s always faster in the long run to hold a review than it is to skip it http: //www. stellman-greene. com 9 Andrew Stellman & Jennifer Greene
Applied Software Project Management How can we make sure that our projects succeed? Don’t impose an artificial hierarchy on the project team w All software engineers were created equal w A manager should not assume that programming is more difficult or technical than design, testing or requirements engineering w Managers should definitely not assume that the programmer is always right, or the tester is always raising false alarms http: //www. stellman-greene. com 10 Andrew Stellman & Jennifer Greene
Applied Software Project Management How can we make sure that our projects succeed? Remember that the fastest way through the project is to use good engineering practices w Managers and teams often want to cut important tasks – especially estimation, reviews, requirements gathering and testing. w If it were faster to build the software without these practices, we would never use them w Every one of these practices is about saving time and increasing quality by planning well and finding defects early. Cutting them out will cost time and reduce quality. http: //www. stellman-greene. com 11 Andrew Stellman & Jennifer Greene
Applied Software Project Management Tools and techniques (Part I) Chapter 2 Software Project Planning w Vision and Scope Document w Software Project Plan Chapter 3 Estimation w Wideband Delphi Estimation Process Chapter 4 Project Schedules w Earned Value Metrics w Scheduling Software (MS Project, Open Workbench) http: //www. stellman-greene. com 12 Andrew Stellman & Jennifer Greene
Applied Software Project Management Tools and techniques covered Chapter 5 Reviews w w w Inspections Desk-checks Walkthroughs Code Reviews Peer Programming Chapter 6 Software Requirements w w Use Cases Functional and Nonfunctional Requirements Software Requirements Specifications Change Control http: //www. stellman-greene. com 13 Andrew Stellman & Jennifer Greene
Applied Software Project Management Tools and techniques covered Chapter 7 Design and Programming w w w Configuration Management Subversion Refactoring Unit Tests Project Automation Software http: //www. stellman-greene. com 14 Andrew Stellman & Jennifer Greene
Applied Software Project Management Tools and techniques covered Chapter 8 Software Testing w w w Test Plans Test Cases Test Automation Defect Tracking System Postmortem Meetings Metrics Note: many practices in the book are described using a process scripts that contains step-by-step instructions to guide the team through the practice http: //www. stellman-greene. com 15 Andrew Stellman & Jennifer Greene
Applied Software Project Management Script structure Process script structure w w w Name, description, brief summary List of work products (input, output) Entry criteria to enable the script Basic course of events Alternate paths Exit criteria http: //www. stellman-greene. com 16 Andrew Stellman & Jennifer Greene
Applied Software Project Management Part II chapters Chapter 9 Understanding Change Chapter 10 Management and Leadership Chapter 11 Managing and Outsourced Project Chapter 12 Process Improvement http: //www. stellman-greene. com 17 Andrew Stellman & Jennifer Greene