Helping Geeks Produce for Over 40 Years.
My mission is to help people learn how to embrace change and harvest its value. Here you will find hundreds of free articles and videos covering software topics ranging from highly technical to broadly philosophical.
AND If you’re interested in digging deeper into how to lead and affect lasting change in your workplace, click the button below to book private or group Coaching Sessions with me over Zoom.
Today I want to answer a question that, honestly, almost no one ever asks. Why are we changing frames, instead of getting rid of them altogether? Talking about change in the geek trades is a joy for me, but I’m even more interested in seeing change out in the world. Please think outside the monitor. Black Lives Matter. Why are we only changing frames, and not breaking them, destroying them, ridding ourselves of them? First, lemme answer the question. Then,
We started with the concept of the mental frame, a comparatively rigid & invisible construct which structures and guides nearly all our behaviors. Today, let’s take up the triad of powerful forces that we can use to change frames: community, narrative, and experience. https://www.geepawhill.org/2023/01/20/changing-the-frame/ As ever with me, though considering change in the geek trades is a pleasure, it is not the main story. I remind you that we need change-in-the-world at least as much as we do change-in-the-code or
Here’s another technique card from my seminar, “Leading Technical Change”. We first get into midwifing change precisely because we want it to be smoother, easier, and faster. But sometimes, a coach needs not to rush a decision through, but to slow it down. It’s so exciting when our proposed change starts to catch fire, especially when major influencers in our team suddenly “get it”, and want the whole team doing it. “Winning.” And it is winning. But when you start
If we’re going to enable and support change, we’re going to fail, more often than we succeed, and we want to bake that idea in, early on, lest we fail both more often, and potentially more disastrously. Here’s some thoughts around this NOT DEPRESSING topic. 🙂 The weirdest thing about all this: it’s actually rather hard to tell when you’ve failed vs succeeded, working as midwife to change. I’ve had what I thought were successes backfire horribly, inadvertently leading teams
Can we be honest? If we’re going to be successful change midwives, honesty is very important. In this technique card from Leading Technical Change, I talk about some of the ins & outs of this complicated topic. The first point is urgent: Being honest means believing everything you say, not saying everything you believe. Honesty is really important, but people quite often over-share in the name of pursuing honesty. Every healthy person, for instance, has moments of extreme negativity. Our
I was gratified by the response to my first "detail" article. But I did note that many persons praised my article for its commitment to the long game. Framing the commitment, for a geek, to detail, as a long game, seems right, sounds right, cuz after all, we only ever care about quality in the long game. And this is why y’all can’t convince anyone to do this or think this or feel this. When does a bad variable name
The people who hire me ask me to help their teams make changes. Most of the time, my first step is to see how I can slash those teams’ load. Here’s a technique card from my seminar, “Leading Technical Change” Raw text of a technique card: Wait, what? First thing I do To me, this is dreadfully obvious, but for a lot of folks seeking change, it comes as a completely shocking idea. The weirdest part, though, is that it
Detail: The thing that strikes me over and over again, in my own work style, in my Friday group’s analytics, in Ron’s long-running Kotlin and short-running Gilded Rose series, is how much attention high-skill geeks pay to some of the smallest details in the code. An example. I was doing Gilded Rose the other day, first time in years, and we start with the ugly method, which we’re asked to add a feature to, following certain constraint rules to make
Joy project: Today’s a comparatively light work day, so I’m gonna lay out what I’m actually trying to do with this project. The source, btw, is at: GitHub – GeePawHill/fgno-plotter Playtime project for the fgno meetup. Contribute to GeePawHill/fgno-plotter development by creating an account on GitHub. Feel free to poke around. There are a bunch of simultaneous missions going on with fgno-plotter, which is why it’s a joy and learning project. "fgno", btw, is an abbreviation of "Friday Geek’s Night
TDD Pro-Tip: I advocate against automated macro-tests — those whose base is entire running programs –, as their cost is high and their benefit is doubtful. I very rarely write them. There is a bewildering variety of terminology out there around what I’m calling macro-tests, so let’s poke around a little. The central idea of "macro-test" is that we write code that launches an entire subject program and probes its behavior "from the outside". There are often multiple programs in
I spoze the historic and ongoing inability/unwillingness of the software trade to grasp and adopt test-driven development (TDD) is one of the most frustrating & demoralizing events of my forty-two years as a professional geek. I believe there are several related factors in play, ranging in abstraction level from pressures of global ieconmics to mistakes in local human interaction. Studying this large-scale failure, even while having some small-scale successes, underlies much of my work on change. Because, while the overall