Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 21, 2001 Project.

Slides:



Advertisements
Similar presentations
Project Management Concepts
Advertisements

Configuration & Build Management
Computer Science Department
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Software Quality Assurance Plan
Chapter 2 The Analyst As Project Manager In Managing Information Systems 2.3.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 3.1.
Project Management.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 3.1.
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Project Plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Project Management and Communication Represented by: Latifa Jaber Al-Ghafran.
What is a project? Project Management Institute definition
Chapter 11, Project Management
Object-Oriented Software Engineering
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Project Management Introduction Using UML, Patterns,
Project Plan The Development Plan The project plan is one of the first formal documents produced by the project team. It describes  How the project will.
Project Time Management
Project Management Session 7
Chapter 5: Project Scope Management
Projmgmt-1/22 DePaul University Project Management I - Realistic Scheduling Instructor: David A. Lash.
Defining the Activities. Documents  Goal Statement defines why helps manage expectations  Statement of Work what gets delivered defines scope  Software.
Development plan and quality plan for your Project
Planning. SDLC Planning Analysis Design Implementation.
Project Management and Scheduling
Using UML, Patterns, and Java Object-Oriented Software Engineering 14.2 Work Breakdown Structures Camp III Camp II Camp I.
Copyright 2002 Prentice-Hall, Inc. Managing the Information Systems Project 3.1 Chapter 3.
Copyright 2002 Prentice-Hall, Inc. Chapter 3 Managing the Information Systems Project Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Computer System Analysis
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Copyright © 2013 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Using UML, Patterns, and Java Object-Oriented Software Engineering Configuration & Build Management Work Breakdown Structures.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 3, Project Organization and Communication, Part 1.
Goal and Scope Where are we going and what path will we be taking?
S/W Project Management
Typical Software Documents with an emphasis on writing proposals.
Quick Recap.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 11, Project Management.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 3, Project Communication.
Using UML, Patterns, and Java Object-Oriented Software Engineering 14.2 Work Breakdown Structures Camp III Camp II Camp I.
COMP 208/214/215/216 Lecture 3 Planning. Planning is the key to a successful project It is doubly important when multiple people are involved Plans are.
BIS 360 – Lecture Two Ch. 3: Managing the IS Project.
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Slide 1 Project Management Chapter 4. Slide 2 Objectives ■ Become familiar with estimation. ■ Be able to create a project workplan. ■ Become familiar.
University of Southern California Center for Systems and Software Engineering Barry Boehm, USC CS 510 Software Planning Guidelines.
Collecting requirements – Different methods Defining scope – Estimates for all resources Creating the WBS – Different approaches Verifying scope – Formal.
Develop Project Charter
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 7, 2001 Project.
Project Management and Risk. Definitions Project Management: a system of procedures, practices, technologies, skills, and experience needed to manage.
Copyright 2002 Prentice-Hall, Inc. Chapter 3 Managing the Information Systems Project 3.1 Modern Systems Analysis and Design.
Information Systems System Analysis 421 Chapter 3 Managing the Information Systems Project.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Chapter 3 Managing the Information Systems Project 3.1.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Chapter 2 Managing the Information Systems Project 2.1.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Project Management Why do projects fail? Technical Reasons
Team-Based Development ISYS321 Managing the Information Systems Project.
University of Southern California Center for Systems and Software Engineering Barry Boehm, USC CS 510 Fall 2010 Software Planning Guidelines.
Project Management PTM721S
Chapter 3, Project Organization and Communication, Part 1
Project Management PTM721S
Software Planning Guidelines
IEEE Std 1074: Standard for Software Lifecycle
Defining the Activities
Risk Analysis & Success Driven Project Management
Project Management Process Groups
Chapter 11, Project Management
Chapter 3 Managing the Information Systems Project
Presentation transcript:

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering November 21, 2001 Project Management Joseph Conron Computer Science Department New York University

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 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 3 How it should go

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 How it often goes

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 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 6 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 7 Project Agreement vs Problem Statement

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 Project Management Activities (continued on next slide) Initiation Project kickoff Team formation Communication infrastructure setup Problem statement definition Initial milestones planning Initial top-level design

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Installation Steady state Termination Client acceptance testPostmortem Project agreementProject replanning Status monitoringRisk management Project kickoff

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10 Project: Functions, Activities and Tasks p:Project f1:Function f2:Function a1:Activitya2:Activitya3:Activity a2.1:Activitya2.2:Activitya2.3:Activity t1:Taskt2:Taskt3:Taskt4:Task

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 11 Functions  Activity or set of activities that span the duration of the project  Examples:  Project management  Configuration Management  Documentation  Quality Control (Verification and validation)  Training  Question: Is system integration a project function?

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 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 13 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  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.

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14 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 15 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 16 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:  formally reviewed work product  under change control (change requires formal procedures)  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)

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17 Examples of Activities  Major Activities:  Planning  Requirements Elicitation  Requirements Analysis  System Design  Object Design  Implementation  System Testing  Delivery  Activities during requirements analysis:  Refine scenarios  Define Use Case model  Define object model  Define dynamic model  Design User Interface

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 18 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 19 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 20 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 21 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 22 Process Model  Shows relationships among  Functions, activities, tasks  Milestones  Baselines  Reviews  Work breakdown structure  Project deliverables  Sign-offs Project Management Aids  MS Project (Microsoft)  MAC Project (Claris)  EasyTrak (Planning Control International)

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 23 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 24 Project Management: Hierarchical Project Organization Chief Executive First Level Manager (“Front-Line Manager”) Project Members Basis of organization: Complicated information and control flow across hierarchical boundaries Basis of organization: Complicated information and control flow across hierarchical boundaries A B A wants to talk to B: Complicated Information Flow A wants to make sure B does a certain change: Complicated Control flow Information Flow Control Flow

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 25 Another Project Organization: Egoless Programming Team (Weinberg) Analyst Designer Librarian TesterProgrammer

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 26 Project-Based Project Organization Project Leader Coaches Team Members Basis of organization: Nonlinear information flow across dynamically formed units Basis of organization: Nonlinear information flow across dynamically formed units Subsystem Team AB A wants to talk to B: Communication Flow A wants to make sure B does a certain change: Decision Flow

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 27 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 28 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 29 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 30 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 31 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 32 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

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 33 Dependencies and Schedule (SPMP Section )  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 34 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 35 Figure An example of schedule for the database subsystem (Gantt chart).

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 36 Figure An example of schedule for the database subsystem (PERT chart). Tasks on the critical path are represented with thick lines.

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 37 Table An example of initial work breakdown structure for DatabaseManagement. TaskEstimated time 1. Select database management system2 weeks 2. Identify persistent objects and their attributes1 week 3. Identify queries1 week 4. Identify searchable attributes1 day 5. Define schema2 weeks 6. Build prototype for performance evaluation2 weeks 7. Define API to other subsystems3 days 8. Identify concurrency requirements2 days 9. Implement database subsystem2 weeks 10.Unit test database subsystem3 weeks 11.Address remaining concurrency hazards2 weeks

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 38 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 39 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  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

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 40 Activity Graph for Activity “Building a House” Install Exterior Plumbing Install Interior Plumbing Build OutsideWall Lay Foundation Buy Materials Excavation Surveying Build OutsideWall START Install Exterior Electrical Install Exterior Siding Paint Exterior Install Exterior Doors Install Roofing Install Interior Electrical InstallWallboard Install Flooring Paint Interior Install Interior Doors FINISH

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 41 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 42 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 43 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 44 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