Software process
- ensure developers and stakeholders are on the same page
- reduce risk
Processes
Waterfall
- earlier days, ~70s, companies like IBM
- "waterfall" from requirements to implementation
- can't go back to previous stages (maybe slightly)
Spiral
- ~80s
- requirements, develop, back to customers, and repeat
- spiral down the development cycle
Extreme programming
- failure not so costly
- paired programming
Agile development
- simplify requirements
- user stories, TDD came in
- emergent design: start with minimum viable product, and grow from there
- refactor code
- Spikes
- Architectural
- user interface
Scrum
- sprint backlog
- scrum scenario
- three weeks
- plan, code & test, ceremonies
Scrum roles
- Product owner
- defines and adjusts features
- Scrum lead
- resolves conflicts in between
- protects the scrum process
- Team
- developers
- ~7 people
Scrum artifacts
- Product backlog
- prioritized backlog items
- Sprint backlog
- Burndown chart
- remaining task hours in one sprint
Story points
- Not work hours
- Unit of work relative to each other
- Estimate
- Affinity: sort from easiest to hardest
- Bucket: fibonacci number buckets
Ceremonies
Daily standup meeting - update on progress - no problem-solving - no blaming
Review - longer