What is the difference between Agile and Waterfall?
- Agile and Waterfall are both development methodologies designed to help planning, executing, and delivering projects
- Waterfall is a linear & sequential development process with clearly defined phases, while Agile is iterative & incremental in which development occurs in short cycles (sprints), allowing for regular reassessment and adaptation
- Waterfall requires upfront planning in which all requirements are gathered at the beginning, and changes later are costly and difficult, while Agile allows for flexible planning in which requirements evolve as the project progresses, with ongoing customer collaboration
- Waterfall means a working product is typically delivered at the end of the project, while in Agile a working product is delivered early and continuously improved
- Waterfall is best for projects with well-understood, fixed requirements (e.g., construction, regulated industries), while Agile is best for projects where requirements are likely to change or need regular feedback (e.g., software companies)
What is the difference between Scrum and Kanban?
- Scrum and Kanban are both Agile frameworks used to manage and improve work processes
- Scrum has defined roles and ceremonies while Kanban has no required roles or ceremonies - it's more flexible and can be applied on top of existing processes
- Scrum uses fixed-length sprints to deliver work in time-boxed iterations, while Kanban has a continuous flow in which work items are pulled through the process as capacity allows, without fixed iterations
- Scrum means work is planned at the beginning of each sprint and locked in (scope is fixed during the sprint), while in Kanban work is continuously added based on capacity, scope is flexible and changes often
- Scrum focuses on tracking velocity (how much work is completed per sprint), while Kanban focuses on cycle time (how long it takes a task to move from start to finish)
What roles exist in Scrum?
- Product Owner
- Define and maintain the Product Backlog
- Prioritize backlog items based on value, risk, dependencies, and stakeholder input
- Ensure the team understands backlog items to the needed level
- Scrum Master
- Serves the team by removing impediments
- Coaches the team on Scrum practices
- Shields the team from outside interruptions
- Development Team
- Plan the work for each Sprint
- Collaborate to produce high-quality work
- Ensure the Definition of Done is met
What ceremonies exist in Scrum?
- Sprint
- Acts as the core development cycle (typically, 2 to 4 weeks) where a usable product increment is built
- Key output is a potentially shippable product increment
- Sprint Planning
- Done at the start of each Sprint by the entire Scrum team
- Define what can be delivered (Sprint Goal) and how the work will be achieved
- Input is the Product Backlog, past performance, and team capacity while key output is the Sprint Backlog
- Daily Standup
- Happens every day of the Sprint (should take 15 minutes)
- Allows developers to synchronize work, inspect progress toward Sprint Goal and adapt the Sprint plan as necessary
- Questions asked:
- What did I do yesterday?
- What will I do today?
- Any impediments?