We recently completed a small but interesting project at work. The team consisted of Tim Weeks, Lee Walton and I played a supporting role. We shared the lessons learned in an experience report at the Agile Practitioners group. The talk was filmed and can be seen below.
On this project, the developers tried a number of Agile and XP practices. BDD and Pair Programming were tried for the first time, in the video they explain what this was like.
In addition to the Agile aspects, the talk shows what Lean (kanban) principles we followed e.g. making decisions at the last responsible moment.
There is a large section on using code reviews and code metrics to help improve code quality.
I got off to a shaky start, but things seemed to improve as the video goes on.
- Overview of the project
- Developers discuss how they felt on the project
- Discussion on pair programming for the first time
- The importance of putting people first
- NUMMI case study (GM and Toyota)
- Start of project – beginning with the end in mind
- Re-writing stories, to remove implementation details
- Simplicity – the art of not doing work
- Cost of defects
- Concurrent development
- Making decisions at the last responsible moment
- Burn down charts
- Cumulative flow diagram
- Walking skeleton or tracer bullet
- Lean thinking – limiting work in process
- Pull System
- Dealing with blocked stories
- Code Reviews (brief discussion)
- Relationship with PO – developers having access to users
- Task switching – cost of task switching on projects
- Pair programming and the ‘cardboard developer’
- Code Review – full section
- Code metrics e.g. cyclomatic complexity
- Importance of code quality
- Why do evelopers write better code at home?
- What do developers spend their time on at work?
- Check in frequency
- TDD and BDD
- Discussion on automated acceptance tests (cucumber, specflow etc)
- Re-factoring is important!
- Architecture on an Agile project
- OMA – buildings are designed incrementally and iteratively
- Scrum tools – use the wall
- Was this a waterfall project?
- Was it an agile projects?
- What could we have done better?
- Was this project a success?
Feedback in the comments would be appreciated…