Episode 171 – Beyond Legacy Code with David Bernstein

Craig is at Agile 2017 in Orlando, Florida and speaks with David Bernstein, author of “Beyond Legacy Code“, and they chat about agile technical practices:

  • Agile does have something to with software development
  • Agile 2017 talk “Create Software Quality
  • The real value of Agile is in the technical practices so we can build iteratively, but still very few people practice them
  • The future is already here, but it is not very well evenly distributed – the same applies to Agile
  • Companies are being consumed by their technical debt and they don’t even recognise it
  • What is always cheaper in the virtual domain is building quality
  • Continuous Integration makes the most painful thing in software development (integration) our greatest asset – this in turn gives us feedback
  • We don’t necessarily know there is a better way to do things – but there is a better way to do things
  • We traditionally think of software as a write once event, but it is write many – users want it changed
  • We think procedurally so object oriented code often ends up being procedural with a class statement wrapped around it
  • Test First Development – very few developers know how to write a good test because they haven’t been taught, it was intended to assist with refactoring
  • Studies show about 10% of people follow the Agile technical practices like XP, and only 10% of those are doing it correctly
  • The mindset of testing is different to the mindset of coding and they are mutually exclusive (in the same way we need editors when writing a book)
  • Refactoring is at two levels because we learn in chunks – we need to do while doing test first as well as in the large
  • The Art of Agile Development” – spend 10% of your time refactoring
  • Communication – say what, why and for whom before how – we think in implementation
  • CLEAN code – cohesive, loosely coupled, encapsulated, assertiveness and non-redundant
  • Need to understand what quality means in software
  • Troy Magennis talk “I love the smell of DATA in the morning (Getting started with Agile Data Science)

TheAgileRevolution-171 (34 minutes)

Advertisement

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)

Episode 124: Talking Testing with Anne-Marie Charrett

16069825102_aa54010a22_zCraig is at YOW! Conference and catches up with Anne-Marie Charrett who is well known in the testing community as a trainer, coach and consultant but also for her support of the community:

  • Don Reinertsen talk “Thriving in a Stochastic World
  • Context-Driven Testing
  • Testing is a verb – it’s a doing thing and not an output, but the challenge is you cannot see doing
  • Anne-Marie’s class in Exploratory Testing
  • Where there is risk and failure, there is a job for testing
  • Exploratory testing – the key is feedback and using the learning to feedback into the next test
  • Agile testing – don’t try and test everything and don’t try and automate everything either, rather adopt a risk based approach
  • Unit testing – the usefulness depends on the programmer and the context and figuring out what you are trying to achieve
  • Sydney Testers Meetup
  • Speak Easy – Speak Easy is a voluntary program designed to increase diversity in tech conferences through dedicated conference spots, mentoring and events
  • YOW! WIT Program
  • WorkVentures – training marginalised youth
  • Testing challenges include microservices (the risk of bounded context and breaking things down and missing the whole) and working together as developers and testers
  • James Lewis podcast “Episode 120: Microservices & The Lean Enterprise with James Lewis

TheAgileRevolution-124 (39 minutes)

Episode 83: Making Impacts with Gojko Adzic

GojkoAdzicGojko Adzic “does computers” which means he helps people deliver software and he caught up with Craig on a recent YOW! DepthFirst tour of Australia. Gojko is the author of numerous books including “Bridging The Communication Gap“, “Specification by Example“, “Impact Mapping” and “50 Quick Ideas to Improve Your User Stories“.

  • XP – started with “Extreme Programming Explained” which was really about developers ruling the world – XP is not dead, it won!
  • TDD has crossed the chasm to mainstream
  • Sturgeons Law – 90% of anything is going to be crap
  • Continuous integration and automation has opened up a world of possibilities
  • “Bridging the Communication Gap” – about finding ways to break dysfunctional processes in organisations
  • Agile Testing” by Lisa Crispin and Janet Gregory
  • The most valuable companies in the world are software companies
  • It’s more about the right people being involved rather than narrowly defined roles
  • “Specification by Example” – a collaborative way of coming up with good requirements and tests involving a cross functional team
  • Pschologically people perceive that tests come after development – in that case you have already failed
  • BDD – no canonical definition, would love BDD and SBE to be the same thing
  • “Impact Mapping” – based on a Swedish interaction design process – about setting goals and strageies
  • Impact Mapping uptake outside of IT – Marcus Hammarberg on Doctors in Indonesia and Ahmad Fahmy on helping orphanges in Egypt
  • “50 Quick Ideas To Improve Your User Stories” – a lot more to good user stories than just a template
  • Hamburger Slicing – last resort technique for technical story breakdown to think about options for value
  • Product Management is the big missing piece – teams could benefit from doing this better
  • As an industry we produce too much software – need to change the percentage of software that can achieve something big

TheAgileRevolution-83 (45 minutes)

Episode 38: Coding With Exceptions (The Agile Story)

Mark Derricutt & Craig AspinallThis is a special mashup episode recorded in Auckland, New Zealand. Craig catches up with Mark Derricut from the Illegal Argument podcast and Craig Aspinall from the Coding By Numbers podcast. Not your usual Agile podcast, the discussion starts around the definition of Agile (“crash often, crash regulary”) and trying to define quality and ends up in a chat about wicked problems, devops and software development skillsets.

This episode has been released on the other channels as well (take a listen if you haven’t already)

  • Illegal Argument (Episode 83)
  • Coding By Numbers (Episode 37)

TheAgileRevolution-38 (67 minutes)