Helping Geeks Produce for Over 40 Years.

My mission is to help people learn how to embrace change and harvest its value. That’s why I started the Camerata: a community of like-minded teams and individuals pushing forward the industry of software development. Click the button and discover the benefits of becoming a member today!

Recent Posts

Some TDD History

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

Read More »

On Over-Coding

Let’s talk for a minute about "over-coding". Over-coding, when you’re a TDD’ist, is writing more code than you (intended to) have test to cover. But I will offer a few thoughts on this to non TDD’ers and TDD’ers alike. Many people, pro-TDD and con- both, seem to think of TDD as the name for a collection or rigorous mechanical rules. TDD is a kind of jack-in-the-box, where you sit there and turn the handle, circle circle circle, and out pops

Read More »

Robot Worlds E05: A Making UI!

This entry is part 5 of 5 in the series Robot Worlds

A Making UI We’ve got a very crude skeleton running, let’s get it on the screen, inside a "making app"! If you want to follow along, the repo is at https://github.com/GeePawHill/robot-worlds. Transcript and captions coming soon . . .

Read More »

Ten I-Statements About Change

Here’s ten I-Statements about change, in the geek trades, and beyond. My hope is that it will give you a richer sense of where I’m coming from in my blogs, talks, videos, and courses. Before we begin, though these statements are about the geek trades, I am actually far more concerned with change in the world. We can change this. We’re the only thing that possibly can. Stay safe, stay strong, stay angry, stay kind. Black Lives Matter. A little

Read More »

Trade Collapse Begins?

I’ve oft mentioned how the twin cost-revolutions in geekery warped & nearly destroyed our trade. Then wondered if we’ll get to a place where it’s no longer profitable for most companies to write bad software poorly. This morning I wonder if I’m seeing the beginning of it. I don’t have any facts & figures for you. But it feels like I’m seeing more and more companies wonder if the gravy train’s caboose will soon pass the station. It won’t happen

Read More »

Robot Worlds E04: Yes, Commander!

This entry is part 4 of 5 in the series Robot Worlds

Robot Worlds: End-to-End-ish Time to flesh out at least one of those ends we got from last time! If you want to follow along, the repo is at https://github.com/GeePawHill/robot-worlds. Transcript and captions coming soon . . .

Read More »

On Not Knowing

When I was a wee lad, 28, 29, 30, I knew the C Windows API by heart. I had, in my bathroom, both the technical docs and a copy of Petzold, and I knew it cold, stone cold. Every one of the ~500 calls, all of the arguments, and for most of them, the order of the arguments. I was a good programmer because I was a terrific memorist: I could learn things by heart, and I could organize them

Read More »

Robot Worlds E03: End-to-End-ish

This entry is part 3 of 5 in the series Robot Worlds

Robot Worlds: End-to-End-ish Let’s get ourselves a first crude end-to-end test running. If you want to follow along, the repo is at https://github.com/GeePawHill/robot-worlds. Transcript and captions coming soon . . .

Read More »

Robot Worlds E02: Sockets & A Spike

This entry is part 2 of 5 in the series Robot Worlds

Robot Worlds: Sockets & A Spike In this round, we get to some code, but it’s "special" code, because it’s in a spike. What’s a spike? Watch and see! If you want to follow along, the repo is at https://github.com/GeePawHill/robot-worlds. Transcript and captions coming soon . . .

Read More »

Robot Worlds E01: Getting Started

This entry is part 1 of 5 in the series Robot Worlds

Robot Worlds: Getting Started Welcome to the new Robot Worlds project! My friends at We Think Code have cooked up a nice little problem for their students, a client/server version of a simple robot worlds simulation. This new series isn’t a solution video, not exactly: but it’s intended as an example of how a cranky old geek like myself gets a spec and starts plugging away at it. Though this is a series for students, it’s not about the syntax

Read More »

The Shadows of Software Design

On the cover of Hofstadter’s famous Godel, Escher, and Bach, there’s a photo of an artifact he made, called a "trip-let". The trip-let, when lit from three different angles, produces shadows that spell out "G", "E", and "B". Let’s talk about software design. Before we dig in: I love to think & talk about geekery, but it’s comfort food, not my most important story. Take a break, enjoy this thread, but please stay in the larger game with me, which

Read More »

Me, Gary, and TDD

True story: Eighteen or so years ago, I had a gig rolling code at an engineering company. We were writing a windows app using Microsoft Foundation Classes to drive a TTY interface to a box of various radio hardware junk. I was gigged in by a guy I’d taught a c;ass (in MFC) to, because he liked that I knew my shit, and he loved that I spoke openly about joy, right in the classroom. right in front of God

Read More »