17. Scapegoats For A Rewrite
Technology Leadership Podcast Review - En podcast af Keith McDonald: tech blogger and podcaster
Dave Thomas and Andy Hunt on The Changelog, Stacey Barr on Coaching For Leaders, Nic Sementa on Drunken PM, Christopher Avery on Agile Uprising, and Steve Poling on Maintainable. I’d love for you to email me with any comments about the show or any suggestions for podcasts I might want to feature. Email [email protected]. This episode covers the five podcast episodes I found most interesting and wanted to share links to during the two week period starting August 5, 2019. These podcast episodes may have been released much earlier, but this was the fortnight when I started sharing links to them to my social network followers. DAVE THOMAS AND ANDY HUNT ON THE CHANGELOG The Changelog podcast featured Dave Thomas and Andy Hunt with host Adam Stacoviak. Dave and Andy were on the show to talk about the 20th anniversary of the book The Pragmatic Programmer and its new edition. Adam asked how the book remains relevant given the short half-lives of most technology books. Dave clarified that the book is not really a technology book but a book about people and people haven’t changed that much. The biggest updates to the book were not due to changes in technology but due to changes in the authors’ experience and their discovery of better ways of explaining things. One example was the DRY principle that has come to mean, “Don’t cut and paste,” while its original meaning was not about code at all but had to do with knowledge. Andy was surprised upon revising the book to realize how much the world has changed in twenty years. Twenty years ago, he says, AOL was carpet-bombing people with CDs, very few of us had to worry about security as it was a struggle enough to get your code to work at all, and unit testing wasn’t commonly practiced. Andy said that they originally had intended to write a little whitepaper describing what they observed going from client to client and seeing the same classes of mistakes over and over. They came up with a set of stories, anecdotes, and metaphors to explain the concepts like “tracer bullet”. They intended to hand out this little whitepaper at clients but it just kept growing until it was a book. Adam asked what has changed in the last twenty years. Andy noticed on reviewing that he found the book more object-oriented than he thought it was. Dave says that people haven’t changed, but people’s sensibilities have: with the pervasive impact of computer technology on our lives, the responsibility being put on developers to behave ethically has increased dramatically. In his experience, twenty years ago, you wrote boring code that did some business function. Today, we’re writing code that can change people’s lives. We need to think a lot harder about the impact of the code we write. Adam asked how we can institutionalize the passing on of knowledge by those who came before. Andy wishes that academia had a greater interest in teaching the history of computing. Dave says this doesn’t need to be a separate class. If you want to become an author, you do a lot of reading. Instead of reading books, he says, developers should be reading code and reading a great variety of code. Teaching, he says, should involve learning how people did things in the past, reading their code, and then discussing why they made the choices they did. He gave the example of the C increment and decrement operators. In Bell Labs, the machines had seven addressing modes and two of them were pre- and post- increment address dereference. So the C operators mapped directly to the hardware. Another example is the famous paper, “GOTO Considered Harmful.” Entire languages have been written without GOTO based on the title of that paper. The original letter that the paper came from did not even have this title. The letter was about program-proving and the editors gave a “sexier” title. We carry around these things we have received based on headlines like “GOTO Considered Harmful” and we don’t even know why we do it. Adam asked how the next generation is going to gain a reverence for computing history. Andy suggested that mentors could instill this. Dave pointed out that we now live in an age when you can experience the history first hand. Today, you can emulate a PDP-11/70 in a browser. If you want to look at what Turing did at Bletchley Park, it’s there and you can play with it, but people don’t. Dave continued on to compare software development to jazz and talked about the importance of knowing the theory Apple Podcasts link: https://podcasts.apple.com/ca/podcast/the-pragmatic-programmers/id341623264?i=1000444208385 Website link: https://changelog.com/podcast/352 STACEY BARR ON COACHING FOR LEADERS The Coaching For Leaders podcast featured Stacey Barr with host Dave Stachowiak. Stacey spoke about performance measurement in business and I wish more people understood the things she had to say. Stacey says that humans are not particularly good at judging how things change through time, but performance metrics can do that for us. Performance metric numbers also help us make comparisons a lot more reliably than we can without them. Measurement is about filling the gap in human perception so that we can know with a lot more certainty what’s really happening with the results we’re trying to achieve in our business. Dave asked what kinds of mistakes people make around performance measurement. Stacey says that there are a few and the first place you’ll see them is in the KPI column of a corporate plan. A common one is initiatives. An initiative usually describes an action or a project that has been chosen to improve performance. For example, if your goal is to improve customer loyalty, you may have an initiative to implement a customer relationship management system. That’s not a measure. An initiative is not evidence that you’ve changed anything for the better. Next, she talked about milestones. She says that a milestone is about getting something done by a particular point in time. A milestone might be, “We want to meet the medical council requirements for re-accreditation by June of next year.” These are commonly mistaken for performance measures but she asks, “Would the achievement of this milestone really change anything?” A whole lot of things may have gotten in the way that made that date no longer an appropriate date or that action no longer an appropriate action. A milestone as performance measure focuses us too much on ticking boxes and expending effort, and that takes us away from what we really need to focus on, which is to influence something to make it better. When a milestone is the performance measure, we’re not checking whether the activities are the right activities or the best activities. She then spoke about customer surveys. A common problem she says is that many will create a customer survey without thinking about the performance measures they need that survey to supply the data for. She also talked about “management speak” or “business jargon” and mentioned Don Watson’s book Death Sentences (https://www.amazon.com/Death-Sentences-Management-Speak-Strangling-Language/dp/1592401406) where he calls these words “weasel words.” She says these words sound important, sophisticated, and meaningful, but they are empty of meaning. She went on to give examples: holistic, effective, efficient, accountable, reliable, quality, impact, and sustainability. When you see these weasel words in the names of measures, you’ve identified a mistake because people won’t know what the weasel word truly means, they won’t know how to quantify it, and they won’t know what data to go after. She also made a great point about the value of ensuring that we are measuring certain metrics frequently enough. Measuring frequently enough is important because it allows us to distinguish between a pattern of natural variability and changes to that pattern. Finally, she told a story about presenting some research she was proud of to a committee and not getting the result she expected. I found this story extremely relatable. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/419-performance-measurement-that-gets-results-stacey/id458827716?i=1000444467235 Website link: https://coachingforleaders.com/podcast/performance-measurement-results-stacey-barr/ NIC SEMENTA ON DRUNKEN PM The Drunken PM podcast featured Nic Sementa with host Dave Prior. Nic is an Agilist whose expertise is in dynamic funnel development (understanding the pieces that make up marketing and sales funnels) and the psychology of the sale. He and his business partner speak about Agile marketing, the conscious communication code, and personal agility. Dave asked Nic how he learned about the language of persuasion. Nic says he’s a firm believer in building on your strengths and considers talking one of his strengths and says his talking skills have gotten him out of fist fights. He talked about subtly taking control of conversation using “pace, pace, lead.” He says we’re hardwired to either run away or attack back when conflict starts, but what you should do instead is run with your opponent. He says it is like a conversational rope-a-dope. You agree with them, you gain control of the conversation by matching the other person’s speed, and then you lead. If they come in fast and fired up, you agree with them while also being fast and fired up, then once they start agreeing with you, you slow down and lead the pace of the conversation. Dave asked how you avoid getting swept up in your own flight-or-fight reflex. Nic says you have to not take anything personally, not even a personal attack. As soon as you take something personally, you lose your ability to act. Instead, he says, you want to suck all the emotions out of the conversation and deal only with objectivity. He says that once you take away the emotions most people become quite rational. You’re not trying to take control of the other person, just their emotions. Dave asked Nic how he developed these skills and Nic explained that it was part of his upbringing to need to develop these skills. Nic described his childhood family life as a place where “Easter egg hunts can turn into knife fights,” so dealing with conflict came naturally to him. Dave asked what he can teach the rest of us who don’t have as much experience with conflict. He says you have to remind yourself that you are not a moral authority and therefore your opinion isn’t what matters; the objective situation is what matters. We’re trained that when something happens, we assume that that something is happening to us. For example, when a TV is louder than we like, we assume that the TV is too loud. He says we should remind ourselves we are not a moral authority with the simple phrase, “than I would like.” For example, when you’re perceiving a conflict and you are thinking, “Man, this guy is angry and he is loud and the situation is horrible,” instead think, “This guy is angrier than I would like, and louder than I would like, and the situation is worse than I would like, but what actually is going on?” Dave asked about non-violent communication. Nic described it as coming from the writings of Dr. Marshall Rosenberg about people’s natural tendency to speak in a way that implies a high level of moral authority, disconnects them from what is actually going on, and puts them in a position where they are judging others on a consistent basis and taking everything personally. Dr. Rosenberg wrote a curriculum to give people tools to combat this tendency. Nic used these tools to deal with the complicated situations in his personal and professional life without changing his own personality. He says you don’t have to be an nth-degree yogi who doesn’t eat dairy, meat, or sugar and meditates fourteen hours a day to use non-violent communication. You can be a hard-nosed sales dog and use the same tools without dropping your tone to a position of weakness. Nic says his own epiphany moment for non-violent communication was realizing that it was designed to give you power with people instead of power over people. This connects strongly with the notion of deconstructive criticism in How The Way We Talk Can Change The Way We Work (https://www.amazon.com/How-Talk-Change-Work-Transformation/dp/078796378X) by Kegan and Lahey. Dave asked Nic how he avoids thinking that he knows what people need. Nic says being objective helps and so does thinking, “Just because you can doesn’t mean you should.” Nic related a story of a business partner that used to ask Nic everyday, “What is one less thing we could do and still make the same money?” Most people are focused instead on doing more, Nic says, because most people forget the Pareto Principle or 80/20 rule. They also forget the Peter Principle and put themselves above their level of competency. They ended the conversation with Dave asking Nic for some final tips on communication. Nic says that being able to truly communicate well with your team comes from you understanding that, in addition to the conversations that you have with everybody else, you have another that happens with yourself. One of the most important benefits of telling the people around you why you care about them, why you appreciate them, and what their strengths are, is that, by doing so, you remind yourself. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/the-language-of-persuasion-w-nic-sementa/id1121124593?i=1000443404883 SoundCloud link: https://soundcloud.com/drunkenpmradio/the-language-of-persuasion-w-nic-sementa CHRISTOPHER AVERY ON AGILE UPRISING The Agile Uprising podcast featured Christopher Avery with host Brad Stokes. Christopher says that he has been fascinated with the psychology of cause and effect for the past thirty years. That interest produced a pattern called the Responsibility Process that is about processing thoughts about taking and avoiding ownership. We tend to like owning the stuff that we think we caused intentionally and is good and we tend to not like owning the stuff that we don’t like and we tend to think such things were caused, not by us, but by something external. Christopher says that the Responsibility Process is valuable for anyone who wants to live a happier life, be more emotionally free, experience the power of real choices in every situation, and be more effective and valuable. Christopher asks us to imagine a stack of words and phrases starting at the bottom with the phrase “lay blame,” then “justify,” “shame,” “obligation,” and finally, “responsibility.” Every time something goes wrong, even if you are just tripping over a crack in the sidewalk, it produces a little bit of angst or anxiety and our mind tries to help us cope by starting at the bottom of the stack and asking, “Who did this to me? Who caused this? Who put the crack in the sidewalk?” The lay blame state has its own cause-effect logic. It makes us think that we are experiencing the effect and the cause is coming from outside of us. For the anxiety to go away, somebody else has to change. By coincidence, this is practically the same topic that Nic Sementa delved into in the Drunken PM podcast I referenced earlier. If we recognize that we are in the lay blame state, we may graduate to the justify state. If we transcend that state, we graduate to the shame state where we don’t blame somebody else but blame ourselves. This state is full of self-punishment and self-loathing. If we realize that it is a choice we are making to stay in the shame state, we can graduate to the state of obligation. This is the state of feeling burdened in a process, a flow, or a promise. It is only when we refuse to feel trapped that we can enter the state of responsibility, where you are owning your ability and power to create, choose, and attract. Christopher says the state of responsibility is always accessible to us. If we practice the responsibility process, we can get to the responsibility state more quickly. Brad pointed out that the obligation state could easily be confused with the responsibility state. Christopher says this is exactly right and before we had the notion of these various states, the word responsibility was used to represent all of them. Christopher says that, for much of our lives, authorities have been reinforcing the idea that we should beat ourselves up when we make a mistake (shame) and do what we’re “supposed” to do even if we despise it (obligation). In obligation, we build up resentment against who or what has us trapped. We resent the mortgage, the kids, the needy elderly parents, and the boss. If you have been making decisions in your life for more than a few years, he says, then you are the architect of your own life and it is a product of your choices. From there Christopher goes on to say that your life is a product of your filters which may be caused by your environment, parents, church, schools, and neighborhoods. He then asks, “Do you want to defend those filters or examine them?” I see another connection here to the work of Robert Kegan and Lisa Lahey, this time in their book Immunity To Change (https://www.amazon.com/Immunity-Change-Potential-Organization-Leadership/dp/1422117367), which talks about examining the hidden assumptions that prevent us from changing things within ourselves even when we desperately want to change them. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/the-responsibility-process-with-christopher-avery/id1163230424?i=1000443858617 Website link: http://agileuprising.libsyn.com/the-responsibility-process-with-christopher-avery STEVE POLING ON MAINTAINABLE The Maintainable podcast featuring Steve Poling with host Robby Russel. Steve and Robby talked about technical debt. Steve says he’s been on projects where the tech debt got so bad that they engaged in rewrites, which he calls declaring bankruptcy. Steve suggests that the enduring popularity of technical debt as a metaphor is because it works to explain the tax on engineering velocity in terms that business people understand. It accumulates, it gets worse, and we want to pay it down. Robby asked about what processes Steve has used to keep on top of tech debt. Steve started by describing the anti-pattern from the quote above, which reminds me of the Joel Spolsky essay, Things You Should Never Do, Part 1, in which Spolsky spoke about the downsides of rewriting from scratch. Steve says he drank the test-driven development Kool-aid and he now believes that if you do the red-green-refactor of TDD, you can prevent the accumulation of tech debt. Without the refactor step, however, technical debt will continue to accumulate. Apple Podcasts link: https://podcasts.apple.com/ca/podcast/steve-poling-the-real-enemy-is-murphy/id1459893010?i=1000444476559 Website link: https://maintainable.fm/episodes/steve-poling-the-real-enemy-is-murphy-vSKLVY5H LINKS Ask questions, make comments, and let your voice be heard by emailing [email protected]. Twitter: https://twitter.com/thekguy LinkedIn: https://www.linkedin.com/in/keithmmcdonald/ Facebook: https://www.facebook.com/thekguypage Instagram: https://www.instagram.com/the_k_guy/ YouTube: https://www.youtube.com/c/TheKGuy Website: https://www.thekguy.com/ Intro/outro music: "waste time" by Vincent Augustus