I’m gonna level with you, I have no idea what’s in this episode. I’ll give it another listen soon though and write some show notes! <3 Pat
Episode 15: Michael Feathers chats about refactoring in the fourth dimension, seducing end users, and letting code die1 comment
David breaks into Agile 2011 and we manage to record a show with Michael Feathers – Chief Scientist @ Obtiva, “Working Effectively with Legacy Code” author, and just a guy who thought he was going to write a book so people would solve the problems themselves. Instead they all wanted him to work for them.
Michael talks to us about refactoring in the fourth dimension and scaling humans, a few topics that have been on his mind at Agile 2011. He wants to know what we can learn about how software teams work and how a code base got to be a certain way by analzying version control history.
What are the universal truths of software development? There may not be many, but Dave explains why you should never buy software written on a Thursday.
Assorted topics for your ADDed pleasure:
- economics vs emotions in your choice of technical practices
- how monkey-patching freezes a software system in time
- the code ecosystem
- seducing end-users!
- when you just need to take the code out back and shoot it
- what has and hasn’t changed in software in the past decade
Michael is currently working on a new book called “Brutal Refactoring,” and has published a few articles that we talked about in this episode:
BACK ONCE AGAIN WITH THE ILL BEHAVIOR!!!
Pat and Dave have been heads-down on a critical project and you know what? You don’t want to hear our excuse. We don’t have one. We’re sorry. And WE’RE BACK.
In today’s hour-long episode, Dave lets Pat talk for nearly nine minutes—don’t worry, he doesn’t let him do it all at once—starting with catching up socially and then moving on to dealing with legacy data, data migrations, and the difference between using a Document-Oriented Database and simply using a Document-Oriented Strategy. Today we talk about:
- 0:00: Best Opening Credits Ever
- 1:12: On the passing of Steve Jobs, Dennis Ritchie and John McCarthy—why Dave was more upset about Dennis Ritchie than Steve Jobs, and why we grieve for celebrities. (EDIT: My apologies, I failed to give credit to Brandon Hays (@tehviking) for the “celebrity investiture” idea. —Dave)
- 9:15: Getting out of debt
- 11:30: Postcards from the Edge of the adoption process in America—and we mean “Adoption” adoption, as in the process of assuming the legal guardianship of a human being
- 15:00: Legacy Databases: if your legacy data is completely messed up, consider looking at (and helping out with) Migratrix
- 28:00: Agile database refactoring and testing
- 41:20: NoSQL in SQL: Using a Document-oriented strategy in a SQL database
- 45:00: Why you should check out Friendly ORM
- 56:45: Hermeneutics Loves Documents, Formalism Loves SQL
- 1:02:50: Sneak Peek at Upcoming Episodes—Michael Feathers, we owe you a HUGE apology for taking so long getting your interview up. It’s NEXT!
A Note on Call Quality: Pat and I take redundant steps to make sure the call quality stays high. Unfortunately in this call we experienced redundant failures. Pat’s side didn’t record at all, so we had to rely on my recording, and halfway through the call Skype throttled the bandwidth so hard that Pat sort of becomes an impressionist painting with garbled audio. We apologize for the inconvenience and are looking into new recording solutions to avoid this in the future.
In this latest ADDcast, I (Pat) sit down with JB Rainsberger at his home in Prince Edward Island, Canada. We riff on productivity, financial independence, and lifestyle design. JB describes himself as “retired, but not rich.” Among the insights he shares in this episode:
- How to truly know that you’re getting better at something
- The formula for creating positive change
- How to get into Flow in three minutes
- Focusing your energy on the things you value most
- How to protect your time
Awesome quote: “The ultimate delegation is to /dev/null – it has infinite capacity and zero interference.”
If you like what you hear in this episode, JB runs a workshop called Free Your Mind To Do Great Work where he goes into all of these topics in great detail.
It’s our dozenth ADDcast! Avdi Grimm dials in via the Windows virtual machine on his Linux box, making for a nifty stop motion animation effect. Avdi is a busy guy, juggling a consulting business, the conference circuit, and his recently released ebook entitled Exceptional Ruby. He shares his thoughts on how to be a good teammate and facilitator on a remote team, how he managed to write a book and still feed his four kids, and sets the record straight on the Law of Demeter. Dave uses code examples that might land him a coffee date with some FBI agents and demystifies chained enumerations. We also talk about when to refactor and how far to go, and wrap up with a quick discussion on becoming a better programmer (or anything, really) through experimentation and self-reflection.
(and no, Pat has no idea how to make the video file sizes smaller. Sorry about that)
Evan Light joins us in the 11th episode of ADDcasts. We kick off the show with a discussion about TDD, where Evan tells us that TDD is more than about testing, code quality, and design. He shares some tips on how to use TDD for requirements gathering and analysis. Then, Evan being the freelancing conversation magnet that he is, we turn to the question of how to make sure you get paid for the work that you do. Along the way, Dave rewrites Pat’s lame joke, Evan makes hilarious faces, and we peer into the minds of cats and dogs.
Very Important Hyperlinks:
* Coulda, Evan’s Given-When-Then extension to Test::Unit. For BDDers who think Ruby is just fine, thank you very much
* Evan’s blog and twitter
* Ruby DCamp – a FREE “hippy unconference” for hackers, held in the mountains of Virginia
* Pat’s bit of code that generates an ActiveModel implementation from shoulda-style validations
Dave is back from the dead and Pat is just regular back! And we made an episode of ADDcasts!
In this show we talk about self improvement, Dave’s Smalltalk Experiment, geeking out about music, being crazy in specific ways, and probably some other things Dave would mention here if he weren’t the specific kind of crazy that makes him end long lists with rambling passages of introspection about his list-making skills.
Today’s ADDcast begins with this outrageous claim “C++ is the best object-oriented language ever, given its design philosophy.” and just gets weirder from there. Pat and I have both been reading Object Thinking by David West and we spend a good time chatting about object-oriented analysis, design and programming in terms of formalist philosophy. We also talk about something wonderful with a horrible name: hermeneutics. Along the way we discuss mental health, Attention Deficit Disorder (the real actual thing), and the design of beer-management systems.
“What are the two hardest problems in computer science?” – Pat asked Dave this question, but forgot to deliver the punchline after Dave proclaimed, “Getting dates with women, and I’m going with that twice.” Leave a comment below, and we’ll send our favorite a copy of Exceptional Ruby by Avdi Grimm. The winner will be announced in the next episode.
- Get your awesome MINASWAN shirt and more sweet geek gear from RubyThreads
- Here is the music box in the opening credits.
- Object Thinking by David West – Pat & David have both been reading this book, and we discuss thoughts from it at various points throughout the podcast. (20:40)
- Dave boldly stated: “C++ is the best object-oriented programming language ever, given its philosophy.” A minute later he was explaining how folks with ADD have hunting instincts in a world dominated by farming behavior. He cites ADD: A Different Perception as a useful resource for understanding ADD. (21:50)
- Driven to Distraction – The Bible of ADD books, with an important but boring section that even non-ADD folks find dry. (25:21)
- We pontificate about how Erlang’s messaging patterns are OOish in nature. Pat brings up Alan Kay’s mailing list post stating “the big idea is messaging.” (32:00)
- Streamlined Object Modeling – Pat cites this book as a good reference for collaboration patterns, and how it demonstrates the “flipped” nature of object-oriented design. (53:30)
- Dave wonders whether Smalltalk Best Practice Patterns it’s relevant today. Pat thinks it provides a straightforward, systematic approach to crafting code. (1:01:00)
- Pat points to the C2 wiki page on Defensive Programming during a discussion on validating data. (1:02:15)
- Avdi Grimm’s “Confident Code” talk, and his new book, Exceptional Ruby (1:02:30).