ICS 121 Lecture Notes Spring Quarter 96



Similar documents
Introduction to Software Engineering. 9. Project Management

How To Manage Project Management

Contents. Today Project Management. Project Management. Last Time - Software Development Processes. What is Project Management?

TECH. Tracking Progress. Project Schedule PHASE 1 STEP 1 ACTIVITY 1.1. Activity and Milestone STEP 1 STEP 2 : ACTIVITY 2.2 : ACTIVITY 1.

Software cost estimation

Cost Estimation Strategies COST ESTIMATION GUIDELINES

Project management. Objectives

Software cost estimation. Predicting the resources required for a software development process

Software cost estimation

SoftwareCostEstimation. Spring,2012

Project Planning. COSC345 Lecture 3 Slides: Andrew Trotman Dramatic presentation: Richard O Keefe. Software Engineering 2013

Software Engineering CSCI Lesson 9 Project Management Part 1- Planning & Estimating. February 23, 2015

Project Management. Massimo Felici Room 1402, JCMB, KB

Business Idea Development Product production Services. Development Project. Software project management

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Software Engineering. Dilbert on Project Planning. Overview CS / COE Reading: chapter 3 in textbook Requirements documents due 9/20

Génie Logiciel et Gestion de Projets. Project Management

PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >

CHAPTER 24 SOFTWARE PROJECT SCHEDULING. Overview

(Refer Slide Time: 01:52)

Lecture 14: Cost Estimation

Chapter 23 Software Cost Estimation

SOFTWARE PROJECT MANAGEMENT

Project Planning and Control. Main issues: How to plan a project? How to control it?

Software Project Plan

Project Management Planning

Project management. Objectives. Topics covered. Organizing, planning and scheduling software projects DISCUSSION

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Project Management. Software Projects vs. Engineering Projects

The Plan s Journey From Scope to WBS to Schedule

Topics. Project plan development. The theme. Planning documents. Sections in a typical project plan. Maciaszek, Liong - PSE Chapter 4

Basic Project Management & Planning

Software Engineering. Software Engineering. Software Costs

Software Project Management Plan (SPMP)

Software Requirements Metrics

MTAT Software Economics. Lecture 5: Software Cost Estimation

Project Audit & Review Checklist. The following provides a detailed checklist to assist the PPO with reviewing the health of a project:

Project Planning and Project Estimation Techniques. Naveen Aggarwal

Project management. Organizing, planning and scheduling software projects

Software Engineering. Objectives. Designing, building and maintaining large software systems

PROJECT MANAGEMENT METHODOLOGY SECTION 3 -- PLANNING PHASE

PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING PMI PMBOK & ESTIMATING

PROJECT PLAN TEMPLATE

Module 12. Software Project Monitoring and Control. Version 2 CSE IIT, Kharagpur

PROJECT TIME MANAGEMENT

Project Time Management

Module 11. Software Project Planning. Version 2 CSE IIT, Kharagpur

Software cost estimation

Software Engineering. Project Management. Based on Software Engineering, 7 th Edition by Ian Sommerville

Project management. Organising, planning and scheduling software projects. Ian Sommerville 2000 Software Engineering, 6th edition.

Project management. Organizing, planning and scheduling software projects. Objectives. Chapter 3. Chapter 3 Project Management. Learning Objective

Software Engineering 1

Project Management. Lecture 3. Software Engineering CUGS. Spring 2012 (slides made by David Broman) Kristian Sandahl

SOFTWARE PROJECT MANAGEMENT: THE MANAGER'S VIEW

4. Software Project Management

The work breakdown structure can be illustrated in a block diagram:

pm4dev, 2015 management for development series Project Schedule Management PROJECT MANAGEMENT FOR DEVELOPMENT ORGANIZATIONS

Software Development Life Cycle (SDLC)

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist

Chapter 22 Project Management. Chapter Summary. Chapter 22 Project management

Organising, planning and scheduling software projects. Software management distinctions

<name of project> Software Project Management Plan

Organizing, planning and scheduling software projects

PROJECT MANAGEMENT PLAN Outline VERSION 0.0 STATUS: OUTLINE DATE:

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended.

Project management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 5 Slide 1

Managing people working as individuals and in groups

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

A DIFFERENT KIND OF PROJECT MANAGEMENT

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

WBS, Estimation and Scheduling. Adapted from slides by John Musser

SE351a: Software Project & Process Management

What is PROJECT SCHEDULING?

pm4dev, 2007 management for development series Project Management Organizational Structures PROJECT MANAGEMENT FOR DEVELOPMENT ORGANIZATIONS

Chapter 3 Managing the Information Systems (IS) Project

Process Models and Metrics

Example #1: Controller for Frequency Modulated Spectroscopy

Software Project Management. Software Engineering SW Project Management Slide 1

Project Management Dr. James A. Bednar

ICT Project Management

Project management Project Management

Chapter 7 - Project Scheduling and Tracking

Using Measurement to translate Business Vision into Operational Software Strategies

Project planning and scheduling

Project Management Planning

Applied Software Project Management

MNLARS Project Audit Checklist

3SL. Requirements Definition and Management Using Cradle

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE

Roles: Scrum Master & Project Manager

The Project Matrix: A Model for Software Engineering Project Management

A Capability Maturity Model (CMM)

Input, Output and Tools of all Processes

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

SLIM Estimate and Microsoft Project Best Practices

Transcription:

Software Management Cost Estimation Managing People Management Poor managment is the downfall of many software projects Ð Delivered software was late, unreliable, cost several times the original estimates and often exhibited poor performance characteristics Software project management is different from other engineeering management Ð product is intangible Ð still no clear understanding of the software process or evaluation criteria Ð most software projects are new and technically innovative Good management cannot guarantee project success, but bad management usually results in project failure! 1 2 Management Activities Proposal writing Ð overview, estimates, justification costing Ð software cost estimation planning and scheduling Ð milestones, options to m inimize risks monitoring and reviewing Ð progress, compare to schedule and planned costs, predict problems Personnel selection and evaluation Ð skill, experience, training, resources Report writing and presentation Ð primary summary documentation and progress reviews Planning and Scheduling planning determines a project schedule based upon Ð project constraints (delivery, staff, budget) Ð project parameters (structure, size, functions) Ð project milestones and deliverables Planning and scheduling must estimate risk associated with each decision scheduling involves separating work into tasks and predicting task completion Ð coordinate parallel tasks to optimize work force Ð allow for problems Schedule must be periodically revised with progress 3 4 Types of Plans Quality plan Ð Describes the quality procedures and standards that will be used in the project Validation plan Ð Describes the approach, resources and schedule used for system validation Configuration management plan Ð Describes the configuration management procedures and strcutures to be used Maintenance plan Ð Predicts the maintenance requirements of the system, maintenance cost and effort required Staff development plan Ð Describes how the skills and experience of the project team m embers will be developed 5 The Plan Introduction Ð Briefly describes the objectives of the product and sets out the constraints (budget, time, etc.) Organization Ð Describes the way in which the development team is organized Risk analysis Ð Describes possible project risks and risk reduction strategies Hardware & Software resource requirements Ð Hardware/Software required to carry out the development Work breakdown Ð Breakdown of the project into activities, identification of milestones and deliverables schedule Ð Describes the dependencies between activities, the estimated time required to reach each milestone and the allocation of people to activites Monitoring and reporting techniques Ð Describes the management reports which should be produced 6

IEEE 1058.1,1987 SW Management Plan 1. Introduction 1.1. Overview 1.2. Deliverables 1.3. Evoluation of the Software Management Plan 1.4. Reference Materials 1.5. Definitions and Acronyms 2. Organization 2.1. Process Model 2.2. Organizational Structure 2.3. Organizational Boundaries and Interfaces 2.4. Responsibilities 3. ial Process 3.1. Management Objectives and Priorities 3.2. Assumptions, Dependencies, and Constraints 3.3. Risk Management 3.4. Monitoring and Controlling Mechanisms 3.5. Staffing Plan 4. Technical Process 4.1. Methods, Tools, and Techniques 4.2. Software Documentation 4.3. Support Functions 5. Work Packages, Schedule, and Budget 5.1. Work Packages 5.2. Dependencies 5.3. Resource Requirements 5.4. Budget and Resource Allocation 5.5. Schedule 7 Work Breakdown Structure = one way of breaking down the major activity into smaller components Example: Compiler Design Code Integration and Test Scanner Parser Code generator Write manual 8 GANTT Charts GANTT Charts - 2 control technique for scheduling, budgeting, and resource planning Example: Gantt chart for simple compiler project Jan 1, 1996 Feb 1, 11996 Mar 1, 1996 Apr 1, 1996 May 1, 1996 time Gantt charts can also be used for resource allocation and staff planning Example: Jan 1, 1996 Feb 1, 11996 Mar 1, 1996 Apr 1, 1996 May 1, 1996 time start design Tom training vacation build scanner build parser Mary training vacation build code generator Bill write manual integration / testing 9 10 PERT Charts A PERT (Program Evaluation and Review Technique) is a network of boxes (or circles) and arrows Ð Boxes (or circles) represent activities, arrows show the dependencies of activities on one another Ð Activity at the head of the arrow cannot start before activity at the tail of the arrow is finished Ð Critical paths for the project are shown bold build scanner Jan 1, 1996 Jan 3, 1996 start design build parser build code generator write manual integration and test Nov 14, 96 Mar 18, 97 finish 11 Software Cost Estimation Principal components of project costs derive from Ð hardw are and software including maintenance Ð travel and training Ð effort (cost of paying software engineers) Initial cost estimation should be based on firm, complete requirements Continual cost estimation is required to ensure that spending is in line with budget Software Cost Estimation should use multiple techniques to predict costs: Ð historical cost information relating metrics and costs Ð analogies to similar systems Ð expert ÒguestimationÓ Ð hierarchical estimations 12

Factors affecting Software Pricing Market opportunity Ð Moving into new markets --> low pricing Cost estimation uncertainty Ð If organization is unsure of its cost estimate, it may increase its price Contractual terms Ð Customer may be willing to allow the developer to retain ownership of the source code and reuse it in other projects Requirements volatility Ð If requirements are likely to change offer low er price to win the contract. After contract has been awarded, high prices may be charged for changes to the requirements Financial health Ð Sometimes it may be better to make a small profit or break even than to go out of business 13 Factors used in cost estimation models Group Size attributes Program attributes Personnel attributes attributes Factor Source instructions Number of routines Number of output formats Number of personnel Type Complexity Language Required reliability Personnel capability / continuity Hardware experience Application experience Language experience Tools and techniques Customer interface Requirements definition 14 Algorithmic Cost Modeling Model built by analyzing the attributes and costs of completed projects Ð metrics usually measure attributes of finished product (so predictions may be inaccurate) Ð metrics typically include size or function points (external interactions) Ð margin of error low if product is well-understood, model well calibrated to local organization, product is similar to previous projects, language and hardware choices are pre-defined Most algorithmic estimation models have an exponential component Effort = C x PM s x M C... complexity factor PM... some product metric (size metric or functionality metric) M... multiplier, made up by combining different process, product and development attributes s... exponent (usually close to 1) reflecting the increasing effort for large projects 15 Algorithmic Cost Modeling: The COCOMO Model [Boehm,1981] Uses 3 different models depending on the complexity of the project: Ð Simple project: Well -understood appl ications developed by small teams. PM = 2.4 (KDSI) 1.05 x M Ð Moderate project: More complex projects where team members may have limited experience of related systems. PM = 3.0 (KDSI) 1.12 x M Ð Embedded project: Complex projects where the software is part of a strongly coupled compl ex of hardw are, software, regulations, and operational procedures PM = 3.6 (KDSI) 1.20 x M KDSI..number of thousands of delivered source instructions 16 The COCOMO Model - 2 Duration and Staffing In the basic COCOMO model the multiplier M is 1 (starting point for cost estimation) Intermediate model adds other product attributes as factors (multipliers): Ð product attributes (reliability, database size, etc.) Ð computer attributes (storage constraints, stability of hard/software) Ð personnel attributes (experience of personnel) Ð project attributes (use of software tools, development methods) Complete model decomposes total system in estimating costs (system is made up of sub-systems) managers have also to estimate Ð how long a software product will take to develop Ð when how many people will be needed to work on the project More people working on a project also requires more communication overhead COCOMO estimation: Simple projects TDEV = 2.5 (PM) 0.38 Intermediate projects TDEV = 2.5 (PM) 0.35 Embedded projects TDEV = 2.5 (PM) 0.32 Ð NOTE: COCOMO model does not include number of project engineers working on the project! 17 18

Management Structure Traditional hierarchical managment structure Program Software Director/VP Program Quality Quality Quality 19 Organization Large software systems require a coordinated team of software engineers for effective development organization involves devising roles for individuals and assigning responsibilities Organizational structure attempts to facilitate cooperation For long-term projects, job satisfaction is extremely important for reduced turnover Need mix of senior and junior engineers to facilitate both accomplishing the task and training Adding people to a project introduces further delays 20 Hierarchical organizations minimize and discourage communication, while democratic organizations encourage it Appropriate organization depends on project length and complexity Ð small teams lead to cohesive design, less overhead, more unity, higher morale Ð but some tasks too compl ex Ð optimal size betw een 3 and 8 Appropriate design leads to appropriate assignment of tasks and appropriate team organization Group Cohesiveness In a cohesive group, members think of the group as more important than the individuals in it Advantages of cohesive groups: + A group quality standard can be developed + m embers w ork closely together. Members can learn from each other + members can get to know each other«s work (continuity can be maintained should a team member leave) + Egoless programming can be practised (programs are regarded as team property rather than personal property) Problems: Ð Irrational resistance to a leadership change Ð Groupthink (consideration of alternatives is replaced by loyalty to group norms and decisions) 21 22 Group communication Centralized-Control: Chief Programmer Approach Several factors affect communications in a group Ð Status of the group members Higher-status members tend to dominate communications with lowerstatus members Ð Personalities in the group If there are too many people in the group who are task-oriented, this may inhibit effective communications (all are concentrated on technical issues and nobody discusses problems) Ð Sexual composition of the group Studies have shown that men and women prefer to work in mixed-sex groups. Within these groups, communications are better than in single-sex groups Ð Communication channels Communications are more effective if anyone in a group can easily contact anyone else project manager chief programmer librarian programmersspecialists Hierarchical organizational structure and matching pattern of communication Ð chief programmer reports to peer project manager Ð programmers report to chief programmer Ð librarian responsible for central repository Ð specialists added as needed Works well with simple tasks that can be grasped by one good engineer, but Òsingle point of failureó 23 24

Decentralized Control: Democratic Approach Mixed Control project manager senior engineers Ring organization and connected communication Ð decisions made by consesus Ð all work is group work: Òegoless programmingó leads to higher morale and job satisficaction not appropriate for large teams More appropriate for less understood and more complex programs with longer term project 25 junior engineers Hierarchy with extra communication Ð senior engineers report to project manager Ð junior engineers report to senior engineers Ð control is vested in project manager and senior engineers Ð communication is decentralized among each set of peers and their supervisor Limits communication to a small group and realizes benefits of group decisions by vesting authority 26 Assessment of No team organization is appropriate for all tasks Decentralized control is best when communication among engineers is necessary for achieving a good solution Centralized control is best when speed of development is the most important goal and the problem is well understood An appropriate approach tries to limit amount of communication overhead An appropriate approach also has to take into account other goals, such as personnel turnover, development of junior engineers, dissemination of specialized knowledge among personnel Training and Motivation Training is not only a way of ensuring that engineers have necessary skills, but also demonstrates an organization«s interest in its staff Training may also cause problems: Ð Learning new languages may also be very difficult, especially for older programmers (switch of the paradigm, e.g. from FORTRAN to C++/LISP/Prolog, etc.) Ð Programm er training requires consideration of different educational background and experience of programmers Motivation of people requires Ð satisfaction of their social needs (time for meeting co-workers, providing places to meet) Ð recognition of achievements Ð giving people responsibil ity for their own work 27 28 Risk Management An engineering project is Ð expected to produce a reliable product Ð within a limited time Ð using limited resources Risk management Ð identifying project risks Ð assessing their im pact Ð monitoring and controlling the risks Approaches to reduce risks in Software Engineering Ð Prototyping Ð Incremental delivery Ð Modular design (i.e. handling risks of late changes) 29 Common Risk Items in Software Engineering [Boehm,1989] Risk items Personnel shortfalls Unrealistic schedules & budgets Developing the wrong software functions Developing the wrong user interface Continuing stream of requirements changes Real-time performance shortfalls Risk management techniques Staffing with top talent; job matching; team-building; Detailed multisource cost & schedule estimation; incremental development; software reuse Organization analysis; mission analysis; user surveys; prototyping; early users manuals Prototyping; scenarios; task analysis; user characterization Information hiding; incremental development (defer changes to later increments) Simulation; benchmarking; modeling; prototyping 30