Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 11, Project Management Outline Concepts and terminology Purpose of Software Project Management Plans Structure of a Project Management Plan Project responsibilities Team structures Project planning Work breakdown structure Communication Management Dependencies Schedule Project Management Tools Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 Reference: Bruegge&Dutoit, Chapter 12 http://notesbruegge.in.tum.de/PAID2/schedule/ProjectManagement011599.pdf What is not covered in this lecture? Communication Management, Meeting Management Bruegge & Dutoit, Chapter 4 http://notesbruegge.in.tum.de/PAID2/schedule/ProjectCommunication112598.pdf Cost estimation Reference: Software engineering economics, Barry Boehm, Prentice Hall 1981 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Laws of Project Management Projects progress quickly until they are 90% complete. Then they remain at 90% complete forever. When things are going well, something will go wrong. When things just can’t get worse, they will. When things appear to be going better, you have overlooked something. If project content is allowed to change freely, the rate of change will exceed the rate of progress. Project teams detest progress reporting because it manifests their lack of progress. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 How it should go Requirements Analysis Design Implementation System Testing Delivery and Installation Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 How it often goes Requirements Analysis D E L A Y Bernd Bruegge & Allen Dutoit Vaporware Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 Software Project Management Plan Software Project: All technical and managerial activities required to deliver the deliverables to the client. A software project has a specific duration, consumes resources and produces work products. Management categories to complete a software project: Tasks, Activities, Functions Software Project Management Plan: The controlling document for a software project. Specifies the technical and managerial approaches to develop the software product. Companion document to requirements analysis document: Changes in either may imply changes in the other document. SPMP may be part of project agreement. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 Project Agreement Document written for a client that defines: the scope, duration, cost and deliverables for the project. the exact items, quantities, delivery dates, delivery location. Can be a contract, a statement of work, a business plan, or a project charter. Client: Individual or organization that specifies the requirements and accepts the project deliverables. Deliverables (= Work Products that will be delivered to the client): Documents Demonstrations of function Demonstration of nonfunctional requirements Demonstrations of subsystems Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 Project Agreement vs Problem Statement Client (Sponsor) Problem Statement Project Agreement Bernd Bruegge & Allen Dutoit Manager Project Team Software Project Management Plan Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Project Management Activities (continued on next slide) Initiation Problem statement definition Initial top-level design Team formation Initial milestones planning Communication infrastructure setup Project kickoff Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10 Project kickoff Steady state Status monitoring Risk management Project replanning Project agreement Termination Installation Bernd Bruegge & Allen Dutoit Client acceptance test Object-Oriented Software Engineering: Conquering Complex and Changing Systems Postmortem 11 Project: Functions, Activities and Tasks f1:Function p:Project f2:Function a1:Activity a2.1:Activity t1:Task Bernd Bruegge & Allen Dutoit a2:Activity a2.2:Activity t2:Task t3:Task a3:Activity a2.3:Activity t4:Task Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 Functions Activity or set of activities that span the duration of the project f1:Function p:Project f2:Function a1:Activity a2.1:Activity t1:Task Bernd Bruegge & Allen Dutoit a2:Activity a2.2:Activity t2:Task t3:Task a3:Activity a2.3:Activity t4:Task Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 Functions Examples: Project management Configuration Management Documentation Quality Control (Verification and validation) Training Question: Is system integration a project function? Mapping of terms: Project Functions in the IEEE 1058 standard are called Integral processes in the IEEE 1074 standard. We call them cross-development processes Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14 Tasks f1:Function p:Project f2:Function a1:Activity a2.1:Activity t1:Task Bernd Bruegge & Allen Dutoit a2:Activity a2.2:Activity t2:Task t3:Task • Smallest unit of work subject to management • Small enough for adequate planning and tracking • Large enough to avoid micro management Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15 Tasks Smallest unit of management accountability Atomic unit of planning and tracking Finite duration, need resources, produce tangible result (documents, code) Specification of a task: Work package Name, description of work to be done Preconditions for starting, duration, required resources Work product to be produced, acceptance criteria for it Risk involved Completion criteria Includes the acceptance criteria for the work products (deliverables) produced by the task. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16 Task Sizes Finding the appropriate task size is problematic Todo lists from previous projects During initial planning a task is necessarily large You may not know how to decompose the problem into tasks at first Each software development activity identifies more tasks and modifies existing ones Bernd Bruegge & Allen Dutoit Tasks must be decomposed into sizes that allow monitoring Work package usually corresponds to well defined work assignment for one worker for a week or a month. Depends on nature of work and how well task is understood. Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17 Examples of Tasks Unit test class “Foo” Test subsystem “Bla” Write user manual Write meeting minutes and post them Write a memo on NT vs Unix Schedule the code review Develop the project plan Related tasks are grouped into hierarchical sets of functions and activities. Action item Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18 Action Item Definition: A task assigned to a person that has to be done within a week or less Action items Appear on the agenda in the Status Section (See lecture on communication) Cover: What?, Who?, When? Example of action items: Florian unit tests class “Foo” by next week Marcus develops a project plan before the next meeting Bob posts the next agenda for the Simulation team meeting before Sep 10, 12noon. The VIP team develops the project plan by Sep 18 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 19 Activities f1:Function p:Project f2:Function a1:Activity a2.1:Activity t1:Task Bernd Bruegge & Allen Dutoit a2:Activity a2.2:Activity t2:Task • Major unit of work with precise dates • Consists of smaller activities or tasks t3:Task • Culminates in project milestone. Object-Oriented Software Engineering: Conquering Complex and Changing Systems 20 Activities Major unit of work Culminates in major project milestone: Internal checkpoint should not be externally visible Scheduled event used to measure progress Milestone often produces baseline: Activities may be grouped into larger activities: Establishes hierarchical structure for project (phase, step, ...) Allows separation of concerns Precedence relations often exist among activities (PERT Chart) formally reviewed work product under change control (change requires formal procedures) Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 21 Examples of Activities Major Activities: Planning Requirements Elicitation Requirements Analysis System Design Object Design Implementation System Testing Delivery Bernd Bruegge & Allen Dutoit Activities during requirements analysis: Refine scenarios Define Use Case model Define object model Define dynamic model Design User Interface Object-Oriented Software Engineering: Conquering Complex and Changing Systems 22 Structure of a Software Project Management Plan Front Matter 1. Introduction 2. Project Organization 3. Managerial Process 4. Technical Process 5. Work Elements, Schedule, Budget Optional Inclusions Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 23 SPMP Part 0: Front Matter Title Page Revision sheet (update history) Preface: Scope and purpose Tables of contents, figures, tables Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 24 SPMP Part 1: Introduction 1.1 Project Overview Executive summary: description of project, product summary 1.2 Project Deliverables All items to be delivered, including delivery dates and location 1.3 Evolution of the SPMP Plans for anticipated and unanticipated change 1.4 Reference Materials Complete list of materials referenced in SPMP 1.5 Definitions and Acronyms Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 25 SPMP Part 2: Project Organization 2.1 Process Model Relationships among project elements 2.2 Organizational Structure Internal management, organization chart 2.3 Organizational Interfaces Relations with other entities 2.4 Project Responsibilities Major functions and activities; nature of each; who’s in charge Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 26 Process Model Shows relationships among Functions, activities, tasks Milestones Baselines Reviews Work breakdown structure Project deliverables Sign-offs Bernd Bruegge & Allen Dutoit Visualization of process model Project Management Aids MS Project (Microsoft) MAC Project (Claris) EasyTrak (Planning Control International) Object-Oriented Software Engineering: Conquering Complex and Changing Systems 27 Example of an Organization Chart Client Management Cross-functional Teams Architecture HCI Consultants Development Teams Logbook Maintenance Web Master Documentation Configuration Mgt Vehicle Travel VIP Infrastructure Team Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 28 Project Roles Planner Analyst Designer Programmer Tester Maintainer Trainer Document Editor Web Master Configuration Manager Bernd Bruegge & Allen Dutoit Group leader Liaison Minute Taker Project Manager Object-Oriented Software Engineering: Conquering Complex and Changing Systems 29 Project Roles Management roles Organization and execution of the project within constraints. Examples: project manager, team leader. Development roles Specification, design and construction of subsystems. Examples: Analyst, system architect, implementor. Cross functional roles Coordination of more than one team. Example: API Engineer, configuration manager, tester Consultant roles Support in areas where the project participants lack expertise. Examples: End user, client, application domain specialist ( problem domain), technical consultant (solution domain). Promoter roles Promote change through an organization. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 30 Promoter Roles Promoters are self appointed individuals who identify themselves with the outcome of the project. They are member of the corporate organization and may not necessarily be directly involved with the project. Instead, they are interfaces to the rest of the corporate organization. Because of the power, knowledge of technology, or familiarity with the project’s processes, they are able to promote and push specific changes through the organization. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 31 Power Promoter Also called executive champion Pushes the change through the existing organizational hierarchy. not necessarily at the top of the organization, but must have protection from top level management, otherwise project opponents might be able to prevent the success of the project. Tasks: constantly identify difficulties, resolve issues, and communicate with the project members, especially with the developers. Example at project level: Project Manager. Example at corporate level: Chief Executive Officer (CEO). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 32 Knowledge Promoter Also called the technologist, Promotes change arising in the application domain or the solution domain. Usually associated with the power promoter. Tasks: Acquire information iteratively, understand the benefits and limitations of new technologies, and argue its adoption with the other developers. Example at project level: System architect. Reports to project manager Does not have any direct subordinate in the reporting hierarchy Has final say over all technical decisions in the system. Example at corporate level: Chief Technical Officer (CTO). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 33 Process Promoter The process promoter has intimate knowledge of the projects processes and procedures. The process promoter is in constant interaction with the power promoter to get consensus on the overall goals. Tasks: Bridge between the power and knowledge promoters, who often do not speak or understand the same language. Example at project level: Development lead. Responsible for the administrative aspects of a project, including planning, milestones definition, budgeting and communication infrastructure. Example at corporate level: Chief Information Officer (CIO Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 34 Project Management: Hierarchical Project Organization Control Flow Chief Executive Information Flow First Level Manager (“Front-Line Manager”) A B Project Members A wants to talk to B: Complicated Information Flow A wants to make sure B does a certain change: Complicated Controlflow Basis of organization: Complicated information and control flow across hierarchical boundaries Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 35 Example of Hierchical Organization: Chief Programmer Team Chief Programmer Assistant Chief Programmer Senior Programmer Librarian Administration Tester Junior Programmer Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 36 Another Project Organization: Egoless Programming Team (Weinberg) Analyst Tester Programmer Designer Bernd Bruegge & Allen Dutoit Librarian Object-Oriented Software Engineering: Conquering Complex and Changing Systems 37 Project-Based Project Organization Project Leader Coaches Subsystem Team A Subsystem Team Subsystem Team B Team Members A wants to talk to B: Communication Flow A wants to make sure B does a certain change: Decision Flow Basis of organization: Nonlinear information flow across dynamically formed units Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 38 Associations in organizational structures Reporting association: Used for reporting status information Decision association Used for propagating decisions Communication association Used for exchanging information needed for decisions (e.g., requirements, design models, issues). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 39 Observations on Management Structures Hierarchical structures “Reports”, “Decides” and “Communicates-With” all mapped on the same association Do not work well with iterative and incremental software development process Manager is not necessarily always right Project-based structures “Reports”, “Decides” and “Communicates-With”are different associations Cut down on bureaucracy reduces development time Decisions are expected to be made at each level Hard to manage Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 40 Hierarchical Structure Projects with high degree of certainty, stability, uniformity and repetition. Requires little communication Role definitions are clear When? The more people on the project, the more need for a formal structure Customer might insist that the test team be independent from the design team Project manager insists on a previously successful structure Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 41 Project-Based Structure Project with degree of uncertainty Open communication needed among members Roles are defined on project basis When? Requirements change during development New technology develops during project Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 42 Assigning Responsibilities To People Team A “To Do” List for the Project • Item 1 • Item 2 • Item 3 Role 1 Item 1 Item 2 Item 9 • Item 5 • Item 6 • Item 7 • Item 9 Bernd Bruegge & Allen Dutoit Role 1 Role 2 Item 4 Item 5 Item 7 • Item 4 • Item 8 Person A Role 3 Item 3 Item 6 Item 8 Object-Oriented Software Engineering: Conquering Complex and Changing Systems Role 2 Person B Role 3 43 Possible Mappings of ToDos to People One-to-One Ideal but often not worth to be called a project Many-to-Few Each project member assumes several roles ("hats") Danger of overcommittment Need for load balancing Many-to-"Too-Many" Some people don't have significant roles Bystanders Loosing touch with project Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 44 Team Formation Top level Design “Rough” Subsystem Decomposition (before requirements analysis) Done during Predevelopment phase Team Formation done after Top Level Design Heuristics: One team for each subsystem One cross-functional task per team 5-7 members per team Be prepared to iterate the team formation after system design when the subsystem decomposition is baselined Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 45 Project Roles: Coach Listen to gripes from individual teams Review weekly team reports Attend weekly project meetings Schedule and prepare meetings with client Insist that guidelines are followed Assign presentations (in-class project meetings, client review, client acceptance test) Resolve conflicts if they cannot be resolved otherwise Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 46 Project Role: Group leader Responsible for intra-group communication (Meeting Management: Primary Facilitator) Run the weekly project meeting Post agenda before meeting Define and keep track of action items (who, what, when) Measure progress (Enforce milestones) Deliver work packages for the tasks to the project management Present problems and status of team to project manager The group leader has to be rotated among members of the team. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 47 Group Leader: Create an Agenda Purpose of Meeting Desired Outcome Information Sharing Information Processing Meeting Critique Action Items (Check Previous Meeting) Issues (Check Previous Meeting & BBoards) Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 48 Project Role: Liaison Responsible for inter-group communication Make available public definitions of subsystem developed by the team to the architecture teams (ensure consistency, etc) Coordinate tasks spanning more than one group with other teams Responsible for team negotiations Examples: API Engineer, Configuration manager Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 49 Project Role: Planner Plans and tracks the activities of an individual team and has the following responsibilities. Define project plan for team: PERT chart, resource table and GANTT chart showing work packages Enter project plan into project management tool Make project plan available to management Report team status to project manager No explicit planner in PAID. Responsibilities assumed by coaches Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 50 Project Role: Document Editor Collect, proofread and distribute team documentation Submit team documentation to architecture team Collect agendas Take minutes at meetings Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 51 Web Master Maintain team home page Keep track of meeting history Keep track of design rationale Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 52 Web Master: Publish Meeting Information on Team Homepage Must contain Agenda, minutes, action items and issues Possibilities: One HTML document per meeting, with anchors (maintained by one role) Separate HTML documents for Agenda, Minutes, etc (maintained by several roles) Date Agenda Minutes Action Items Issues 9/9/96 Agenda Minutes Action Items Issues 9/16/96 Agenda Minutes Action Items Issues http://cascade1.se.cs.cmu.edu/ 15-413/homePagesTeams/UserInterface/www/index.htm Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 53 SPMP Part 3: Managerial Processes 3.1 Management Objectives and Priorities Philosophy, goals and priorities 3.2 Assumptions, Dependencies, Constraints External factors 3.3 Risk Management Identifying, assessing, tracking, contingencies for risks 3.4 Monitoring and Controlling Mechanisms Reporting mechanisms and formats, information flows, reviews 3.5 Staffing Plan Needed skills (what?, how much?, when?) Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 54 Examples of Assumptions There are enough cycles on the development machines Security will not be addressed There are no bugs in Together-J, the CASE Tool recommended for the project A demonstration of the Starnetwork system will be given by the client Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 55 Examples of Dependencies The database team depends on the EPC database provided by DaimlerChrysler The automatic code generation facility in the CASE tool depends on JDK. The current release of Together-J supports only JDK 1.1.6 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 56 Examples of Constraints The length of the project is 3 months. limited amount of time to build the system The project consists of beginners. It will take time to learn how to use the tools Not every project member is always up-to-date with respect to the project status The use of UML and a CASE tool is required Any new code must be written in Java The system must use Java JDK 1.1.6 Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 57 Risk Management Risk: Members in key roles drop the course. Contingency: Roles are assigned to somebody else. Functionality of the system is renegotiated with the client. Risk: The project is falling behind schedule. Contingency: Extra project meetings are scheduled. Bernd Bruegge & Allen Dutoit Risk: One subsystem does not provide the functionality needed by another subsystem. Contingency: ? Risk: Ibutton runs only under JDK 1.2 Contingency: ? Object-Oriented Software Engineering: Conquering Complex and Changing Systems 58 SPMP Part 4: Technical Process 4.1 Methods, Tools and Techniques Computing system, development method, team structure, etc. Standards, guidelines, policies. 4.2 Software Documentation Documentation plan, including milestones, reviews and baselines. 4.3 Project Support Functions Plans for functions (quality assurance, configuration management). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 59 SPMP Part 5: Work Elements 5.1 Work Packages (Work breakdown structure) Project decomposed into tasks; definitions of tasks 5.2 Dependencies Precedence relations among functions, activities and tasks 5.3 Resource Requirements Estimates for resources such as personnel, computer time, special hardware, support software. 5.4 Budget and Resource Allocation Connect costs to functions, activities and tasks. 5.5 Schedule Deadlines, accounting for dependencies, required milestones Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 60 Creating Work Packages Work Breakdown Structure (WBS) (Section 5.1) Break up project into activities (phases, steps) and tasks. The work breakdown structure does not show the interdependence of the tasks The identification of the work breakdown structure is an instance of object identification and associating these objects Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 61 WBS Trade-offs Work breakdown structure influences cost and schedule Thresholds for establishing WBS in terms of percentage of total effort: Small project (7 person-month): at least 7% or 0.5 PM Medium project (300 person-month): at least 1% or 3 PMs Large project (7000 person-month): at least 0.2 % or 15 PMs Determination of work breakdown structure is incremental and iterative WBS Schedule Source: Software Engineering Economics, Barry W. Boehm p. 47, Prentice Hall, N.J., 1981 Cost (Time, $$) Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 62 Dependencies and Schedule (SPMP Section 5.2 + 5.5) An important temporal relation: “must be preceded by” Dependency graphs show dependencies of the tasks (hierarchical and temporal) Activity Graph: Nodes of the graph are the project milestones Lines linking the nodes represent the tasks involved Schedule Chart (MS-Project): Nodes are tasks and milestones Lines represent temporal dependencies Estimate the duration of each task Label dependency graph with the estimates Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 63 Project Management Tools for Work Packages Visualization Aids for Project Presentation Graphs (Schedule), Trees (WBS) Tables (Resources) Task Timeline Gantt Charts: Shows project activities and tasks in parallel. Enables the project manager to understand which tasks can be performed concurrently. Schedule Chart (PERT Chart) Cornerstone in many project management tools Graphically shows dependencies of tasks and milestones PERT: Program Evaluation and Review Technique – A PERT chart assumes normal distribution of tasks durations – Useful for Critical Path Analysis CPM: Critical Path Method Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 64 Project: Building a House Activity 1: Landscaping the lot Task 1.1: Clearing and grubbing Task 1.2: Seeding the Turf Task 1.3: Planting shrubs and trees Activity 2: Building the House Activity 2.1 : Site preparation Activity 2.2: Building the exterior Activity 2.3: Finishing the interior Activity 2.1 : Site preparation Task 2.1.1: Surveying Task 2.1.2: Obtaining permits Task 2.1.3: Excavating Task 2.1.4: Obtaining materials Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 65 Activity 2: Building a House, ctd Activity 2.2: Building the exterior Task 2.2.1: Foundation Task 2.2.2: Outside Walls Task 2.2.3: Exterior plumbing Task 2.2.4: Exterior electrical work Task 2.2.5: Exterior siding Task 2.2.6: Exterior painting Task 2.2.7: Doors and Fixtures Task 2.2.8: Roof Bernd Bruegge & Allen Dutoit Activity 2.3 : Finishing the Interior Task 2.3.1: Interior plumbing Task 2.3.2: Interior electrical work Task 2.3.3: Wallboard Task 2.3.4: Interior painting Task 2.3.5: Floor covering Task 2.3.6: Doors and fixtures Object-Oriented Software Engineering: Conquering Complex and Changing Systems 66 Activity Graph for Activity “Building a House” STAR T Build Outside Wall 1.2 Surveying 1.1 Excavation 1.3 Buy Materials 1.4 Lay Foundation 2.1 Build Outside 2.2 Install Exterior Plumbing Wall Install Interior Plumbing 2.3 3.1 Install Exterior Electrical Install Interior Electrical 2.4 3.2 Install Exterior Siding Install Wallboard 2.5 3.3 Paint Exterior Install Flooring 2.6 Install Exterior Doors 2.7 2.8 3.6 2.6 Bernd Bruegge & Allen Dutoit 3.4 Install Roo¼ ng Paint Interior 3.5 Install Interior Doors FINISH Object-Oriented Software Engineering: Conquering Complex and Changing Systems 67 PERT Chart Example for "Building a House" 12/3/94 12/21/94 Install Interior Plumbing Building a House: 0 12 MS Project PERTcy Chart with Duration of Activities (Pfleeger 2.3) 1/11/95 Install Interior Electrical 0 15 Install Wallboard 1/22/95 0 9 Paint Interior 0 11 2/8/95 Install Interior Doors 1/22/95 Install Flooring 8/27/94 9/17/94 8/27/94 Survey ing START 0 0 10/1/94 Excava tion 0 10 12 3 10/15/94 Buy Material 0 10 11/5/94 Lay Founda tion 0 15 Build Outside Wall 1/19/95 0 18 Install Roofing 0 20 0 Install 0 Exterior Doors Paint Exterior 0 15 12 5 12/3/94 Slack Time Duration 0 0 12/17/94 12 10 12/31/94 Install Exterior Siding Install Exterior Electrical Install Exterior Plumbing 8/29/94 Legend Bernd Bruegge & Allen Dutoit 1/19/95 15 6 1/12/95 Request Permits 2/16/95 FINISH 12 9 8/27/94 Start Time 0 7 12 10 12 8 Object-Oriented Software Engineering: Conquering Complex and Changing Systems 68 Slack Time and Critical Path Slack Time Available Time - Estimated (“Real”) Time for a task or activity Or: Latest Start Time - Earliest Start Time Critical Path The path in a project plan for which the slack time at each task is zero. The critical path has no margin for error when performing the tasks (activities) along its route. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 69 How do you become a good project planner? Establish a project plan Start with the plan based on your experience with the last project(s) Keep track of activities and their duration Determine difference between planned and actual performance Make sure to do a post-mortem Lessons learned Ask developers for feedback Write a document about what could have been improved Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 70 Writing the SPMP Example full SPMPs OWL project http://cascade1.se.cs.cmu.edu/15-413/courseDocs/spmpF96.html JAMES project http://cascade1.se.cs.cmu.edu/JAMES/J_courseDocs/SPMP/SPMP1. 0.html Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 71 Project Management Heuristics Make sure to be able to revise or dump a project plan Complex system development is a nonlinear activity If project goals are unclear and complex use team-based project management. In this case Avoid GANTT charts and PERT charts for projects with changing requirements Don’t look too far into the future Avoid micro management of details Don’t be surprise if current project management tools don’t work: They were designed for projects with clear goals and fixed organizational structures Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 72 Project Management Summary Get agreement among customers, managers and teams Problem statement Software project management plan Project agreement Make sure agreement allows for iteration Organization Structures SPMP Project planning Start with work breakdown structure (WBS) Identify dependencies and structure: Tasks, activities, functions Tools and Techniques GANTT, Dependency graph, Schedule, Critical Path Analysis Be careful with tools in projects with a lot of change Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 73