Episode 58: Don’t Drink and Podcast!

Beer CheersCraig and Renee are in Sydney and dangerously podcast after Renee’s one (1) drink and Craig’s two (2) drinks. Along the way they fumble over the following topics:

Quotes:

TheAgileRevolution-58 (55 minutes)

2 thoughts on “Episode 58: Don’t Drink and Podcast!

  1. Hi guys. Listener # 2 here. 😉

    A quick point on the emergent design topic: Emergent design is driven by Simple Design (particularly “The Simplest Thing That Can Possibly Work”, “You Ain’t Gonna Need It”, “Don’t Repeat Yourself” and the Single Responsibility Principle), solid testing and “Merciless Refactoring”.

    These practices, when taken together, should result in a lot of relatively small classes, each doing one (sometimes two) things, co-operating together. Like Lego blocks, these pieces can then be re-assembled quickly to address new changes – you may need to take some parts out, and replace others, but the rest of the system should remain intact. It’s essentially allowing micro-design (paying attention to individual classes, ensuring that they aren’t getting bloated) to dominate, whilst validating your design decisions as early and often as possible. Thus, the macro-design “emerges” from the interaction of lots of small micro-design choices.

    Emergent design requires developers to be regularly scanning their work (with an emphasis on the newer stuff, obviously) to detect patterns, followed by refactoring to remove the duplication in those patterns. From this, application architecture will evolve.

    The real test of emergent design is how your design can change to accommodate new or altered requirements – things that you didn’t see coming. Maybe you need to change your persistence backend; maybe you need a mobile client quickly to win a new client; maybe a whole heap of business rules are changing, say due to a regulatory change. If you can make these sort of big changes quickly – in particular, without having to do work not directly related to the change – then you’ve probably doing emergent design right.

    Sure, experience helps with emergent design. What doesn’t it help with? But even relative novices can have success by following the principles behind it – because emergent design is about being able to respond to change, including the things you didn’t see coming. I’d even say that they are _more_ likely to succeed with this approach, due to the focus on validation.

    Also – why does your theme song at the end include the repeated refrain “Going into debt”?

Leave a reply to Craig Smith Cancel reply