Process: Goals, Risks, Estimation, Planning, and Metrics : Software Engineering Practicum

Similar documents
Estimating Duration and Cost. CS 390 Lecture 26 Chapter 9: Planning and Estimating. Planning and the Software Process

Watson-Glaser II Critical Thinking Appraisal. Development Report. John Sample COMPANY/ORGANIZATION NAME. March 31, 2009.

PLANNING AND ESTIMATING

BAE Systems Insyte Software Estimation

Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a comple

Communicate and Collaborate with Visual Studio Team System 2008

Some insights about Insights

How to Create Compelling Product Roadmaps

Parametric Project Monitoring and Control: Performance-Based Progress Assessment and Prediction

HOW TO WRITE A WINNING PROPOSAL

Three Reasons HR Transformations Fail

Managers at Bryant University

Best Practices for Creating an Open Source Policy. Why Do You Need an Open Source Software Policy? The Process of Writing an Open Source Policy

Project Planning. COSC345 Software Engineering 2016 Slides by Andrew Trotman given by O K

SENG380:Software Process and Management. Software Size and Effort Estimation Part2

5 STEPS TO TO DATA-DRIVEN BUSINESS DECISIONS

IT Project Management. Essentials of IT project management 25 Sep 2017

Requirements Engineering and Software Architecture Project Description

Topic 12. SW/CIS Project Estimates (LOC, FP, efforts, cost, etc.)

Certified Team Coach (SA-CTC) Application - SAMPLE

Chapter 4 Software Process and Project Metrics

WORKING WITH TEST DOCUMENTATION

Wales Millennium Centre Behavioral Competencies Framework 1

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Scrum Alliance Certified Team Coach SM (CTC) Application SAMPLE

Getting Started with Risk in ISO 9001:2015

PERSONAL COMMUNICATION STYLES INVENTORY

Beyond the ScrumMaster Role: Becoming an Agile Coach

HOW YOUR CAREER BACKGROUND CAN HELP YOU BECOME A BUSINESS ANALYST

Building Successful Teams Marc Elpel, December 23, 2006

Deeper. Deeper. Deeper. Deeper. Deeper. Deeper. What is the advantage of breaking a project down into tasks and sub-tasks?

8 REASONS Why Your Inbound Trailers are Underutilized

6 Steps to Social Media Success for Law Firms

32 BETTER SOFTWARE JULY/AUGUST 2009

developer.* The Independent Magazine for Software Professionals Automating Software Development Processes by Tim Kitchens

Sources of Schedule Risk

Top-down Forecasting Using a CRM Database Gino Rooney Tom Bauer

Classified Employee Performance Rubric

How to plan an audit engagement

Managing a complaint at work A step-by-step guide

Before You Start Modelling

Student Workbook. Designing A Pay Structure TOTAL REWARDS. Student Workbook. STUDENT WORKBOOK Designing A Pay Structure. By Lisa A. Burke, Ph.D.

Sales and Operations Planning Overview


Keys to a successful WAREHOUSE MANAGEMENT SYSTEM (WMS)

Migrate to a New Testing Tools

The Guide to Cracking the LinkedIn Ads Platform

USING PR MEASUREMENT TO BEAT YOUR COMPETITORS: A HOW-TO GUIDE

XpertHR Podcast. Original XpertHR podcast: 22 September 2017

My name is Sam Mulholland and I am the Managing Director of Standby Consulting.

EXECUTION: THE DISCIPLINE OF GETTING THINGS DONE BOOK SUMMARY

Managing Risk in Agile Development: It Isn t Magic

BPM Pulse TM Survey Results

FAQ: How to build User Profiles

Figure 1 Function Point items and project category weightings

WebCTRL BUILDING ANALYTICS

Thinking about competence (this is you)

Sample Performance Review Supervisor Excelling

Case Study. Cosma International improves systems through collaboration with Solarsoft. Customer Spotlight.

2009 Software Business Analyst: Seven Best Practices

Achieving Balance: The New Pivotal Points of Software Development

Agile TesTing MeTrics Quality Before Velocity

COURSE CATALOG. vadoinc.net

The Reuse Environment A Promise Unfulfilled A TenStep White Paper

TickITplus Implementation Note

Mobile Marketing. This means you need to change your strategy for marketing to those people, or risk losing them to your competition.

The CTSC Webinar Series is supported by National Science Foundation grant #

Functional Guide for the Promotion Calculation Engine

Increasing Value Add by: Sheila Julien, Senior Associate

I. POLICY FOR INTERNAL ALIGNMENT

WHITE PAPER. Six Simple Steps to Improve Service Quality and Reduce Costs

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Talent Acquisition Leader s Guide to Recruitment Agency Planning. Setting Your Agency Recruiting Strategy for 2017

Introduction to Systems Analysis and Design

Scrum Master / Agile Project Manager An Approach for Personal Competency Development

10 Questions to Ask When. Campaigns - 5 things you need to know. What the AdWords Update Means for Your Paid Search Strategy. hanapinmarketing.

Realistic, Actionable Schedules Truthful Alignment of Prediction and the Future

The Product Launch Team Member s Guide Roles and Responsibilities of Team Members Identifying and Inviting Team Members...

Sources of Error in Software Cost Estimation

Chapter 5: Software effort estimation- part 2

Managing Your Backlog

Critical Steps to Prepare Your Business for Sale

Creating Kick-Ass Engagement Plans for Your Key Accounts

Career Exploration. Office of Career Services

LCA in decision making

A Primer for the Project Management Process by David W. Larsen 1. Table of Contents

Managing Assumptions

Key Performance Indicator Mapping

Metalogix Replicator for SharePoint

DevOps Guide: How to Use APM to Enhance Performance Testing

Optimizing the value of audit quality indicators Lessons we have learned

The Accidental Intrapreneur BECOMING THE KNOWLEDGE CENTER CEO

MTAT Software Economics. Session 6: Software Cost Estimation

The City of Oregon City Oregon City Tourism Strategic Plan - Scope of Work. May 30, 2017 Submitted by Coraggio Group coraggiogroup.

your guide to boosting booth presence

WHITE PAPER THE NEED FOR CUSTOMER-CENTRIC CRM

In October 1997, the Trade Commissioner Service (TCS) Performance measurement in the Canadian Trade Commissioner Service THE MANAGER S CORNER

The 360-Degree Assessment:

Big Rock Estimation: Using Agile Techniques to Provide a Rough Software Schedule / Resource Estimate

Turning Clients Into Creative Team Partners. inmotionnow

Transcription:

Process: Goals, Risks, Estimation, Planning, and Metrics 15-413: Software Engineering Practicum Jonathan Aldrich Charlie Garrod

Outline Goals Picture of Success Risk Management Estimation Planning Metrics January 13, 2014 Software Engineering Practicum 2

Picture of Success [source: Gil Taran] The minimum set of conditions that must be met for project members to consider the project a success A standard against which to measure risks Not the set of all goals Characteristics Set at specific time in future Measurable Agreed to by team Short e.g. one slide with 4-5 statements January 13, 2014 Software Engineering Practicum 3

Common failure modes Your Picture of Success should NOT: Discuss your current status List vague goals that you cannot easily measure or evaluate Measurability is hard for non-technical goals, but think creatively about this Your Picture of Success SHOULD: Include personal and learning goals as well as objectives related to completing the course or project January 13, 2014 Software Engineering Practicum 4

Example Open Source Picture of Success Become committers: In our project, until we prove ourselves we are only able to submit patches. Once we prove that we can submit good code we will be promoted to committers. Aid in design decisions: As opposed to simply fixing bugs the whole time, we would like to quickly get a deep enough understanding to be able to actively participate in design decisions. Fix a few hard bugs: Bugs are labeled by expected difficulty. While we are not yet sure exactly what this entails, we aim to fix at least one, and hopefully more, of the bugs labeled hard. Contribute and develop an original idea: We would like to come up with an improvement or new feature that we will both initiate and bring to completion. January 13, 2014 Software Engineering Practicum 5

Example Bullets Open Source Project Our team shall share the workload evenly based on the tasks assigned to each individual in our team meetings Learn and follow the development standards and contribution process used by the OpenBaz project, and become proficient in the tools used by the project Document progress by maintaining a blog with weekly progress posts and time tracking. Update design documents and carefully document design goals, algorithm details, and changes. January 13, 2014 Software Engineering Practicum 6

Example Bullets Open Source Project Beat the other schools by contributing better and cleaner code Good documentation Clearly written commit message Well thought-out designs using applicable design patterns Learn best practices for contributing to the open source community and committing some code within 2 weeks of the hackathon January 13, 2014 Software Engineering Practicum 7

Exercise: Meet and Discuss Goals Introduce yourselves by project List on next slide Say your name, something about yourself, and something you hope to get from this course Move to sit with your project partners Talk a bit more about your course goals January 13, 2014 Software Engineering Practicum 8

Picture Of Success Course Project We deliver the must have requirements as agreed by us and the client by the end of the semester with the levels of quality specified by the client. The team shares the workload evenly and collaboratively throughout the project and resolves conflict through timely team communication. We have a designated process that is thoroughly documented and followed throughout the project. We periodically, at a minimum once a month, review our actions and processes so as to identify actions that get implemented in the next phase. [source: Gil Taran] We are able to articulate core principles in the areas of people, process, and technology, and reflect on having used them in our project so as to understand our successes and failures and react accordingly. January 13, 2014 Software Engineering Practicum 9

Project List Kotlin MongoDB Mozilla Firefox O/S Mozilla Marketplace Review Board App Inventor JTS OpenStack Prediction.io SocketIO Umple KDevelop for Ruby January 13, 2014 Software Engineering Practicum 10

Picture of Success in 15-413 Come up with a team Picture of Success Due 1/20, follow the guidelines above Rationale Structured way to think about goals beyond completing each assignment What you get out of this course depends on your investment Help focus your activities towards achieving your goals Help each other and the instructors understand what you want out of the course January 13, 2014 Software Engineering Practicum 11

15-313 Review If you have taken 15-313, and are comfortable with: Condition-consequence risk statements Wideband Delphi estimation Earned Value / Velocity then you may leave now. If you leave, please look at the slides with 15-413 in their title online, in order to see how we are using these concepts in this course. The next lecture will be Tue, Jan 21 January 13, 2014 Software Engineering Practicum 12

Outline Goals Risk Management Estimation Planning Metrics January 13, 2014 Software Engineering Practicum 13

An Example of Risk [source: Gil Taran] January 13, 2014 Software Engineering Practicum 14

Risk Defined [source: Gil Taran] The possibility of suffering loss Webster's dictionary, 1981 All definitions share the following characteristics: Uncertainty - an event may or may not happen Loss - an event has unwanted consequences or losses January 13, 2014 Software Engineering Practicum 15

Risk Management www.dilbert.com Anticipating risks so they are not a surprise Plan response to risk Decreasing the magnitude of a potential loss Decreasing the chance of loss Increase control over the risk January 13, 2014 Software Engineering Practicum 16

Defining Risks Condition Phrase describing some factual condition of the project May be positive or negative Example: There is water on the floor Should NOT be a hypothetical statement WRONG: Water might spill on the floor RIGHT: There is a faucet in the room [source: Gil Taran] Consequence Potential negative consequence of the condition Example: Someone might slip in it and get hurt January 13, 2014 Software Engineering Practicum 17

Risk Statements What are risks to your picture of success in this course? January 13, 2014 Software Engineering Practicum 18

Risk Analysis Impact: the severity of the loss Probability: the likelihood of the loss Exposure: Impact * Probability A measure of priority Time frame: how long until risk materializes? Urgency combines priority and time frame Mitigation Approach to reduce impact or probability of a risk Periodic monitoring Identify new risks Increase or decrease in impact or probability January 13, 2014 Software Engineering Practicum 19

Risk Management in 15-413 We will not have a formal process However, we will ask you to think about risks in our weekly meetings Use the ideas above to guide your thinking January 13, 2014 Software Engineering Practicum 20

Outline Software Engineering Minor Risk Management Estimation Planning Metrics January 13, 2014 Software Engineering Practicum 21

Estimation is Difficult Average project exceeds cost, schedule estimates by 100% - 1998-2000 Standish Report Factors Complex systems are hard to estimate Problems look easy until you see the detail We never build the same thing twice Management pressure affects estimates January 13, 2014 Software Engineering Practicum 22

Estimation Basics Cost = person-months * cost-of-person cost-of-person includes benefits, taxes, equipment, support staff, and building may be 2-3 times salary Which factor is more uncertain? January 13, 2014 Software Engineering Practicum 23

Estimation Principles Ultimately based on experienced judgment Structuring techniques may improve accuracy Principles Use historical data Divide and conquer Many points of view Correction over time January 13, 2014 Software Engineering Practicum 24

Estimation: Historical Data Find similar projects with cost data Domain Size Architecture Adjust for differences Project size/scope Improved expertise New/unknown problems Reuse of old artifacts Note: reuse is not free! Adaptation is required January 13, 2014 Software Engineering Practicum 25

Estimation: Divide and Conquer Work Breakdown Structure Divide hierarchically into tasks Develop conceptual design Break into parts Only for estimation: should redo entirely in real design phase! Estimate tasks/parts separately Combine estimates Recognize costs for integration January 13, 2014 Software Engineering Practicum 26

Estimation: Wideband Delphi [source: Mel Rosso-Llopart] Planning Define the scope of the problem Break large problems into smaller The Kickoff Deliver problem to team Individual preparation Everyone does individual estimates on problem parts All assumptions are written down Estimation Meeting Assembling Tasks Put together the estimates of team members Review Results as team January 13, 2014 Software Engineering Practicum 27

Wideband Delphi: Estimation Meeting [source: Mel Rosso-Llopart] A moderator collects the estimates for the task being estimated Present the average or a line with all estimates (anonymous) The estimate is discussed and assumptions presented Moderator calls for a new estimate from everyone Values are again presented to the team as average or line Continue process until: Four rounds are completed The estimates converged to an acceptably narrow range The allotted meeting time is complete All participants are unwilling to change their estimates 15-20 minutes per item discussed January 13, 2014 Software Engineering Practicum 28

Rounds in Delphi [source: Mel Rosso-Llopart] January 13, 2014 Software Engineering Practicum 29

Wideband Delphi: Best Practices Gather a heterogeneous team Write down assumptions Make anonymous estimates [source: Mel Rosso-Llopart] Never estimate tasks larger than you are comfortable with January 13, 2014 Software Engineering Practicum 30

Estimation: Correction over Time Last task estimated cost: 10 hours Last task actual cost: 20 hours Next task estimated cost: 15 hours How long will it actually take? XP: load factor Developers estimate tasks in ideal time Time with no meetings, questions from buddies, etc. Multiply all estimates by empirically measured load factor load factor = actual / estimate = 20 / 10 = 2.0 New task estimate = ideal * load factor = 15 * 2.0 = 30 January 13, 2014 Software Engineering Practicum 31

Estimation: Function Points Standard unit of measure for software size In terms of requirements, not code Data Functions Internal logical files Database table, file, preferences # FPs depends on record, field structure External interface files Data the app needs but does not maintain Transactional Functions: External Inputs User data entry, automatic data feeds External Outputs Output of computed or processed data External Inquiries Output of retrieved data [source: Alvin Alexander, devdaily.com] January 13, 2014 Software Engineering Practicum 32

From FPs to Effort Historical data Cost per FP on similar projects May need fudge factors to account for differences COCOMO Adjust function points based on project characteristics Product: reliability, complexity, reuse, Platform: performance, storage, change Personnel: capability, continuity, experience Project: tools, distributed dev., schedule Convert to person-hours based on historical data January 13, 2014 Software Engineering Practicum 33

Estimation in 15-413 Estimate each technical task before you do it For small tasks, just make the estimate yourself At least once, use Wideband Delphi Ideally for a larger task done by >1 person Adjust estimates according to history Use load factor Or simply compare to similar previous tasks Once you start a task, do not change the estimate! Even if you know you under/over-estimated Otherwise you will not have data to adjust future estimates Estimation is not necessary for course assignments January 13, 2014 Software Engineering Practicum 34

Outline Software Engineering Minor Risk Management Estimation Planning Metrics January 13, 2014 Software Engineering Practicum 35

Planning Choosing in what order to do things Inputs Cost determined by engineers Priority determined by customer Ordering Principles Deliver a working system early Biggest risk: not delivering anything Deliver customer value early Agile: customer can change his mind! Mitigate risks early Beware: New risks may come up Respect dependencies & critical path January 13, 2014 Software Engineering Practicum 36

Planning in 15-413 Determine how (and whether) to do planning in conjunction with your opensource mentor May be informal in practice Still useful to think of the criteria above January 13, 2014 Software Engineering Practicum 37

Outline Software Engineering Minor Risk Management Estimation Planning Metrics January 13, 2014 Software Engineering Practicum 38

Metrics: How are we doing? Scenario: contract work Your company has agreed to produce program X Program X has two parts. You ve estimated effort, cost and time for each: Part A: 160 hours, $3200, delivery at 2 week point Part B: 120 hours, $2400, delivery at 3 week point Now you are 3 weeks into the project. You have only delivered Part A. You have spent 200 person-hours on it. How are you doing? January 13, 2014 Software Engineering Practicum 39

Metrics: How are we doing? Earned value A measure of how much value you have delivered to the client Back to our contract scenario Estimates Part A: 160 hours, $3200, delivery at 2 week point Part B: 120 hours, $2400, delivery at 3 week point Reality: Part A: 200 hours,???, delivered at 3 week point Part B: no progress yet How much earned value? 200 hours $4000 (at $20/hour)? But it s hardly fair to the customer if you are slow! A better answer: $3200 That s what you originally estimated as the cost of the work you actually delivered It s also how much your client promised to pay you for it! January 13, 2014 Software Engineering Practicum 40

Metrics: How are we doing? Earned value A measure of how much value you have delivered to the client The estimated cost (typically in hours, or dollars) of the work you actually finished In some methodologies work that is incomplete is prorated but this is risky. You may think it is 90% complete, but how do you know? January 13, 2014 Software Engineering Practicum 41

Metrics: How are we doing? Cost performance index (CPI) Are we under or over budget? By how much? Compare budgeted cost to actual cost Crunching the numbers Budgeted Cost of Work Performed (BCWP) BCWP is the sum of the costs in the budget for the tasks we ve completed so far Actual Cost of Work Performed (ACWP) ACWP is the sum of the actual costs of the tasks we ve completed so far CPI = BCWP / ACWP = 160/200 = 80% We ve done 80% of the work we promised we could do in 200 hours Good to be above 100% - indicates efficiency Too far about 100% suggests inaccurate estimation January 13, 2014 Software Engineering Practicum 42

Metrics: How are we doing? Schedule performance index (SPI) Are we ahead or behind schedule? Compare how much work we actually did, to how much work we expected to do How to measure work fairly? Use the budgeted cost just as in earned value Crunching the numbers Budgeted Cost of Work Performed (BCWP) BCWP is the sum of the costs in the budget for the tasks we ve completed so far Budgeted Cost of Work Scheduled (BCWS) BCWP is the sum of the costs in the budget for the tasks we were scheduled to have completed as of now SPI = BCWP / BCWS = 160 / 280 = 57% We ve done 57% as much work as we planned to do Again, good to be above 100%, but too far above is a red flag January 13, 2014 Software Engineering Practicum 43

Earned Value Exercise (assume we have just finished Month 1) Task Budget Month Done? Actual 1 20 1 N 2 5 1 Y 10 3 10 1 Y 15 4 10 2 Y 5 Earned Value = CPI = SPI = January 13, 2014 Software Engineering Practicum 44

15-413 Time Tracking and Metrics Each week, prepare a time report List all tasks performed by the team If a technical task, write the time estimate Write how much actual time each person spent on each task (to nearest 0.25 hours) Write what % complete you believe each task is right now List tasks you know you will work on next week, with estimates Note: new tasks may be added during the week. Estimate them as they come in, before starting. Compute summary information Earned value, CPI, SPI (see Metrics slides just above) Current load factor (see Estimation slides earlier) January 13, 2014 Software Engineering Practicum 45

Earned Value Exercise Answers (assume we have just finished Month 1) Task Budget Month Done? Actual 1 20 1 N 2 5 1 Y 10 3 10 1 Y 15 4 10 2 Y 5 Earned Value = 5+10+10 = 25 CPI = 25 / (10+15+5) = 25/30 = 83% SPI = 25 / (20+5+10) = 25/35 = 71% January 13, 2014 Software Engineering Practicum 46