Wednesday, October 29, 2014

Something I didn't expect to learn at Programmer School

There are any number of good things you can say about attending a small Programmer School like the one that made me a professional geek.  Alas, one of them was not the civic planning.  Specifically, the fact that the school library and computer lab were situated next to the common area (a.k.a. the cafeteria)...directly across from the day care.

Now, I've never needed help with being distracted.  (Squirrel!)  So I wasn't too thrilled with the arrangement.  I found little sympathy, however, when I grumbled to one of my professors, a father of three:  "Eh.  I figure if they're screaming, they're still alive," quoth he.

Sigh.  Nobody understands me.  Except maybe squirrels.

But I can admit that my prof. had a point, at least as it relates to project management.  As both an employee and a freelancer, I've never been known to sit on problems that come up once our tidy project design meets up with messy reality.  (Although I normally try to have a least one workaround in my back pocket before I actually raise the red flag.)

After a couple of hard lessons, I've also learned not to drop off the radar even when the project is hitting its milestones ahead of schedule.  Once upon a time, I considered weekly status reports a sign that my boss was a paranoid control-freak who didn't trust me to be the professional they were paying me to be.

As a freelancer, however, I've come to the opposite view.  Someone who isn't interested in status "because you're the one who understands all that technical stuff" is a red flag.  Because if you don't want to be bothered with good news, what happens if there's any bad news to handle?  Software, like any other (designed) product, is nothing more that the sum of the decisions made between the initial brainstorm and the final bytes.  Not all of those decisions can be made in the heady optimism of the kick-off meeting.  And some of those decisions could even be mid-project course-corrections. 

A potential client who expects me to work in a vacuum and deliver exactly what s/he wanted makes me nervous.  But the flip side is that a software developer who expects to work that way should make you (as the potential client) more nervous still.  In a freelancer, that behaviour is symptomatic of someone afraid of criticism, who might just let the clock (and budget) run out until your decision boils down to take-it-or-leave it.

Look.  I know we're all busy.  But everyone on this road-trip is responsible for making sure we all arrive where we want to be, even when they're not technically driving.  Road signs matter.  Detour signs, in particular, do not exist to be ignored.  Once in a great while, we may even have to pull over for a minute and dig out the map and compass when we're not where we expect to be.  In the long run, we'll save time and gas.  And, unlike the Blues Brothers, our road trip won't end up in the hoosegow.