SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION

Slides:



Advertisements
Similar presentations
Effort metrics: Man-month. Mythical Man Month – the book Brooks lead development of OS/360 and reflected on the problems experienced in the project. The.
Advertisements

Project Management Information Systems and Management.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
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.
The Mythical Man-Month By: Zac Lippard CS 470. What is the “Man-Month”? This is the idea that men and months are interchangeable between each other. This.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Software Project Management
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
CSC 354 – Software Engineering, Spring 2013, Week 2 Mythical Man-Month Ch. 1-5 Tar Pit, Mythical Man-Month, Surgical Team, Aristocracy / Democracy & System.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Prof. Aiken CS 169 Lecture 61 Project Planning CS169 Lecture 6.
1 Chapter 5 Project management. 2 Project management : Is Organizing, planning and scheduling software projects.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Project monitoring and Control
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.
STEP 4 Manage Delivery. Role of Project Manager At this stage, you as a project manager should clearly understand why you are doing this project. Also.
CS3100 Software Project Management: Monitoring & Control 1 Software Project Management Week 10: Project Monitoring & control Ian Blackman.
Mythical Man Month By Ryan Ruzich.  More software projects have gone awry for lack calendar time than all other reasons combined.
University Of Palestine Faculty Of Applied Engineering & Urban Planning Civil Engineering Department PROJECT MANAGEMENT Scheduling Resources and Costs.
Risk management Here’s my section for risk management! ~ Christopher Thornton.
What is a Functional Spec?  Defines what the functionality will be NOT how it will be implemented  Describes features of the software product product's.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
COMP201 Project Management.
A Brief intro to Project Management What can it do for you
Methodologies and Algorithms
Why is software engineering worth studying?
Assistant Professor of Computer Science Washington State University
Software Project Management
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
Project management.
ACTIVITY PLANNING AND RISK MANAGEMENT
Extreme Programming.
Software development life cycle models
Chapter 2 SW Process Models
Software Life Cycle Models
Activity Planning.
Taking an Iteration Down to Code
Software Myths Deep Mann.
Software engineering Lecture 21.
VENDORS, CONSULTANTS AND USERS
Software Project Management
Understanding Randomness
Project Planning is a waste of time!!!
CEN 4021 Software Engineering II
Chapter 11 – Project Dashboard
© University of Liverpool
Software Testing and Maintenance Maintenance and Evolution Overview
COMP 208/214/215/216 Lecture 3 Planning.
Unit 6: Application Development
Chapter 5: Software effort estimation
Project management Lecture 9
Engineering Project Project Management Project Management.
Project Management Process Groups
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
How to fail at delivering software
Welcome to Corporate Training -1
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Chapter 6 Activity Planning.
Scheduling Resources and Costs
Project Management How to access the power of projects!
CSE 403 Scheduling These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin Razmov. They.
Software Engineering Lecture 17.
Teaching slides Chapter 13
Planning and Estimation
Chapter 11 – Project Dashboard
Information system analysis and design
Presentation transcript:

SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION COMP 319 © University of Liverpool COMP319

© University of Liverpool “Pick two from three” Time Quality Cost Management of a software project involves managing the resources – crudely these are time, people, and quality. The tasks involved in project management follow naturally from this. Project planning is the management of all three. Risk management is management of quality. Project scheduling is management of time. People management is management of cost though of course other elements of cost (e.g. equipment) must be considered too. COMP319 © University of Liverpool COMP319

The Constraint Triangle Time If there is one thing that you take away from this course, it should be this diagram. (Quotes here are from Rudy Rucker’s book “Software engineering and computer games”, 2003, Addison-Wesley Pearson Education Ltd) Software engineering is all about working within the constraints imposed by time, cost (usually in terms of people) and quality (in terms of features and/or bugs). “In a fantasy world we’d like our projects to be done instantly, to cost nothing, and to be of infinitely good quality. However, in the real world we must compromise – it is impossible to achieve all three goals of zero time, zero cost and infinite quality. You can decrease the time needed but will need to add more staff and/or reduce the quality. You can reduce the cost by using fewer staff, but the project will take more time and/or reduce in quality You can opt for high levels of quality, but this means it will cost more and/or take more time. In general any change in one goal must be compensated for by changes to one or both of the other goals. If you let your customer (or your manager) specify all three corners of the constraint triangle, your project is doomed to fail.” Rucker notes that NASA briefly adopted the slogan ‘Faster, cheaper, better’. However, after a series of disastrous projects the slogan was quietly but quickly abandoned. The lesson they had learned was that such a slogan is impossible to satisfy. Wags in the software engineering world modified the slogan to ‘Faster, cheaper, better: pick two out of three” … Cost Quality COMP319 © University of Liverpool COMP319

© University of Liverpool Constraint trade off Not always possible, so Cost Increasing cost/resources will not always reduce time or increase quality Why is this? Time Increasing time will not always increase quality? Why? COMP319 © University of Liverpool

© University of Liverpool What cause costs? People More people  more cost Hours per person per day Using bought in software Outsourcing Hardware COMP319 © University of Liverpool

© University of Liverpool Time/Cost trade off To reduce time Use more people Buy in external software Get staff to work longer hours Constraints Is software or people available to buy in? Will people working longer hours produce good software COMP319 © University of Liverpool

© University of Liverpool Time constraint Software components are often dependent The more work done with class design, easier it is to decrease the development time … splitting the task.. Remember 20-80 rule, keep specification prioritized People working longer hours will make more mistakes, which need fixing COMP319 © University of Liverpool

© University of Liverpool Time and testing Testing cycles take a lot of time You can increase testing staff to reduce test cycle time This will Increase cost Improve quality hopefully Reduce time to complete development COMP319 © University of Liverpool

© University of Liverpool Quality/time More time may deliver more quality but only If time is spent doing testing and QA and not adding more functionality If software development is progressive not regressive (see source control) There are proper processes for QA COMP319 © University of Liverpool

Regressive development 2 bugs reported in software Bugs fixed goes back to testing 4 bugs reported in software Bug fixes go back to testing 6 bugs reported in software… Etc.. COMP319 © University of Liverpool

© University of Liverpool Testing cycles Need to be long enough To test all components Short enough to keep development flowing Ideally testing needs to be overlapped with bug fixing Bugs should be reported immediately and not drip feed. COMP319 © University of Liverpool

© University of Liverpool Why disasters happen ? Poor schedule monitoring Poor analysis of slippage resulting in remedies that rely on adding manpower Milestones and granularity Fine grained All schedules need to be monitored – failure to monitor the schedules is as bad as not having a schedule in the first place – and leads to disaster. Similarly, it is no good monitoring that a schedule is slipping if there are no remedies to solve the problem – and for reasons we shall see, just adding manpower is often not a solution. Indeed it may compound the problems. Finally what should the schedule contain: work blocks; deliverables; tasks; milestones; – or all all of them. Clearly the answer is as many are required for the project in hand. To monitor the project the schedule one of the most useful is the milestone – a time point where the others (blocks, deliverables and tasks) will be assessed. Keeping milestones fine grained means that slippage can be discovered sooner than later, it also provides assessment of the progress of the project. COMP319 © University of Liverpool COMP319

Software Project Estimation Software development takes time Estimating the time needed is hard Disasters continue to happen Good management and good schedule monitoring are key to avoiding problems We can see that failure to observe the rules of the constraint triangle leads to software engineering disasters – which we can define as projects over time, over budget, and/or not doing what they should do or being full of bugs. One way to avoid such problems is to have realistic project estimation and to have reliable strategies in place for when the estimates begin to wobble – which they surely will do. (Put another way, there is a tendency to underestimate the resources required to deliver a particular level of quality). Last week we noted that software development was hard to do because of the inherent complexity and for this reason developing software takes time. Because of the complexity we get unpredictability; and for this reason estimating project costs is also hard to do. To avoid the disasters it is necessary to have good (honest) management, to develop realistic time schedules, to have extensive project monitoring in place and some reliable strategies to resolve the inevitable creeping delays and costs that find their way into the project. COMP319 © University of Liverpool COMP319

© University of Liverpool Mythical man month Author : Fred Brookes Prof. Comp Science at University of North Carolina Project manager of IBM 360 OS project Why mythical? If 4 programmers can complete a task complete a task in 6 months How long will it take 24 programmers to complete the same task? (1 month, 3 months, >6) COMP319 © University of Liverpool

© University of Liverpool Schedule slippage Imagine this schedule: (taken from Brooks MMM, p22-26) There is a task estimated to take 12 man months. It is assigned to 3 staff for four months. There are 4 mileposts, falling at the end of each month. Note that months are along the x-axis, and staff allocated to the project along the y-axis. COMP319 © University of Liverpool COMP319

Slippage delay Assumption 1 Here we illustrate that the the first milepost is not reached until two months have elapsed. The open line indicates the past, the simple line the future. There has been slippage of one month. Notice, incidentally, that because of the milestone we have at least spotted the slippage. What do we do ? and What strategies are available to us to remedy the situation ? Assume that the task must be done on time. Assume that only the first part of the task was mis-estimated so the figure tells the story accurately. This is one months delay for 3 staff leaving 9 man months of estimated effort remaining and 2 months for completion. 9/2 = 5 staff are now required to complete the task, that is 2 extra. Assuming only task 1 is underestimated, workload left = 9 mm To do 9 man/month work in 2 months needs 5 staff, 2 extra COMP319 © University of Liverpool COMP319

Slippage delay Assumption 2 2) Assume that the task must be done on time. Assume that the whole estimate was uniformly low, so that the figure above is really the situation. That is, it has taken 3 men two months (6 man months) to get here, there are 3 phases left requiring 6*3 = 18 man months of effort. The time left is 2 months, thus 18/2 = 9 staff are required; we need to add 6 to the 3 already on the project. Assuming all tasks are underestimated, workload left = 18 mm To do 18 man/month work in 2 months needs 9 staff, 6 extra COMP319 © University of Liverpool COMP319

© University of Liverpool Further strategies Strategy 1 Reschedule to take a longer time with the same team Strategy 2 Trim the task to ensure completion on the same time schedule (use triage to determine trim) COMP319 © University of Liverpool

© University of Liverpool Triage Feature triage Must do, good to do, nice to do Testing/debug triage Must fix, good to fix, nice to fix Desirable Useable Critical COMP319 © University of Liverpool

© University of Liverpool Analysis Assuming that the project can complete in 4 months is a disaster ! The problem is that there is a lag in implementing any solution. In this case the assumption that we must complete in 4 months is disastrous. Adding people, however talented and assuming rapid recruitment … will divert one of the existing people (say, for a month) wasting his time and one man months effort from each of the new men. (either 3 or 7 m/m). Further, work already done will be lost and extra work will need to be done by way of testing because more men are now working on the project, and introducing bugs. One solution might be to add yet more men. Using the assumptions of Strategy 1 a total of 7 men would now be required; given training time, etc … the project would be as late as if no further men were added. The same is true, with even more disastrous cost implications if Strategy 2 were used. This leads to Brooks’ Law: Adding manpower to a late software project makes it later. Doing the diagrams is one way to appreciate this. But what are the problems. Before moving on; it is important to note that working with milestones in this way does not need to affect the other aspects of the planning namely; the work packages, tasks, and deliverables involved but often does so – simply because of the nature of the constraint diagram. COMP319 © University of Liverpool COMP319

© University of Liverpool The first problem is that while cost does vary as the product of the number of men and the number of months … project progress does not. The man-month as a unit for measuring the size of a job is dangerous, and worse, deceptive. Men and months are interchangeable only when a task can be partitioned with the assumption that there is no communication among the workers. True of (say) gathering crops not even approximately true in software engineering. COMP319 © University of Liverpool COMP319

Sequential constraints When a task cannot be partitioned, because of sequential constraints, the time versus men graph is a flatline, the application of more effort has no effect on the schedule. True of childbirth which takes 9 months, and true of many software engineering tasks such as debugging, because of the sequential nature of the task. Thus, it is important to know how sequential the task is. If it is highly sequential, then it is highly constrained in terms of time required. Partitioning tasks is evidently desirable so that more development effort can be added to the project if its running late. COMP319 © University of Liverpool COMP319

© University of Liverpool Task partitioning Partitioning design class by class Partitioning class up, method by method Class interface Defined in the design phase Class stub Can be generated automatically Might need simulation code (e.g. stock ticker to produce random prices) COMP319 © University of Liverpool

© University of Liverpool In practise Many software engineers/project managers will under-estimate tasks Lack of experience Not accounting for contingency Pressure from management Assuming everyone is as skilled as you! Important to manage expectations x 2 (x 3) all your personal estimates Keep a record of your forecast against actual performance Sandbag risky activities (e.g. ones dependent on external parties) COMP319 © University of Liverpool

© University of Liverpool In practise Managing expectations Give bad news as it happens (not all at the end of the project) Give management alternatives (such as delivery in phases) Put in place plan on how to trim task Explain how reducing test time for example could lead to commercial disaster In general most overruns will be in test time COMP319 © University of Liverpool