Jan 18 2011

Episode 104: Software Development Philosophies Part 2


Part 2 of our software development philosophy showdown!

News/Follow-Ups – 01:12

Geek Tools – 11:56

Webapps – 16:28

Software Development Philosophies Part 2 – 23:31

  • Extreme Programming
    • Planning
      • User stories are written
      • Project is divided into iterations
    • Managing
      • Open workspace
      • Daily stand-up meeting
      • People move around
    • Designing
      • Simplicity
      • Refactor whenever and wherever possible
    • Coding
      • Test first or TDD
      • All code is pair programmed
      • Integrate often (continuous integration)
    • Testing
      • All code must have unit tests
      • All code must pass all tests before being released
      • When a bug is found tests are created
  • Kanban
    • Kanban, a concept related to lean and just-in-time (JIT) production (Toyota)
      • Been around for 50 years and proven to be successful
    • Think of it as flow without iterations with a focus on reducing work in progress
    • Often seen as a simpler version of Scrum (development).
    • That said it can be used with Scrum, XP, Agile, Waterfall or other methods
    • Make work visible
      • Literally be able to see the work and what stage it is in
    • Limit work in progress
      • Promotes quality, focus, and finishing
      • (Something mark doesn’t do well)
      • To help with constant improvement and flow Kanban strives to reduce cycle time
        • Two ways to reduce cycle time.
          • Limit work in progress
          • Develop faster (much harder)
      • Limiting the WIP however means that we need to get the most important things done first
      • Limiting WIP helps to expose stalled work
        • Developers can’t work on another issue until a space is freed on the board which forces the developers to “pitch-in” and help finish the work (keyword finish)
    • Help work to flow
    • Slogans
      • Slow down to speed up – Littles law
      • Stop starting and start finishing