- Software development life cycle is the process by which we define, produce and maintain softare.
- At their core, all models gather requirements -> produce product -> test the product meets the requirements.
- Phases
- Requirements
- Design
- implementation
- Verification
- Maintenance
- Projects progress one step at a time in a linear fashion until a project reaches maintenance
- "one should move to a phase only when its preceding phase is reviewed and verified"
- Pros
- Model places significant focus on requirements and documentation
- Designed to catch issues as early as possible (see cost of a defect)
- Easy to identify milestones
- Cons
- It is difficult to know all of the requirements when a project begins
- "We are uncovering better ways of developing software by doing it and helping others do it."
- Pillars of Agile
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
- There are many different implementations of the agile manifesto
- Scrum and Kanban are currently very popular
- Framework for managing work following the principales from the Agile Manfiesto
- Scrum comes as a set of guidelines to be shaped to meet a team's specific needs
- Each teams practices evolve through sprint retros
- Each team's scrum is unique
- Terminology
- Sprint - timeboxed iterations for work
- For the class, we are proposing a 1 week sprint
- Stories - A unit of work that provides value to
- Epics - A collection of stories packed together to deliver a feature
- Spikes - A unit of engineering research that does not deliver direct value. Typically ends with creating stories
- Sprint - timeboxed iterations for work
- 4 Ceremonies
- Daily scrum (standup) - daily work update
- Format for update "yesterday I did A, B, and C. Today I plan to do D, E, and F. I am blocked on X, and Person B is working to resolve it"
- Sprint planning - Meeting to select what work the team will complete in the current sprint
- The team should only pull in the work it believes.
- Sprint review - End of sprint meeting to evaluate progress in the sprint. Ensure all AC for completed stories were met.
- Retrospective - Reflect on previous sprint, modify team's process to improve productivity. 1.(opinion) most teams fail to properly use retro to solve their own problems.
- Daily scrum (standup) - daily work update
- Sample project