Transcript
Adam Gordon Bell (0:00)
Hi, this is co Recursive and I'm Adam Gordon Bell. Today we're taking a look into the world of software design and architecture. Do you remember the swine flu? H1N1 Back during that time around, like 2009ish, I was working at a software company. I was sitting at my desk enclosed by this blue pastel cubicle walls in a large gymnasium like Open Office when one of the more senior devs, Cedric, comes over to the area and he has kind of a mischievous smile, which isn't good. And he says, I need to show you something. He asked me to pull up a branch in TFS and find a specific VB script file. VB script script being, you know, Microsoft's answer to PHP. Go to line 307, he says. And you know, on line 307 it says something like to do figure out the logic for this part. It's not even a code comment, it's just plain text right on the page. And it broke the page. The page wouldn't render. And yeah, that was my handiwork. And it was in a branch that we were going to release. Cedric thought it was kind of funny. You see mistakes like that happened more than they should have back then and that was such a minor one that it was humorous. This was the chaotic world we lived in. We had no code reviews. We were all moving super fast. We had a shared branch that we would use per release, everybody pushing code to it and then testing it and releasing it. It was a digital wild west where we moved fast, but it was a wonderful that anything worked at all. Later I joined a company with a code review process and man, that was a wake up call. I hated it at first. I know what I'm doing, just let me do it. But after a little bit I saw the value. The worst code issues are never these small comments or little bugs, right? They're the features that are slightly misdesigned that you end up stuck with for years. And if you can catch some of those in code review, if there's a forcing function for people to discuss how it's working, tricky conversations can happen. We can discuss the trade offs and the software improves and the team does as well. Hopefully that process is kind of what today's about.
Greg Wilson (2:35)
All right, one last test. Voice is coming through.
Adam Gordon Bell (2:39)
Yeah, sounds good.
Greg Wilson (2:40)
Welcome to wkfi. Going to spin some old vinyl for you this evening.
Adam Gordon Bell (2:45)
Ladies and gentlemen, that's Greg Wilson and he's not a dj. He's an accomplished software developer and teacher. He's Taught scientist, software engineering. He's authored many influential books, one of them being Beautiful, a pioneering work born from his frustration with the field. It's sort of what we're talking about today because Greg's been on a crusade to elevate software design from the mire of mindless feature building that I was doing back in swine flu days to a forum as respected and revered as architecture itself. You see, once you start reviewing code, talking about potential solutions, and as soon as it's beyond the level of like linting and code formatting, you need a language for discussing approaches. And giving us a language and a repertoire of software design has been one of Greg's goals. But before we dive into Greg's approach to software design and software architecture, let's rewind. Let's go back to the 80s, when Greg was an undergrad at Queen's University and he didn't want to be a programmer at all.
