In Theory and In Practice

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.

Part 1:

  • 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

Part 2:

  • 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

Part 3:

  • 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)
Part 4:
  • Re-factoring is important!
  • Architecture on an Agile project
  • OMA – buildings are designed incrementally and iteratively
  • Documentation
  • 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?

Thanks to Zuhlke Engineering for hosting the event, and to Christian Heldstab for recording the talk.

Feedback in the comments would be appreciated…


1 thought on “In Theory and In Practice

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s