Why development methodologies? To manage product well.
Waterfall
Do repeatedly:
- requirements
- analysis
- design
- implementation
- testing
- maintenance
Software testing: validation VS verification
- validation: To ensure right product
- verification: To ensure build the software correctly
V-Model
Testing for every phase.
B-method
For safety-critical systems
Agile
Features:
- limited planning
- quick iteration
- limited foresight
Process: Repeat
- Plan
- Iteration, review from feedback
- deliver and feed back
DevOps
Continuous integration CI
Continuous deliver/deployment
Organizational
- daily meeting
- planning game (play poker card to estimate work load)
- continuous integration
- retrospective
- shared code ownership
Technical
- test-driven
- refactoring
- pair-programming
- simplest solution may work sometimes
- coding standards
Agile Artifacts
Virtual:
- User story/user case
- burndown chart
Material:
- Story card
- Story board
- Open room
Agile is not
- a silver bullet.
- easy to implement.
- an excuse to discard documentations, design or good development practice.
- about avoiding committing to deliver software.
Technical Debt
Expedient in short term will create a technical debt where same work will cost more later than now.
Accumulation of technical debt leads to crises.