Why consultants should sometimes act like fish

Consultants are supposed to model best practices. We can do that sometimes when client developers can’t. We’re often free to hold a higher standard, push back a little, or take the time to “make it work, then make it right.”

That’s not because client developers don’t want to fight for best practices! Often it’s because they have other forces pressing on them. For whatever reason, it’s not safe to insist on a strict standard in their organization.

We, the consultants, have lots of additional safety features that make good engineering possible—we’re protected by the shell provided by Stride. And if we leverage that extra safety, we can make it safer for the client engineers to practice better engineering. We stick our well-protected necks out for a larger refactor, or a stricter breakdown of tickets, or writing tests, and then they can stick their vulnerable necks out and survive.

I was talking about this with resident aquarium guru Dennis Liaw. It turns out that in aquarium owners’ culture, there’s a type of fish that does this for other aquarium residents. They’re called dither fish. If your aquarium fish are afraid to swim out in the open, adding a dither fish can reassure them there aren’t predators around.

So remember to be a dither fish. Take the risks that our position affords, for the benefit of the client engineers who need a little cover.


Photo credit: Faucon, CC BY-SA 2.5, via Wikimedia Commons