Lesson 1: Agile & Kanban Boards
The Flexible Path: Agile and Kanban Boards
What is Agile Methodology?
Agile is a flexible, iterative development approach that's very different from Waterfall. Instead of planning everything upfront, Agile breaks work into small chunks called "sprints" and adapts based on feedback.
Key Characteristics of Agile:
🔄 Iterative Development
Work in short cycles (usually 1-4 weeks) called sprints
🤝 Customer Collaboration
Constantly gather feedback from users and stakeholders
🔧 Responding to Change
Adapt quickly when requirements or priorities change
👥 Individuals & Interactions
Focus on teamwork and communication over rigid processes
Waterfall vs. Agile: The Key Differences
| Aspect | Waterfall | Agile |
|---|---|---|
| Planning | All planning done upfront | Continuous planning and adaptation |
| Flexibility | Difficult to make changes | Embraces change and feedback |
| Delivery | Final product delivered at the end | Working software delivered regularly |
| Documentation | Heavy emphasis on documentation | Focus on working software over docs |
| Risk | High risk if requirements change | Lower risk due to frequent feedback |
What are Kanban Boards?
Kanban Boards are the primary visual tool for managing workflow in Agile projects. The word "Kanban" comes from Japanese and means "visual signal" or "card."
A Kanban board shows:
- Columns: Represent different stages of work (To Do, In Progress, Testing, Done)
- Cards: Individual tasks or features that move through the columns
- Flow: How work moves from start to completion
- Bottlenecks: Where work gets stuck or slowed down
Dead by Daylight Example: Bug Fix Workflow
This is how the DbD development team really handles bug fixes using a Kanban board approach. Let's follow a bug report through their workflow:
Following a Bug Through the Workflow
Let's trace how "The Dredge can get stuck in a locker" moves through the Kanban board:
Why Dead by Daylight Uses Agile/Kanban
The DbD development team uses Agile and Kanban boards because:
- Constant Player Feedback: They get bug reports and balance feedback daily from millions of players
- Changing Priorities: A game-breaking bug needs to be fixed immediately, even if it means delaying other features
- Multiple Teams: Artists, programmers, designers, and QA can all see what others are working on
- Regular Releases: They release patches every few weeks, not just once a year
- Transparency: Players can see what's being worked on through developer updates
Real Example: When a new killer is released and players discover it's overpowered, the team can quickly:
- Add "Balance [Killer Name]" to the backlog
- Prioritize it based on community feedback
- Implement changes in the next sprint
- Test the changes on the PTB (Public Test Build)
- Deploy the fix in a hotfix patch
Activity: Map a Bug Fix Lifecycle
Your Turn: Imagine you're part of the DbD development team. A new bug has been reported:
Questions to consider:
- What priority level would you assign this bug? (High/Medium/Low) Why?
- Which team members would need to be involved? (Programmers, QA, Design team?)
- What column would it start in on the Kanban board?
- What information would you need to include on the card?
- How would you test to make sure the fix works correctly?
Challenge: Draw or describe how this bug would move through the four Kanban columns (Backlog → In Progress → Testing → Done).
The Right Diagram for the Job: Recap
We've now learned about three essential planning and management tools:
📊 Gantt Charts
Best for: Project timelines, especially in Waterfall methodology
Shows: Task dependencies, project schedule, resource allocation
🎯 Use Case Diagrams
Best for: System scope and user actions during planning/design
Shows: Who uses the system and what they can do
📋 Kanban Boards
Best for: Managing workflow in Agile methodology
Shows: Work progress, bottlenecks, team collaboration
Each tool serves a different purpose in the software development process, and understanding when to use each one is a key skill for software engineers.