Software engineering Olli Alm Lecture 5: project management & workload estimation.

Slides:



Advertisements
Similar presentations
Project management.
Advertisements

Objectives To introduce software project management and to describe its distinctive characteristics To discuss project planning and the planning process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Project management l Organising, planning and scheduling software projects l Objectives To introduce software project management and to describe its distinctive.
SWE Introduction to Software Engineering
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Project.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 5 Slide 1 Project management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Project management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 COMP201 Project Management.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Chapter 4 Project Management “…a huge topic.” See Part 6, “Management”, Chaps.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
7M701 1 Software Engineering Project Management Sommerville, Ian (2001) Software Engineering, 6 th edition Ch. 4
Creator: ACSession No: 10 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringDecember 2005 Project Management CSE300 Advanced Software Engineering.
1 SOFTWARE PRODUCTION. 2 DEVELOPMENT Product Creation Means: Methods & Heuristics Measure of Success: Quality f(Fitness of Use) MANAGEMENT Efficient &
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 5 Slide 1 Project management.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Project management l Organising, planning and scheduling software projects l.
Project Management Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Chapter 4 Project Management.
Project planning. Software project management Informal definition of management – The art of getting work done through other people Software project management.
Software Engineering Principles Chapter 3 From Software Engineering by I. Sommerville, Slide 1 project managementorganizing planning scheduling Learning.
Chapter 3 Project Management
贾银山 Software Engineering, Chapter 5 Slide 1 Project management.
©Ian Sommerville 2000Software Engineering. Chapter 5 Slide 1 Chapter 5 Project Management “…a huge topic.” See Part 6, “Managing People”.
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 5 Slide 1 Chapter 5 Project Management Modified by Randy K. Smith.
 Probably the most time-consuming project management activity.  Continuous activity - Plans must be regularly revised.  Various different types of.
Project management DeSiaMore 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Concerned with activities involved in ensuring that software is delivered: on.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Lecture4 : Project planning Lecturer: Kawther Abas 447CS – Management of Programming Projects.
Chapter 3: Project Management Omar Meqdadi SE 2730 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Chapter 5 Project management. 2 Project management : Is Organizing, planning and scheduling software projects.
Software Project Management
Software cost estimation Predicting the resources required for a software development process 1.
Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Project management Lecture 10. Topics covered Management activities Project planning Project scheduling Risk management.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Project management l Organising, planning and scheduling software projects.
©Ian Sommerville 2000 Slide 1 Project management l Organising, planning and scheduling software projects l Objectives To introduce software project management.
CSEM01 - wk8 - Software Planning1 Software Planning CSEM01 SE Evolution & Management Anne Comer Helen Edwards.
Project management.  To explain the main tasks undertaken by project managers  To introduce software project management and to describe its distinctive.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
COOP Seminar – Fall 2008 Slide 1 HOUSTON COMMUNITY COLLEGE SYSTEM SAIGONTECH SAIGON INSTITUTE OF TECHNOLOGY Software Project Management.
Chapter 3 Project Management Chapter 3 Project Management Organising, planning and scheduling software projects.
Software Engineering, 8th edition. Chapter 5 1 Courtesy: ©Ian Sommerville 2006 Oct 13 th, 2008 Lecture # 6 Project management.
Parts of this presentation is extracted from Ian Sommerville’s slides located at
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
1 Project management. 2 Topics covered Management activities Project planning Project scheduling Risk management.
CSC480 Software Engineering Lecture 5 September 9, 2002.
Dr Izzat M Alsmadi Edited from ©Ian Sommerville & others Software Engineering, Chapter 3 Slide 1 Project management (Chapter 5 from the textbook)
Chap 4. Project Management - Organising, planning and scheduling
©Ian Sommerville 2000Software Engineering. Chapter 5 Slide 1 Chapter 5 Project Management “…a huge topic.” See Part 6, “Managing People”.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Project management l Organising, planning and scheduling software projects.
©Ian Sommerville 2000Software Engineering. Chapter 5 Slide 1 Chapter 5 Project Management “…a huge topic.” See Part 6, “Managing People”.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Project management 1/30/2016ICS 413 – Software Engineering1.
Project management (2) By: Zhou Chunlin School of Tourism, Conference and Exhibitions Henan University of Economics and Law.
Chapter 3 Project Management Parts of this presentation is extracted from Ian Sommerville’s slides located at
1 Project management Organising, planning and scheduling software projects.
Software Engineering, COMP201 Slide 1 Software Engineering CSE470.
Software Engineering, COMP201 Slide 1 Software Engineering CSE470.
Project management Chapter 5. Objectives To explain the main tasks undertaken by project managers To introduce software project management and to describe.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
COMP201 Project Management.
Assistant Professor of Computer Science Washington State University
Project management.
Project management Lecture 9
Presentation transcript:

Software engineering Olli Alm Lecture 5: project management & workload estimation

 Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software.  Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software. © Ian Sommerville 2004, Software Engineering 7, ch 5 slides Software project management

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Management activities  Proposal writing.  Project planning and scheduling.  Project costing.  Project monitoring and reviews.  Personnel selection and evaluation.  Report writing and presentations.

 Probably the most time-consuming project management activity.  Continuous activity from initial concept through to system delivery. Plans must be regularly revised as new information becomes available.  Various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget. © Ian Sommerville 2004, Software Engineering 7, ch 5 slides Project planning

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Types of project plan

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Activity organization  Activities in a project should be organised to produce tangible outputs for management to judge progress.  Milestones are the end-point of a process activity.  Deliverables are project results delivered to customers.  The waterfall process allows for the straightforward definition of progress milestones.

Activity organization  Milestones  example  Deliverables  example

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Milestones in requirements engineering

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Project scheduling  Split project into tasks and estimate time and resources required to complete each task.  Organize tasks concurrently to make optimal use of workforce.  Minimize task dependencies to avoid delays caused by one task waiting for another to complete.  Dependent on project managers intuition and experience.

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Project scheduling process

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Bar charts and activity network  Graphical notations used to illustrate the project schedule.  Show project breakdown into tasks. Tasks should not be too small. They should take about a week or two.  Activity charts show task dependencies and the the critical path.  Bar charts show schedule against calendar time.

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Bar charts and activity network  Graphical notations used to illustrate the project schedule.  Show project breakdown into tasks. Tasks should not be too small. They should take about a week or two.  Activity charts show task dependencies and the the critical path.  Bar charts show schedule against calendar time. Critical path: (a chain of) tasks that may block the starting of following tasks Critical path (Pressman): ”Tasks that must be completed on schedule if the project as a whole is to be completed on schedule”

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Task durations and dependencies

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Activity network

© Ian Sommerville 2004, Software Engineering 7, ch 5 slides Activity timeline (Gantt chart)

Workload estimation  A set of techniques to estimate cost and effort required for software production How much effort (hours?) is required to complete each activity? How much calendar time is needed (when a task should be finished?) What is the total cost of each activity?

Workload estimation: productivity  Productivity: How many ”units” are there to be produced? How many ”units” can be produced by a man in an hour? Complete cost: /  total time taken

Workload estimation: productivity  Productivity: How many ”units” are there to be produced? How many ”units” can be produced by a man in an hour? Complete cost: /  total time taken BUT: software is always ”unique product”, cost estimation is hard and difficult (and often fails)

Workload estimation: productivity  Productivity: Complete cost: /  total time taken / total cost  Productivity example, size-oriented metrics: Unit measure: lines of code No of units: Software size will be 10’000 lines Unit per hour: Developer codes 50 lines in hour Total cost: 10’000 / 50: 200 hours To code the software in a week (~40 hours), we need 200 / 40: 5 persons

Workload estimation: cost metrics  Metrics: a measurable / quantifiable factor of the (software) product to be developed  Cost estimation: Size-related metrics  Lines-of-code (LOC)  Size of documentation (no of pages) Function-related metrics  Based on overall functionality of the software  Function points  Object points

Workload estimation: size-related example Lines-of-code (LOC)  Pros: simple, explicit measurement unit One measure to whole project: LOC includes all other activities: requirements, design… (in other words, other activities are simplified / reduced to LOC)  Cons: Quantity vs. Quality? Good code  less lines Language dependent measurement (e.g. in Java, it usually takes lots of lines to code anything) Difficult to estimate

Workload estimation: function-related metrics  Measuring the functionality of the code More independent from implementation language than size-oriented metrics  Function-Point count (FP) No of function points implemented per person-month  Function-Points: External inputs and outputs User interactions External interfaces Files used by the system  Each function point has a complexity-weight E.g. external input: simple: weight 3 complex: weight 15

Workload estimation: function-point (continued)  Unadjusted Function-point Count (UFC) Overall measure (one value) for the productivity UFC = ∑(no of elements of given type)*(weight)  Function-Point count Result value depends (heavily) on the estimator Suitable for data-processing system, not so good for event-driven (=where no of inputs and outputs are hard to calculate)

Workload estimation: object-points  Another function-related metrics  Not related to object-oriented programming  Object points is weighted estimation of Number of separate screens displayed Number of reports produced Number of modules that supplement / use database  Object points Easier to estimate high-level software specification More related to user interaction than data processing Utilized in (the famous) COCOMO II estimation model with the name application points

Workload estimation  Combinations of function and size related metrics is possible  To estimate workload correctly: You should know your team You should know the problem You should understand what is the best (combination of) estimation techniques in the specific situation  Previous, similar projects are the best source of information! (=experience matters)

Factors affecting SE productivity © Ian Sommerville, Software Engineering 7

Cost-estimation techiniques © Ian Sommerville, Software Engineering 7

Workload estimation – real world example Software company, located in Finland 1.Project group + senior expert in the meeting room 2.Go through the project goals 3.Project activities on the wall, every one on its own paper, size A0 4.Write down those activities + people who do them + their experience 5.Divide the group into three sub groups  independent workload estimations 6.Walk through those estimations and try to think reasons for the differences 7.Final target: List of works that need to done List of workload

Workload estimation – real world example Software company, located in Finland 7. Final target: List of works that need to done List of workload Most commonly used figures: pessimistic approximation ( p ) probable approximation ( a ) optimistic approximation ( o ) Maximum likelihood = p + 4a +o 6

Project economics  A person who has no experience with project / software work can’t understand where all those huge costs are coming from.  Most of the costs are coming from labor costs = % of all costs = monthly salary, overtime salary, bonus, necessary indirect employee costs ( % of salary ) and optional indirect employee costs ( car, food, health care, refreshments)  Others: overhead cost (work premises rents, phone, post... ), hardware+software costs, education, literature, traveling costs, project group support ( no active project work ), capital costs and contribution margin ( need to make some money ).  If a new person is hired  means about months salary. Adapted from Haikala-Märijärvi: Ohjelmistotuotanto

Project economics (continued) Rough estimate for software work:  Calculate basic hour rate price = sum ( cost items ) / sum ( hours billing from customer)  Billing hours = (all working hours) – (working hours that are “not“ directly customer work) Example:  normal number of working days = 225 days = 1700 hours / person  management and secretaries can normally use only 25 % their work directly in project.  Working cost = project hours * basic hour rate  Project price = sum ( working cost + other costs ( external services+ equipments..... )) Adapted from Haikala-Märijärvi: Ohjelmistotuotanto

Project economics (continued) Rough estimate for software work: Example:  A small company, manager + 9 programmers. Programmers do effective work in projects, 75 % of their working time, last part is for education + old project maintenance work  One person per year leaves the company and new one will come in.  Salaries and indirect employee costs are = 10 * ( 1.6 * 2200 eur *12 moths) = eur  Overheads, etc multiply by 1.5  eur.. Adapted from Haikala-Märijärvi: Ohjelmistotuotanto

Project economics (continued) Rough estimate for software work:  9 programmers, but only 8 work effectively in projects  8 * 1700 * 0.75 = about hours that customer will pay.  Hour rate = about 63 euros ( / ) --> day rate = 506 euros  If programmer does lines of program code / day  one line of code = eur  Our Java program that has code lines costs a couple of millions.  COCOMO / intermediate model= 47 mm * 22 days/mm * 8 hours/day) * 63 euros /h = about euros