Kanban
eXtreme Programming
Test Driven Programming
Developed at Toyota in the 1940's
Aligned inventory levels with the actual consumption of materials
Requires the passing of cards (kanban)
Uses a Just In Time (JIT) approach
Kanban is a popular Framework for Agile development
It matches the amount of work in progress (WIP) to the team's capacity
Allows for flexible planning, fast output, and clear focus
Used to visualize tasks and optimize the workflow
Default: To-Do, In Progress, and Done
More columns can be added: testing, waiting, etc.
Provides a single source of truth for the team
Feature critical info about work items:
→ Description of the task
→ Who is reponsible
→ Time estimates
→ etc.
No specific timelines for sprints
Each column of the board has a limited capacity - WIP
As cards move columns, more cards are pulled from the backlog
Scrum | Kanban | |
---|---|---|
Cadence | Fixed sprints | continuous flow |
Change | no change mid-sprint | at any point |
Roles | PO, SM, and Dev Team | No specific roles |
In "classical" programming, tests are created in "response" to written source code
TDD flips this around: code is written as a response to existing unit tests
→ Think about the behaviors that fulfill your requirement. Select a behavior to implement
→ Write a test that validates the behavior.
→ Write only enough code to make the new test and all previous tests pass
→ Refactor the code to eliminate duplicate code
→ Select next requirement and repeat previous steps
Write no production code except to pass a failing test
Write only enough of a test to demonstrate a failure
Write only enough production code to pass the test
Combines a set of 5 values, 5 rules, and 12 practices
Emphasis on technical aspects
More disciplined (rigid) than other Agile frameworks
Uses TDD as well as aspects of Scrum: iterations and user stories
Simplicity: simplest solution that works
Communication: talk frequently and effectively
Feedback: constant comms with stakeholders
Courage: speak up when problems and/or opportunities arise
Respect: Mutual respect between developers and customers
Planning: user stories and iterations
Managing: open and constant communications
Designing: CRC Cards
Coding: Pair Programming and continuous integration
Testing: All code will need to pass unit tests
Scrum | XP | |
---|---|---|
Applicability | any agile project | software dev |
Cadence | fixed iteration | flexible iterations |
Tweaking | no longer scrum | encouraged |
Roles | PO, SM, and Dev | no fixed roles |
Kanban (required)
Kanban vs Scrum (required)
Kanban WIP (required)
Test Driven Development (required)
eXtreme Programming (required)
eXtreme Programming (required)