Https://flic.kr/p/hcgHcm Planning and Estimation.

Slides:



Advertisements
Similar presentations
Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.
Advertisements

CS487 Software Engineering Omar Aldawud
Agile Development Chapter Extension 16. ce16-2 Study Questions Q1: Why is the SDLC losing credibility? Q2: What are the principles of agile 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.
Customer collaboration.
Customer Collaboration. Central Principles The customer is part of the team The customer plays key role in directing the team 1.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Customer collaboration.
An Agile View of Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
CLEANROOM SOFTWARE ENGINEERING.
Understand Application Lifecycle Management
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Software Engineering 2004 Jyrki Nummenmaa 1 Why new software methodologies The classic waterfall-model based techniques are strongly based on the.
Planning Poker-Agile Estimation for Dummies S.INFANTA PRINCY, M.E II YEAR. ANNA UNIVERSITY, TRICHY.
Planning 2: Estimation Mechanics Emerson Murphy-Hill Creative Commons Attribution 4.0 License. Material Produced by NCSU Software Engineering Faculty.
Applied Software Project Management SOFTWARE TESTING Applied Software Project Management 1.
Advanced Software Engineering Dr. Cheng
Project Workflow.
Applied Software Testing
Software Configuration Management
Organisation Control KPI’s & an industry Review
Software Engineering Process
Iterative Planning

System Testing Antares Rocket Test Launch ( HQ) System Testing.
Chapter 11: Software Configuration Management
Monitoring Implementation and Sustainability
Software Requirements
Software Requirements
Software Engineering Process
Savannah to Jira Migration
Taking an Iteration Down to Code
School of EE and Computer Science
Automated Code Coverage Analysis
Applied Software Implementation & Testing
EDU 618 Innovative Education- -snaptutorial.com
What do you need to know about XP?
Teaching slides Chapter 1.
A test technique is a recipe these tasks that will reveal something
Cost Estimation Chapter 5
Coding Concepts (Basics)
Chapter 11: Software Configuration Management
Algorithm and Ambiguity
EPA Lean Management System
EPA Lean Management System
Chapter 3: Agile Software Processes
Software Engineering Process
Software Requirements
Project Planning and Estimation
Agile Development – a new way of software development?
Extreme Programming.
Iteration Planning.
Whitebox Testing.
Planning and Estimation
Software Requirements
Iteration Planning.
Software Requirements
Software Engineering Process
Software Development Techniques
Planning and Estimation.
Presentation transcript:

https://flic.kr/p/hcgHcm Planning and Estimation

SWEBOK Knowledge Areas Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations Today’s topic

Now you have a bunch of user stories, so what’s next?

Iterative Development Process Requirements Planning Implementation Analysis Design Deployment Testing Evaluation Initial Planning We are here

Developer Customer Create USs Requirements USs Check USs Corrections/Clarifications Fix USs Add Estimates USs + Estimates Add Priorities USs + Estimates + Priorities Choose USs for Iteration Divide Chosen USs into Tasks Estimate Tasks Assign Tasks to Workers Get to Work!

Developer Customer Requirements Create USs USs Check USs Corrections/Clarifications Fix USs Add Estimates USs + Estimates Add Priorities USs + Estimates + Priorities Choose USs for Iteration Divide Chosen USs into Tasks Estimate Tasks Assign Tasks to Workers Get to Work!

Estimating Time http://xkcd.com/1658/

Hofstadter's Law It always takes longer than you expect, even when you take into account Hofstadter's Law. —  Douglas Hofstadter, Gödel, Escher, Bach

Principles for Estimation Principle: Past performance is the best indicator of future performance Approach: Track your outcomes; refine your estimates Principle: Wisdom of the crowd Goal: Predict how events will unfold Think event planning Problem: Easy to miss something Solution: More brains = more opportunities to catch eventualities

Principles for Estimation Principle: Past performance is the best indicator of future performance Approach: Track your outcomes; refine your estimates Principle: Wisdom of the crowd Goal: Predict how events will unfold Think event planning Problem: Easy to miss something Solution: More brains = more opportunities to catch eventualities No past performance yet, so…

Estimation with Planning Poker Cards with units of work: 1, 3, 5, 8, 13, 20, 40 Assume team can do 20 units in an iteration For each US: Discuss work involved Flip cards Repeat until consensus Efficiency in estimating is important Don’t expect your estimates to be super accurate

Let’s watch this video to find out what planning poker is all about: http://youtu.be/0FbnCWWg_NY

More Estimation Principles Engineers refine estimates; customers refine expectations Estimates are basis for customer’s cost assessment Give honest estimates that customers can trust Don’t do this: https://youtu.be/t9SVhg6ZENw Work at a sustainable pace No heroes, no all-nighters, no super-human feats Either you get the code done like a human being, or you don’t

Developer Customer Requirements Create USs USs Check USs Corrections/Clarifications Fix USs Add Estimates USs + Estimates Add Priorities USs + Estimates + Priorities Choose USs for Iteration Divide Chosen USs into Tasks Estimate Tasks Assign Tasks to Workers Get to Work!

Principle: Customer sets priorities Ensures alignment with customer goals Helps customer feel in control Project isn’t going “off the rails” Estimates help customer maximize cost-benefit

Priority Numbering Scheme Multiples of 10: 10 - Highest priority 20 30 40 50 … - Lowest priority Non-multiples of 10 may be used if helpful

So now you have… Collection of user stories With estimates And customer priorities What’s next?

Developer Customer Requirements Create USs USs Check USs Corrections/Clarifications Fix USs Add Estimates USs + Estimates Add Priorities USs + Estimates + Priorities Choose USs for Iteration Divide Chosen USs into Tasks Estimate Tasks Assign Tasks to Workers Get to Work!

From USs to Tasks User Story Estimate

Incremental Development Principle Each task produces running code Unit tests count

Task design strategy Make tasks build upon one another First task makes subset of US work (e.g., partial form) Second task makes bit more work (e.g., add persistence) Etc…

Next Steps Part 1: Estimate USs Part 2: Collect customer priorities Use Planning Poker Start designing Part 2: Collect customer priorities Assign number each US Also note any corrections/clarifications Part 3: Choose USs for Development Iteration 1 3 weeks worth of work Fill out iteration plan with what each team member will do Everyone codes Tasks must be verifiable and executable Due by 9am on Mon