Mistakes … I’ve Made A Few

… but then again, too few to mention.  Ah yes, I’m dating myself with that reference but if I don’t, who will?

I spend a lot of time slagging the business guys and believe me, they’ve earned it.  That said, even when the business guys weren’t in the building, mistakes were made, and if you looked at them a certain way, you might even attribute a scintilla of responsibility for some of these missteps to me.

So without further ado, here are the autopsy results from a few of the ones I think I understand and am willing to admit to.  Believe me, there are a few that are worth their very own post, and there are a few I’m taking to the grave with me.

Waiting too long to fire underperformers

lucyshowTrue story: I inherited this guy from another manager, and he was useless – “hello world” useless.  Not only that, but he had no shame about dragging other people in to get him out of whatever hole he’d coded himself into.  I watched for a couple of days and saw, in action, one of the fixed axioms of software: there is no upper limit to the amount of damage a low-performer can do.  Watching three people try to debug “Hello wo$#%@%^!” for this knucklehead proved that.  But, one of the few professionals we employed at the time was our HR person who told me how firing was done:

  • written warnings
  • improvement plan
  • constant monitoring and feedback
  • deadline for improvement

This was before I knew what an “at will” employee was.  So … a month later, after wasting countless hours on this guy and on a day when he brought in food for the entire team, I fired him.

That was a lack-of-aggression mistake.  I had the juice to just deal with it, but I asked for guidance and got timidity instead.  It still grates.  We were in a “hot” space and had great IP.  Deals and very important people were swirling around us.  We were running out of runway.  And I wasted a month firing an at-will employee who would never be more than a bad coder.  This episode and the fact that we went Chapter 7 are probably unrelated.  Probably.

Quick and dirty coding

flappingEven if you’re God’s gift to technology, you’re gonna commit crimes against computer science on your way to the promised land.  If you’re a huge dumbass you’re gonna commit lots of those crimes and for terrible reasons.  Let me illustrate:

  • In the early days of one venture, I wrote some C++ Win32 code that I wasn’t particularly proud of – lots of global variables, timing hacks, failsafe graphic refreshes – stuff I knew would need a rewrite.
  • In the later days of another venture, I wrote a pile of equally dreadful C# Web Services. Not thread-safe, non-transactional SQL, duplicate code everywhere …

In the first case, I was alone, literally doing the best I could and had to hit deadlines or we’d lose a contract.  In the latter case, I was bored and wanted to write code, but I had plenty of help and was just too lazy to do it right.  Equivalent crimes, but motive matters. You could also consider the latter a case of taking too long to fire a low performer – myself.

Bad Leases

leaseMy last venture launched when my kids were 20 months and 1 month old respectively.  If you can work in a small house with two children under two years old, you’re a better man than I.  That’s focus.  Me, I have noise cancelling headphones and a nice home office with a door that locks and I still couldn’t do it.  For awhile I was a nomad, I worked everywhere, Starbucks (g*d****d fruit flies!), the bar at Chilis, the commuter boat .. even the lobby of the Boston Harbor Hotel. I still have their guest wireless access code that we paid 10$ for back in 2005.  But all that’s barely better than working with a one year old in your lap.

So we sublet space at a lawyers office and that early space was key, not a mistake at all because some of us needed it, and some of us needed to be together  But space takes on a life of its own.  There came a moment when we had more people than the lawyers office could hold, but we weren’t in a position to make a decent deal for space anywhere tolerable.  People started piling up.  We weren’t happy.  The lawyers weren’t happy.  There were people (yours truly) making demands about location.  The pressure mounted.

What should we have done at that moment?  Gone virtual, at least partly.  Would it have been a pain in the ass to manage?  Yup, but lots of worthwhile things are a pain in the ass.  What did we do instead?  We made a deal for more space than we actually needed or could use.  Dreadful space.  No build-out, horrible floor plan, nasty carpet, 8 thermostats none of which controlled the temperature, lighting better suited to a Turkish prison and as a bonus we got the landlord as a shareholder.  When our exit came, we were still in the same shitty space because part of the shitty deal was a lock-in.  Maybe I didn’t make the deal, but I made it all but inevitable that a deal like that had to be made.

What kind of mistake was this? Failure to look at the big picture maybe, but actually more just inexperience. I didn’t know the space bit until I’d lived in it for awhile.

Shooting from the hip

cf-yulBrynnerWestworldIf you have any success with your startup – last a few years, hire a few people, get some traction – you get pretty good at shooting from the hip.  The first technology that pops into your head does the job, the first algorithm you think of is “good enough”, your first take on an interviewee proves out.  You’re a bright guy and it never takes you more than 90 seconds to figure anything out.

Trouble is, with all that shooting from the hip, you forget how to do it right – the take-a-deep-breath-aim-and-fire method.

Guy comes into my office with a code problem.  He lays it out, I get impatient and my mind starts to wander, eyes start to glaze over and as he gets toward the end I lose patience and blurt out “Just do X” where X is something plausible, but probably quick and dirty.  Usually, my saying “Just do X” ends the conversation but this time the guy doesn’t move.  He just stands there because, first of all he likes to do things right, and second, X isn’t plausible, in fact it’s stupid, and proves that I wasn’t listening and just want him out of my office.  I realize in a flash that I’ve been doing this to this poor guy for months.  What I kidded myself was decisive and incisive, was actually glib and dismissive.  I tell him “okay, sit down and start over” and force myself to focus patiently on the problem.  And whenever he comes back to my office, I take a deep breath and do it all over again. Leading sucks sometimes.

You can file this one under “scaling with the organization” I guess. It took me awhile but eventually I learned to stop looking at my own navel long enough to actually manage my crew.

So there are some of my mistakes. Got any good ones you’d like to share?