Saturday, October 27, 2018

Red Alert in a Silver Thaw

(note: this is a continuation of a story that starts here)

It was Fred's turn.

He could barely hear himself talk over the sound of ice being crushed under his pickup's studded tires.

"I'm telling you again, Mike. I can't do anything about this until I'm in the office."

Friday, October 26, 2018

Feature-Branching Defers Work

A stick figure stands between some stairs and two 40 lbs bags of sand, thinking "Better wait for a few more so I can carry them up all at once."


To quote Homer Simpson: "Did we lose a war?"

I thought we licked this problem in the aughts and early teens. Maybe it was just Seattle or maybe I'm projecting personal victories onto the industry at large.

For some reason, feature-branching is all the rage, again.

Thursday, October 25, 2018

Fundamental Tenets of Design Patterns Thinking

Four quadrants: an arrow showing pressure flow into a class from use, a switch statement with a "buster" circle, a class coupling to the top of a hierarchy, and preference of usage over inheritance

There are four basic principles of deep design thinking. These are all paraphrased to make them easier to digest in 2018.
  • Start with contracts and drive implementations to serve needs.
  • Encapsulate variation so you need only attend to it in the fewest places possible.
  • Couple to the highest abstractions possible.
  • Delegate between objects rather than inheriting between classes.
These principles underlie all the design patterns wherever they apply.

One could write a book on these four principles. In fact, a lot of people have.

I'm going to dig into each of these more deeply in subsequent posts.

Wednesday, October 24, 2018

Safety Is the Foundation of Speed

A person in a spacesuit walks toward a capsule. The capsule has prominent red, white, and blue racing stripes. A person in a lab coat and carrying a clipboard stands between them and says "We had to remove the heat-shield to add the racing stripes. I hope that's okay.

Nobody would buy a car that was twice as fast as its price-competitors but had no breaks.

The ability to move safely is the ability to move quickly.

Tuesday, October 23, 2018

Assumption Pitfall: "The Problem is Real"

One person holds up a hammer and says "this screwdriver keeps damaging the wood" and another says "try turning it slower".

Recently, someone told me about a bug. I spent a fair amount of time investigating the bug, including quite a while trying to get a test that would reproduce it.

In the end, it turned out malformed input was being used. There was no problem.

Monday, October 22, 2018

Where the Magic Happens

A picture of a brain with three shapes and two operators imposed: square + circle --> pentagon

Magical thinking is the fallacious assignment of a causal relationship between events. 

It's never magic.

Repeat after me.

"It's never magic. It's never magic. It's never magic."