J. B. Rainsberger on "Unlocking the Awesome Power of Refactoring"


Details
Welcome back to JC-JUG! Our December speaker — virtually, of course — will be J. B. Rainsberger. J. B. (@jbrains, https://www.jbrains.ca) helps software companies better satisfy their customers and the business that they support. When allowed by international public health authorities, he wanders central Europe once per year sharing what he's learned about programming, managing his workload, and designing his lifestyle. The rest of the time, he helps mostly programmers mostly do good work mostly with less stress. Not only does he consult with and train for companies, he also provides personalized one-on-one coaching and online training through http://online-training.jbrains.ca. He lives in Atlantic Canada with his wife, Sarah, from whom he is learning about modern Javascript, how to write code within the constraints of a Chromebook, and the differences between Flexbox and CSS Grid.
J. B. will be presenting "Unlocking the Awesome Power of Refactoring".
Evolutionary design, and in particular refactoring, has the power to drastically improve the moment-to-moment work of programmers. Employers are interested in delivering work sooner, over-investing less often in up-front design, wasting less time yelling about design decisions in meetings, and hearing fewer rationalizations from programmers about why it takes so long to get anything done. Programmers often care about those things, too, but I care even more about helping them do their work with less stress: more confidence about where the design is heading, that they can adapt the design to changes in requirements, that they can experiment freely without committing "forever" to every design decision, and recovering more easily when one of their colleagues insists on pushing a bad idea only to realize later what a bad idea it was. Reducing the cost of changing our minds frees us up and generates better results. Everyone wins.
Eventually.
Many programmers get stuck when they try to learn evolutionary design, particularly the refactoring part of it. It never seems to get easier, it never seems to go faster, and so it always seems safer to rip things apart and write them again. If you or someone you know feels stuck like this, then let's talk about why that happens and what to do about it. I'm pretty sure that will also provide a nice starting point for larger discussions about our work as programmers, how evolutionary design (TDD, refactoring) fits in, and anything else that we feel vaguely interested in talking about. My brain will be open.


J. B. Rainsberger on "Unlocking the Awesome Power of Refactoring"