SWEN-256 Final Exam
Individuals and interaction over ___
process and tools
Cone of uncertainty
Beginning of project: -50% to +100%. End of project: +25% to +50%.
How to achieve commitment
Buy-in to everything.
Disadvantages of evolutionary
Can become an excuse to do code-and-fix development.
Conflict resolution techniques
Confronting, compromising, withdrawal, smoothing.
COCOMO
Constructive cost model. Uses regression formula with parameters derived from historical projects and current project
Testing in agile
Done early and often rather than once at the end
Expert judgement
Estimate provided by expert. Accuracy depends on level of expertise
Wideband Delphi
Estimation made by group consensus
Blame storming
Everybody blames each other.
Death march
Everybody knows the project is going to fail except the man in charge.
Estimation methodologies
Expert judgement, top-down, bottom-up, analogy, priced to win, algorithmic method
Dangers of over-estimation
Feature creep, Parkinson's Law, double padding of estimates
Categories of function points
Outputs, inputs, db inquiries, files/data structures, interfaces
Process classic mistakes
Overly optimistic schedules. Insufficient risk management. Insufficient planning.
Examples of plan-driven
PSP, TSP, RUP, cleanroom
Project dimensions
People. Process. Product. Technology.
Three questions of daily scrum meeting
What have you done since last meeting? What will you do next? What obstacles are in your way?
Parkinson's Law
Work expands to fill the time available
Examples of agile
XP, crystal, scrum, feature-driven development
Working software over ___
comprehensive documentation
Customer collaboration over ___
contract negotiation
Product owner responsibilities
Accountable for product success, defines all product features, ensures team is working on highest priority features
Upstream vs. downstream
Activities done early on are upstream. Activities done later on are downstream. Doing well upstream will provide a much easier float downstream.
Avalanche Model
All steps in the process model are going on at the same time.
Benefits of staged delivery
Allows you to deliver the most important functionality the earliest.
Benefits of spiral
As costs increase, risks decrease.
Four pillars
Avoid classic mistakes. Apply development fundamentals. Manage risk. Apply schedule-oriented practices.
Responding to change over ___
following a plan
Intellectual Violence
A know-it-all.
What is a risk?
A problem that has not happened yet.
What does each cycle of TSP produce?
A testable version that is a subset of the final project.
Story points
A way of estimating effort required for a feature, on scale of 1-10
Disadvantages of staged delivery
Difficult to make stages meaningful for the customer. Difficult if stages rely on one another.
Operational work
Most ongoing work. Business as usual.
Disadvantages of code and fix
No means of assessing progress or quality.
Benefits of code and fix
No overhead. Requires very little expertise.
Function points
Software estimation by number and complexity of functions it performs
Maximum length of a task in scrum
16 hours
Size of scrum team
5-9 people
Tuckman's model
Forming, storming, norming, performing.
Functional organizational structure
Grouped by specialization. Team members have departmental and project work.
Project work
Has a beginning and end. Has unique goals and objectives.
Scrum master responsibilities
Holds daily 15 minutes meeting, removes obstacles, maintains sprint burndown chart, facilitates rather than manages
What makes up risk assessment
Identification, analysis, prioritization.
Thrashing vs. process
If process is injected early, there will be less thrashing and more productive work.
Phases of RUP
Inception, elaboration, construction, transition.
Problem with code reuse
Integration effort reused code is almost the same as new code
Disadvantages of spiral
It is complicated. Difficult to define verifiable milestones.
Input to COCOMO
LOC
Algorithmic measures
LOC and/or function points
7 steps of TSP
Launch, strategy, plan, requirements, design, implementation, test, postmortem.
What is evolutionary prototyping?
Lifecycle model in which you develop the system concept as you move through the project.
What is staged delivery?
Lifecycle model in which you show software to customer in successively refined stages. Waterfall model followed for each individual stage.
Challenges of plan-driven
Lightweight apps with heavyweight process, document intensive, less flexible design, one-shot delivery
Product backlog
List of product features
Groupthink
Nobody is questioning what the group is doing.
Blowhard Jamboree
One team member is vocal about his misinformed opinions and these become treated as facts.
Loose Cannon / Corncob
One team member who is particularly destructive.
Individual needs
Physiological, safety, social, esteem, self-actualization.
Project management
Planning, organizing, motivating, and controlling resources to achieved defined goals.
What makes up risk control
Planning, resolution, monitoring.
Ways of presenting an estimation
Plus/minus quantifiers, ranges, risk quantification, best/worse cases, confidence factors
Risk Exposure
Probability * Impact
Analysis Paralysis
Problem broken down too far. Leads to micromanagement.
Benefits of evolutionary prototyping
Produces steady, visible signs of progress. Good for when you don't know what you're building.
Fire drill
Project moving slowly and unrealistic deadline is set.
Dangers of under-estimation
Quality issues and lowered team morale
Velocity
Rate at which team converts items to done in a single sprint
Product classic mistakes
Requirements gold-plating. Feature creep. Developer gold-plating.
What does RA(S)CI stand for
Responsible, accountable, support, consulted, informed.
Two processes that make up risk management
Risk assessment and risk control.
What is spiral?
Risk-oriented lifecycle model that breaks software up into miniprojects. Each miniproject addresses one or more major risks until all major risks have been addressed.
Highest priority of agile
Satisfy the customer through early and continuous delivery of valuable software
The project triangle
Scope. Cost. Schedule. Good. Fast. Cheap. Pick Two.
Agile spectrum
Scrum, crystal, XP, DSDM, feature-driven
Characteristics of agile
Short iterative cycles, incremental delivery, evolutionary artifacts, customer involvement
Burndown chart
Shows work left to be done in a sprint calculated by hours remaining
Technology classic mistakes
Silver-bullet syndrome (wanting to try new technology). Switching tools in the middle of a project. Overestimated savings from new technologies.
Three steps of basic estimation
Size, effort, schedule
Disadvantages of bottom-up estimation
Specific activities not always known, time-consuming
Projectized organizational structure
Staff are moved from project to project.
Output of COCOMO
Staff-months
Downside of COCOMO
Still uses LOC as its input
Velocity calculation
Sum of story points completed per iteration
Characteristics of plan-driven
Systematic engineering approach, completeness of documentation, thorough verification by means of traceability
Plan-driven spectrum
TSP, RUP, SW-CMM, PSP, Cleanroom, Inch-pebble
Target vs. committed dates
Target is proposed by business people, committed is what team agrees to
Two biggest problems with scrum
Teams not self-managing. Scrum master managing instead of leading.
Who invented PSP/TSP
Watts Humphrey
Purpose of the four pillars
To achieve the best possible schedule.
Sprint backlog
To-do list for the sprint
Team needs
Trust, managed conflict, commitment, accountability, results.
Matrix organizational structure
Two bosses: a project boss and a functional boss.
People classic mistakes
Undermined motivation. Heroics. Adding people to a late project.
How to keep track of accountability
Use a RA(S)CI chart.
Planning & estimation in agile is based on
User stories
Agile development estimation process
User stories broken up into small engineering tasks, all tasks get added up for the final estimation
Estimation by analogy
Using a past project to make an estimation. Difficult to compare projects.
LOC disadvantages
Varies too much by programming language and style
