SWEN 256 Exam 2
Earned Value Tracking (how to use)
1) Establish a WBS to divide the project into parts 2) Identify the activities required for the current project 3) Allocate the effort required for each activity 4) Schedule the activities over time and resources 5) Analyze/review the schedule 6) Update the schedule by reporting activity progress 7) Enter the actual cost on the activities 8) Execute the Earned Value calculations 9) Analyze the data and make course corrections as necessary
How to Schedule
1) Identify what needs to be done (WBS) 2) Identify how much (size estimation) 3) Identify dependency between tasks (dependency graph, network diagram) 4) Estimate total duration of the work to be done (the actual schedule)
Verification
Are we building the product right?
Validation
Are we building the right product?
Estimation Methodology: Estimation by Analogy
Use past project (must be similar, find comparable attributes) Advantages: Based on actual historical data Disadvantages: Difficulty 'matching' project types. Prior data may have been mis-measured
Estimation Methodology: Expert Judgement
Use somebody who has recent experience on a similar project, "guesstimate". Accuracy depends on their "real" expertise
Tracking
Uses monitoring and tools to determine if plans, estimates, and schedules are accurate
Critical Path Method (CPM)
What is duration of the project? How much will the project be delayed if any one of the activities takes N days longer? Critical Path: Longest path in the precedence network (longest time) Critical Tasks: All tasks in the critical path
Partitioning a project
Decompose project into manageable chunks. All projects need this. Divide and Conquer. Two main causes of project failure: Forgetting something critical, ballpark estimates become targets
Errors
Defect prevention and Reduction: Human/Developer Error. In build time
Bugs
Defect prevention and Reduction: Software Defect. In build time
V&V confidence
Depends on systems purpose, user expectations, and marketing environment
Estimating
Determining the size and duration of activities
Agile Concepts
Embrace Change Frequent Delivery Simple Design Refactoring Pair Programming Retrospective Tacit Knowledge Test-Driven Development Dynamic Requirements, active customer involvement, and incremental delivery
Product WBS
Entity oriented, typically used by engineering manager
(Estimation) Effort
Expressed in man-months
Failure
Fault detection and containment: System Failure. in run time
Fault
Fault detection and containment: System fault. In run time
Work Breakdown Structure (WBS)
A checklist of the work that must be accomplished to met the project objectives, lists major project outputs and those departments or individuals responsible for their completion
Gantt Chart
A means of displaying simple activities or events plotted against time or dollars Advantages: Easy to understand, easy to change Disadvantages: Only a vague description of the project, does not always show interdependency of activities, may not show results of an early or late start of an activity
SCRUM: Story Point
A number that tells how the team how hard the story (think fibonacci sequence)
Process WBS
Activity oriented, typically used by Project Manager
Scheduling
Adds specific start and end dates, relationships, and resources
Testing
Assess and evaluate the quality of work performed at each step of the development process
Estimation Methodology: Top-down Estimation
Based on overall characteristics of project Advantages: Easy to calculate, effective early on Disadvantages: Some models are questionable or may not fit. Less accurate, doesn't look into details
Estimation Issues
Best estimates are based on past experience Overestimation issues: Project may not be funded, conservative estimates may mean 0 funding Parkenson's Law Danger of feature and scope creep Underestimation issues: Quality issues Inability to meet deadlines Morale and other team issues
(Estimation) COCOMO
COnstructive COst MOdel input: LOC, Output: man-months (effort) Cost drivers: motivation, ability of team, application experience Weakness: requires input of product size estimate in LOC
(Estimation) Code Reuse and Estimation
Code types: new modified and reused 50% modified is "new" Reused code takes 30% effort of new code Modified code takes 60% of new code Integration effort with reused code almost as expensive as with new code
Hybrid WBS
Combination of Process and Product WBS
Estimation Methodology: Bottom-up Estimation
Create WBS (work breakdown structure), identify individual tasks to be done Advantages: Works well if activities well understood Disadvantages: Specific activities not always known, more time consuming
Estimation Methodology: Wideband Delphi
Group consensus approach Advantages: Easy, inexpensive, utilizes expertise of several people. Doesn't require historical data Disadvantages: Difficult to repeat. May fail to reach consensus or reach the wrong one.
Planning
Identify activities. No specific start and end dates
Agile Manifesto
Individuals and Interactions - over process and tools Working software - over comprehensive documentation Customer collaboration - over contract negotiation Responding to change - over following a plan
Earned Value Tracking
Large tasks can/must be broken into subtasks Size tasks up to 80 man-hours; aim for 2 to 4 task completions per week
Estimation Methodology: Algorithmic Measures
Lines of Code (LOC) Function points feature points or object points
SCRUM: Velocity
Measure of the amount of work a team can tackle during a single sprint
SCRUM: Earned Value
Methodology to control a project. Provides a uniform and consistent measure for project progress Provides a basis for cost performance analysis on project
Process Methodology Spectrum
More Agile (to the left) Agile Methodologies: Scrum Crystal Lean, XP, DSDM, Feature Driven Design Less Agile (to the right) Plan Driven Methodologies: DSDM, Feature Driven Design, TSP, RUP, SW-CMM, PSP, Cleanroom, Inch-Pebble
V&V
Must be applied at each stage in the software process. Has two objectives: Discovery of defects in a system. Assessments of whether or not the system is usable in an operational situation
WBS Methodology
PM must map activities to chosen lifecycle Each lifecycle has different sets of activities Operations and maintenance phases are not normally in plan
PEST
Planning, Estimating, Scheduling, Tracking
Plan-Driven Concepts
Process Improvement Process Capability Organizational Maturity Process Group Risk Management Verification (building the product right) Validation (building the right product) System Architecture Think waterfall, but more incremental. Completeness of documentation important.
Student Syndrome
Procrastination until last minute (cram)
Quality Assurance
Software Engineering process improvement Fault tolerant software design All aspects of software verification and validation
Quality
Software Requirements: (the foundation from which quality is measured) How Software is Engineered: (specified standards define a set of criteria) Implicit Requirements: (example: good maintainability)
(Estimation) Function Points
Software size measured by number and complexity of functions it performs, more methodical than LOC. Example: House square feet = LOC # Bathrooms = function point
Quality and Testing
Testing is an aspect of quality, it is a measure of quality it does not deliver quality
WBS Techniques
Top-Down: Start at highest level and work down Bottom-Up: Start at lowest level tasks Analogy: Base WBS on similar project, use template Rolling Wave: (1st pass: go 1-3 levels deep, gather more requirements or data, add more detail later) Post-its on a wall All rely upon Expert Judgement
Software Estimation
Two types: Lucky or Lousy Created, used or refined during: Strategic planning, feasibility study and/or SOW, proposals, Vendor and sub-contractor evaluation, and project planning (iteratively) Basic Process: 1) Estimate the size of the product 2) Estimate the effort (man-months) 3) Estimate the schedule
Parkinson's Law
Work expands to take the time allowed
PERT
r --A,M,B--> S A = most optimistic time M = Most likely time B = most pessimistic time Expected time = (a + 4m + b) /6