Agile/Scrum
for Dummies Roboticists
A methodology created for small, cross-functional teams
Main characteristics
- Deliver value to your customers
- Use iterative development
- Adapt to change
The infamous "project triangle"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390045/pasted-from-clipboard.png)
Davide's tip: contrariwise to what other say, the area or the triangle in not constant
Waterfall
Project management "de toda la vida"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390327/Waterfall_model.svg.png)
Waterfall
The analog version
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390065/waterfall-planning.jpg)
Davide's tip: this model is still the best for some kind of projects
The "agile triangle"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390066/agile-triangle.png)
Deliver value
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390017/maximize-value.png)
Davide's tip: value is the happiness of the stackeholders,
including the team itself
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390004/incremental.png)
Incremental value
Any iteration should deliver incremental value
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390010/horizontal-increment.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390012/vertical-increment.png)
How does it work?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390077/ScrumBasics.png)
Step 1: define the project requirements and intermediate deadlines
Known as "project backlog"
"AS A [type of user],
I WANT TO [do this thing],
SO THAT I CAN [accomplish this goal]."
Davide's tip: Try to decompose them hierarchically
"THE ROBOT,
CAN NAVIGATE AUTONOMOUSLY
TO A GIVEN POINT OF THE SEWER"
Step 2: split an intermediate deadline into small tasks
Davide's tip: if the unit is days, never more than 5
Each task has an estimated "effort"...
use fibonacci number to take uncertaincy into account
1 / 2 / 3 / 5 / 8 / 13 / ...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390127/ask-why.png)
Beware useless work!
Step 3: arrange tasks into sprints
- Any sprint should have a high level goal and a deliverable.
- Sprint shall always have a review phase.
- Team members pull tasks form the backlog.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390153/sprint-burn-A.jpg)
Daily stand-up meeting
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390291/implementing-kanban.png)
- What did I do yesterday that helped our team meet the sprint goal?
- What will I do today to help our team meet the sprint goal?
- Do I see any impediments that prevent me from meeting the sprint goal?
How do we define
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390265/done.png)
?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390321/definition-of-almost-done.jpg)
Step 4: retrospective
- Define what was achieved.
- Find opportunities for improvements.
- Add/remove tasks to the backlog
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390252/Sprint_Retrospective.png)
Keep
Iterating
![](https://s3.amazonaws.com/media-p.slid.es/uploads/430442/images/3390308/bad-agile.png)
Agile for roboticists
By Davide Faconti
Agile for roboticists
- 669