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)