Concept: the Developer Blind Spot

Concept #1. Knowledge Work

Software developers are largely “knowledge workers”, which (broadly) means that the job they do day-to-day is something that their manager can’t do, at least not as readily.

Note: this isn’t the typical tribalist anti-business developer rant. I’m not talking about “pointy haired bosses”. I’m talking about the fact that much of the time, developers are managed by people who either aren’t currently or haven’t ever been, software developers themselves.  I think that’s fine, but it leads to something that I’m calling the “developer blind spot”

Concept #2. Signal Attenuation

signal_example

Even the best transmission medium has some signal attenuation.

As an idea goes through multiple people, it can change subtly, so an idea such as “for my service types, I like to encapsulate construction instead of using ‘new foo()’ to get an instance, so my consuming code isn’t tightly coupled to a specific concrete implementation” gets mangled to become “never ever use ‘new foo()‘” which a developer will hear and say “WTF? That doesn’t even make any sense!“. Because it doesn’t make any sense, not once the signal has degraded that far.

Concept #3. Fashion and Skepticism

Many ideas come and go, and it’s time consuming to try to differentiate solid ideas from fads, snake oil, and deep-sounding fluff that some executive got from a breathlessly enthusiastic book he read on an airplane.

In a perfect world, executives would limit their airplane reading to trashy fiction.  Feel free to contact me for specific suggestions as I read a lot of really trashy fiction that I don’t exactly feel comfortable blogging about.

Conclusion

Show. Don’t tell.

If you’re managing or leading a software team and want your team to do things differently, it’s possible that your (brilliant) advice will hit your team right in their blind spot and be ignored.  If you really want to plant an idea into a developer’s head, you need to obliquely inject it, Inception-style. Demonstrate new ideas in a proper real-world context, without appeals to top-down authority, blog posts written by random dudes (especially mine), or light airplane reading. Connect real-world developers with their peers and let them have meaningful conversations without latency and signal attenuation.  Give people enough creative space and room to experiment that they feel invested in these ideas. Anything new must actually make sense with the dozens of micro-scale cost-benefit decisions that good developers are making all day every day. Otherwise, they’re just checking mysterious magic checkboxes on some mysterious magic checklist because some manager says so for mysterious magic reasons.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: