CS 5150 1 CS 5150 Software Engineering Lecture 7 Project Management.

Slides:



Advertisements
Similar presentations
Project Management Concepts
Advertisements

Schedule and Effort. Planning Big Project: Waterfall-ish Style 1.Figure out what the project entails Requirements, architecture, design 2.Figure out dependencies.
Chapter 3 Managing the Information Systems Project
© 2005 by Prentice Hall Chapter 3 Managing the Information Systems Project Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F.
© 2008 by Prentice Hall 3-1 ITCS311 Systems Analysis and Design Dr. Taher Homeed Feb 2010 Department of Computer Science College of IT University of Bahrain.
CS3500 Software Engineering Project Management (1) In 1986 one well-known software engineer (Tom DeMarco) made the simple but important observation: “You.
CS CS 5150 Software Engineering Lecture 4 Project Management.
Project management A whistle-stop tour Toot!. Places to see Overview Project design in detail Task analysis example Design documentation examples Terminus.
Importance of Project Schedules
Project Management Techniques.
CS 5150 Software Engineering
Modern Systems Analysis and Design Third Edition
Copyright 2002 Prentice-Hall, Inc. Chapter 3 Managing the Information Systems Project 3.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 4 Project Management.
CS 501: Software Engineering Fall 2000 Lecture 4 Management I: Project Management.
CS 501: Software Engineering
Chapter 3 Managing the Information Systems Project
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 4 Project Management.
CS Techniques Supporting Project Management (Part 4) Bilgisayar Mühendisliği Bölümü – Bilkent Üniversitesi – Fall 2009 Dr.Çağatay ÜNDEĞER Instructor.
CS 501: Software Engineering
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Project Time Management
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 4 Project Management.
Project Management and Scheduling
© 2006 ITT Educational Services Inc. System Analysis for Software Engineers: Unit 5 Slide 1 Chapter 3 Managing the Information Systems Project.
Chapter 3 : Managing the Information Systems Project.
© 2005 by Prentice Hall 3-1 Chapter 3 Managing the Information Systems Project Modern Systems Analysis and Design Fourth Edition.
PROJECT PLANNING. PLANNING Planning is essential and software development is no exception. Achieving success in software development requires planning.
Software Project Management Task Estimating and Scheduling
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
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.
Software Engineering Management Lecture 1 The Software Process.
CS 5150 Software Engineering Lecture 6 Project Management.
CS 360 Lecture 4.  The operating system for the IBM 360 was two years late!  Question:  How does a project get two years behind schedule?  Answer:
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
CS 501: Software Engineering Fall 1999 Lecture 6 Management I: Project Management.
CS CS 5150 Software Engineering Lecture 4 Project Management.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
SOW / Open Workbench By Wilmer Arellano Summer 2013.
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.
Chapter 3 Managing the Information Systems Project
Project Management Inspections and Reviews 1 February.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 26 Delivering the System.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 4 Project Management.
(M) Chapter 12 MANGT 662 (A): Procurement, Logistics and Supply Chain Design Purchasing and Supply Chain Analysis (1/2)
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS CS 5150 Software Engineering Lecture 7 Project Management.
WEEK 3 Project Planning.
By Wilmer Arellano Spring 2010
CS 501: Software Engineering
Exam 0 review CS 360 Lecture 8.
CS 5150 Software Engineering
CS 501: Software Engineering
Activity Planning.
Software Project management
Software Process Models and the feasibility study
COMP 208/214/215/216 Lecture 3 Planning.
Chapter 6 Activity Planning.
Modern Systems Analysis and Design Third Edition
Modern Systems Analysis and Design Third Edition
Presentation transcript:

CS CS 5150 Software Engineering Lecture 7 Project Management

CS Administration Tests Tests that are not collected in class will be available for pick up from Corinne Russell at 301 College Avenue. Re-grade requests To request a re-grade, contact me after class or come to office hours. No request will be considered more than one week after the tests are returned. Grading mistakes will be corrected. Points will not be changed when the grade is determined by the grader's judgment.

CS Test 1, Question 2 Academic researchers often mount the journal papers that they write on departmental web servers. The goal of the Collection System is to collect all the papers for a large university and load them into a central repository. This will be a record of research at the university, to be preserved for the long-term. The system will look at each departmental server, identify research papers, index them, and copy them to the central repository. (continued on next slide)

CS Test 1, Question 2 (continued) Here are some of the challenges that are expected: (a) As far as possible, the identification of research papers will be automated. The algorithm for identifying papers is not perfect and errors can be expected. (b) The system will attempt to identify the author of each paper automatically, and send an message requesting permission to load the paper into the repository. (c) The algorithm for indexing the papers will attempt to extract information such as author, title, and date. (d) Because of errors in (a), (b), and (c), each paper will need human review before loading into the repository. It is important to provide a user interface that minimizes human effort required.

CS Test 1, Question 2 (continued) You are asked to recommend a software development process for the Collection System. (a)i Is the modified waterfall model a good choice for developing this system? No ii Give two reasons for your answer. (-) The agorithms for automatic processing will need to be tested with real data. This will require iteration. (-) The user interface will need testing with users. This will require iteration. Note that, although the modified waterfall model expects changes during development, it aims at minimal changes and does not support full iteration.

CS Test 1, Question 2 (continued) (b)i Is iterative refinement leading to a single release of the system a good choice for developing this system? Yes ii Give two reasons for your answer. (+) Iterative refinement allows testing and revision of the user interface to minimize the human effort involved in review. (+)Iterative refinement allows testing and tuning of the automatic algorithms. Note 1. Thorough testing with real data and staff reviewers is essential. Note 2. A single release does not preclude later maintenance.

CS Test 1, Question 2 (continued) ii Is incremental releases of small increments of software a good choice for developing this system? Possible, but not best Discussion. Can the development be divided into short sprints each involving a team working through a full software cycle including planning, requirements analysis, design, coding, testing, and acceptance testing? Answer. It is possible. Here are some possible sprints: 1.Automatic collection of papers in PDF from engineering departments 2. Human review of papers collected in 1. 3.Automatic generation of s. etc., etc.

CS Test 1, Question 2 (continued) (c)ii Give two reasons for your answer. (+) Possible to divide the central system into increments that can be tested and accepted by the client separately (1 point) (-)The details of the review process, with its user interface, will depend on the accuracy of the automated algorithms. This will require iteration. Note. Each increment must be fully tested and accepted before it is considered complete.

CS Project Management: OS 360 The operating system for the IBM 360 was two years late. Question: How does a project get two years behind schedule? Answer: One day at a time! Fred Brooks Jr., The Mythical Man Month, 1972

CS Key Personnel: The Mythical Man Month Adding more people may actually slow down a project Adding more people adds communications complexity Some activities need a single mind. Sometimes, the elapsed time for an activity can not be shortened. In computing, not all people are equal The best are at least 5 times more productive. Some tasks are too difficult for everybody.

CS The Aim of Project Management To complete a project: On time On budget With required functionality To the satisfaction of the client Without exhausting the team To provide visibility about the progress of a project

CS The Challenge of Project Management Clients wish to know: What will the system do? When will it be delivered? What will it cost? Examples: If the system is a product, marketing and development must be combined (e.g., Microsoft Office) If the system has to work with other systems, developments must be coordinated (e.g., embedded systems in an automobile) (continued on next slide)

CS The Challenge of Project Management (continued) BUT: Every software system is different Estimating time and effort is full of errors, even when the system is well specified Most systems are not well specified, or the specifications change during development

CS Estimating: Analysis Administrative computing department at Dartmouth used activity graphs for the implementation phase of major projects (plan developed after project was well-understood). Experience: Elapsed time to complete projects was consistently 30% to 40% longer than predicted by model. Analysis: Some tasks not anticipated (incomplete understanding) Some tasks had to be redone (change of requirements, technical changes) Key personnel were on many activities (schedule conflicts) Non-billable hours

CS Standard Approach to Project Management The scope of the project is defined early in the process. The development is divided into tasks and milestones. Estimates are made of the time and resources needed for each task. The estimates are combined to create a schedule and a plan. Progress is continually reviewed against the plan, perhaps weekly. The plan is modified by changes to scope, time, resources, etc.

CS Agile Approach to Project Management Planning is divided into high level release forecasting and low level detailed planning. Release planning is a best guess, high level view of what can be achieved it a sequence of time-boxes. For each time-box, the team plans what it can achieve. Release plans are continually modified, perhaps daily. Clients and developers take joint control of the release plans and choice of sprints.

CS Common Aspects of all Approaches Planning Outline schedule during feasibility study (needed for CS 5150) Fuller schedule for each part of a project (e.g., each iteration or sprint) Progress tracking Regular comparison of progress against plan Regular modification of the plan Changes of scope, etc. made jointly by client and developers Final analysis Analysis of project for improvements during next project (see Dartmouth example)

CS Estimating the Time for an Activity With experienced staff, estimating the actual time to carry out a single task is usually fairly accurate, but... The little bits and pieces are underestimated The time from almost "done" to completely "done" is much longer than anticipated. (There's just one thing to tidy up. I need to put the comments into better shape. I really should get rid of that patch.) The distractions are not planned for. (My system crashed and I decided to upgrade the software. My child's school was closed because of snow. I spent the day showing visitors around.) Some things have to be done twice.

CS Team-based Estimating The team often has the best understanding of what it can achieve in a single time-box or sprint. The team commits to the outcome of a sprint. The team must have an internal schedule to allocate tasks within a sprint. Since different teams work at different speeds it is common to estimate effort to achieve a specific goal in a numeric scale, not as time. A CS 5150 project can be thought of as a single sprint.

CS Start-up Time On a big project, the start-up time is typically three to six months: Personnel have to complete previous projects (fatigue) or be recruited. Hardware and software has to be acquired and installed. Staff have to learn new domain areas and software (slow while learning). Clients may not be ready.

CS Methods for Task Based Project Planning Critical Path Method, Gantt charts, etc. Build a work-plan from activity data. Display work-plan in graphical and tabular form. Project planning software Maintain a database of activities and related data Calculate and display schedules Provide progress reports

CS Task Based Project Planning: Terminology Task Part of a project that takes place over time (also known as an activity). Event The completion of a group of activities. Dependency An activity that cannot begin until some event is reached Resource Staff time, equipment, or other limited resources required by an activity.

CS Task Based Project Planning: Terminology Deliverable Work product that is provided to the client (report, presentation, documentation, code, etc.) Milestone Completion of a specified set of activities (e.g., delivery of a deliverable, completion of a process step, iteration, or sprint)

CS A Simple Gantt Chart Source: Microsoft using Excel

CS Gantt Charts Used for Small Projects, Single Time-Boxes, and Sprints Dates run along the top (days, weeks or months). Each row represents an activity. Activities may be sequential, in parallel or overlapping. The schedule for an activity is a horizontal bar. The left end marks the planned beginning of the task. The right end marks the expected end date. The chart is updated by filling in each activity to a length proportional to the work accomplished. Progress to date can be compared with the plan by drawing a vertical line through the chart at the current date.

CS A More Complex Gantt Chart Source: SmartDraw

CS Activity Graph An activity (task) A dummy activity (dependency) An event A milestone A scheduling technique that emphasizes dependencies

CS Example: Activity Graph for a Distance Learning Course (part of a large project) START Edit 1 Script TV Make TV Edit 2 Prototype Software Write Software Document Software Mail Plan TV Plan 1 Write 1 Plan 2 Plan Software Write 2 Typeset 1 Typeset 2 Print

CS Scheduling: Background PERT Program Evaluation and Review Technique introduced by the U.S. Navy in 1957 to support the development of its Polaris submarine missile program. PERT/Time Activity graph with three time estimates (shortest, most probable, longest) on each activity to compute schedules. PERT/Cost Added scheduling of resources (e.g., facilities, skilled people, etc.)

CS Critical Path Method Uses an Activity Graph with single time estimate for each activity. A standard method for managing large construction projects. On big projects, activity graphs with more than 10,000 activities are common.

CS Critical Path Method The following slides work through the steps in calculating earliest and latest start dates.

CS Time Estimates for Activities (Weeks)

CS Earliest Event Dates and Earliest Start Dates Earliest start date: the earliest date that it is possible to start an activity. Earliest event date: the date that all the activities ending at that node will be completed, assuming that every activity begins at its earliest start date. Earliest project completion date: the date on which the project is completed assuming that every activity begins on its earliest start date.

CS Earliest Event Dates and Earliest Start Dates Earliest dates for an event are in red

CS Latest Event Dates and Latest Start Dates Latest start date: the latest date that it is possible to start an activity and still complete the project by the earliest project completion date. Latest event date: the latest date that all the activities ending at that node must be completed, in order to complete the project by the earliest project completion date.

CS Latest Event Dates and Latest Start Dates Each event must be achieved by the date shown or the final date will not be met. Latest event dates in blue

CS Slack and Critical Path Slack: the difference between the latest start date and the earliest start date of an activity Slack = (latest start) end - (earliest start) begin - (time estimate) Critical path: a path through the graph where every activity has zero slack If an activity on the critical path is not started on its earliest start date or takes longer than the predicted time to complete, then the project completion date is delayed. Extra detail added October 3, 2011

CS Slack 0/00/0 1/11 17/17 23/ /12 12/14 4/13 15/1517/17 19/20 22/23 25/ Slack in purple

CS Critical Path 0/00/0 1/11 12/12 12/14 4/13 15/1517/17 19/20 22/2323/24 25/25 Every activity on the critical path must begin on the earliest start date. Critical path in orange