RubyConf Mini 2022 presentation by Alan Ridlehoover & Fito von Zastrow
Abstract
Mechanical coffee machines are amazing! You drop in a coin, listen for the clink, make a selection, and the machine springs to life, hissing, clicking, and whirring. Then the complex mechanical ballet ends, splashing that glorious, aromatic liquid into the cup. Ah! C’est magnifique!
There’s just one problem. Our customers also want soup! And, our machine is not extensible. So, we have a choice: we can add to the complexity of our machine by jamming in a new dispenser with each new request; or, we can pause to make our machine more extensible before development slows to a halt.
Pitch
We contend that:
* Complex code is expensive and risky to change.
* Most programmers are unaware of how their changes increase complexity over time.
* Most programmers add code by mimicking existing code (i.e. complex code begets more complex code).
* Eventually, ignored complexity leads to programmer pain and frustration.
* Without understanding how they arrived at this place, programmers tend to blame their tools, including Ruby.
This talk helps audience members fall in love with Ruby again by showing:
* How complexity sneaks into a code base
* How to recognize that complexity before it gets painful
* How to refactor code away from that pain and frustration