Episode 145: Working Effectively with (Legacy) Code with Michael Feathers

Craig is in Atlanta at Agile 2016 and catches up with Michael Feathers, author of “Working Effectively with Legacy Code” and they talk about the following:

  • Working Effectively with Legacy Code originally started as a book about Test First Programming but morphed into a book about the techniques for refactoring code in legacy systems
  • The Pinned Progress Curve – for many people there is no incentive to change so the mean gets larger between the status quo and good practices
  • Agile Alliance Deliver:Agile conference
  • Organisations that have technical founders have a very different character to their work internally, need to make knowledge of the quality of software more pervasive – the business need to understand more about the technical side, and the developers need to understand more about the business
  • Code that has excessive error handling typically has other design problems – benefit in thinking about whether certain things should be treated as errors or not
  • Entropy happens in all systems, including code, so technical debt is not a surprise, need to make the case for hygiene, putting a dollar amount on technical debt does not add much value
  • Use low impact probing to determine whether code is dead
  • Potsel’s Law – an implementation should be conservative in its sending behaviour, and liberal in its receiving behaviour
  • State of quality is improving and there is more recognition to build quality in
  • Property based testing is becoming more prevalent as we move from object oriented to functional languages
  • Holacracy was designed by a software person, Sociocracy talks about applying democratic principles to governance, these are all interesting experiments
  • It can be hard to recognise if something is intrinsically difficult or not something you are familiar with
  • We weren’t really battling waterfall, it was the lack of any process at all…

TheAgileRevolution-145 (33 minutes)