Closing a Chapter

A couple of weeks back, the first company I ever worked at was seemingly sold off for spare parts.

It’s not terribly surprising. I’m not really sure what Sensable has been doing for the past few years. The endeavor into dental seemed like it was maybe working, but it was hard to say because the company has changed focus 8 times since I left nine years ago.

Shit, has it been nine years?

From a pure technology perspective, Sensable was an awesome company and an awesome place to work. Cool technology, incredibly smart people (legitimately, some of the smartest people I’ve ever met in my life), a large enough niche to be self-sustaining (academia), with a couple of other niches to keep the lights on. Not being a business expert, nor privy to the financials, I’d guess the big issue is that when you take $40ish million in funding, you have to find a way to pay that back.

Unfortunately, the revenues never got there, and the leadership, in later years, seemed to be more interested in digging a deeper hole than finding an exit. (I’m just speculating; I don’t actually know anything.)

In early April, the Sensable I knew ceased to exist. I’m sort of ok with that. I’m not sure if I know anybody who still works there—everyone has gone onto other things, often bigger and better—nor do I have any clue what the company was really doing these days. In reality, I haven’t been clued into Sensable for years.

So, given that, why does this pain me a little bit? It’s the close of a chapter of my life. Even though I’ve been gone for nine years (again … shit, that makes me old), I still see folks from Sensable from time to time. There are still emails and occasional get togethers. These are people I root for, as they were, to a person, almost all really awesome.

But that thread that tied us together—which had frayed and grown bare but not broken—finally broke. And that makes me a little sad. But, I’ll still keep up with the folks I worked with and watch as they do new, awesome things.

(If the second company I worked for disappeared off the face of the earth, I’m not sure I’d really care. In fact, I know I wouldn’t. That place was sort of a cesspool. Actually, not sort of; it was a cesspool.)

The Self-Fulfilling Prophecy of Bad Release Processes

If you need to wait any non-trivial amount of time between completing something and seeing how well it’s
performing, you’re not going to be working on that project by the time you get your answer. When you do get your
answer, you’re not only going to have to refresh your memory on what you had been working on, but you’re going
to have to do the same on whatever else you had started working on.[1]

I will admit, I’m currently a bit frustrated with our team’s development and release process. In the name of stability, we have given up speed, agility, and, honestly, stability.

Ironic, eh?

When you’re working on web stuff, having a long cycle between when something leaves your keyboard and when it is live on production servers being poked at by real, live customers is a bad idea for a whole bunch of reasons.

There’s always something different about production than your staging environment. It doesn’t matter how well prepare you, it just happens. Different security, some small schema change, a firewall rule. Something. The longer you wait between the last time you worked on your code and when it is in front of customers, the more likely something else will change, too. And the less likely you’ll remember how your stuff worked.

Somehow, handing over code to the QA team is considered to be a sanctified handoff. “My part is done. I’ve given the code to QA.” The fact that it doesn’t quite work, has significant issues, or blows up is irrelevant. The division of labor between developing and deploying makes it far too easy to pass the buck and make the brokenness someone else’s problem.

And, I think worst of all, you take your eye of the ball. If you’re engaged in your release, feel responsible for it, you can do smart things like push it live, make sure it’s working, take a look at some logs to see if your assumptions are right. Maybe you speculated on some language or colors, and it’s just not converting. Change it.

When you’ve decoupled your development and release processes, you don’t have that fine grained control, that immediate responsiveness. Instead, you need to get someone off of another project, have them dive back into the code, put it through another release process, and repeat it all over again. A change you could have made in five minutes and might have benefited your company or customers ends up in another week long QA process where, inevitably, some inexperienced QA person digs up some completely unrelated bug, and your watch your life just waste away …

Yes, long, rigid release cycles are necessary for software products that actually have to ship code, or might destroy data, or blow away finances, or do really bad things™

But if you’re working on the web, all they do is make things worse. I sincerely believe that. They don’t make things more stable (too many other things changing; too much context switching to remember why you had that odd bit of code), or make your releases smoother (too much passing of the buck; too many people involved; too many places where someone can say “stop the presses” because their nose is out of joint that day). They just make people feel better, and they let people cover their asses, so that the self-inflicted pain of choosing that release style can’t possibly be blamed on them. It’s a self-fulfilling prophecy. By making the process to allow people to cover their asses, you ensure that they have something to cover them about.

  1. Andrew Morrison from the above-linked post  ↩

All the Way Broken is Better Than Partially Broken

Oddly, I learned a fun lesson today:

All the way broken is far better than partially broken.

I think I implicitly knew that–debugging completely broken things is far easier than debugging something that works sometimes–but our network at work today has been what you could politely call “flaky.” And not knowing if your last keystroke got through to the server or if the request you just sent went off into the ether is not a fun way to work.

At least if everything was broken I could have shifted into doing non-online things and actually been productive.

Hell Week

Sparing the details, the last week of work (two weeks, really) have been hell. Pure, unrelenting, fire-and-brimstone hell. No sleep, working ’round the clock, fixing things that weren’t broken 10 minutes before, hell.

I don’t think I’ve ever quite been involved in a situation where as many things went south at the same time; many of which I had no control over. But there were things that I had control over (or at least nominal control over) that I didn’t handle as adeptly as I could have or normally do. I’ve run through a whole range of emotions, lost sleep, lost weight, forgotten to eat meals (a couple of times I forgot to eat *all* day), and basically given up my life.

And in the end, I don’t think it’s worth it. I’ve basically missed out on 1/25th of my life this year working on this, and the payoff just isn’t great enough for the stress.

I’m a startup type of guy, and I don’t mind putting in the extra hours or the hard work. I like it, quite frankly. Because you’re building something and you spend a bunch of time adding features and tweaking and improving and making something fun. This has been an exercise in replication, where I should only be involved peripherally in the work (but am far more involved for a variety of reasons), and the payoff isn’t fun. It’s rote and mundane.

Of course, this is my job, and it’s not always this bad. It’s just been this bad for a couple of weeks. But this is the sign I need to find a better work/life balance.

It’s just too bad it took two weeks of no sleep, a loss of 10 pounds, and no life to figure it out.

Sleep …. sleep? What’s That?

Over the past week of work, I’ve left work prior to 10pm exactly once, stayed beyond midnight twice, and am now on about my 4th day in a row without getting more than 3 hours of consecutive sleep.

I’m not enjoying this very much.

I’m still at work at 2:45am. This is what it looks like:

Photo 5.jpg

My head is shiny. And for those of you keeping track at home, you can barely tell my nose is broken unless you take a close look.


Give Up

Image courtesty

For the first time in a very long time (probably > 4 years), I’ve hit the wall and become completely unmotivated. I won’t get into the specific details, but there’s just a hodge-podge (technical term) of work stuff going on that leaves me feeling empty, defeated, and broken. I feel like I’ve actually been a fighter for change (positive change, at that) in this company, and I know that I’ve worked extremely hard to make things better for the company, my co-workers, and our customers.

Don’t get me wrong, the company has (financially) treated me well. I’ve gotten the opportunity to do a lot of great things, and gotten opportunities I wouldn’t have gotten elsewhere.

But I kind of feel like we’re drifting in different directions. The company (as an entity, not necessarily the employees) is headed in one direction, and with that has come changes in tone, process, and even our moral compass. The things that made me excited and energized to come in and change the world have taken a back burner to onerous processes, misguided and (often) conflicting objectives, and just a grand feeling of a lack of efficacy.

So here I sit, entirely demotivated, chugging through the work I have to do, but watching as the little things that we used to do so well and made us successful (and got us to this inflection point) are falling through the cracks, people knowing ignoring them, knowing that they’re going to bite us in a month or two. But since that’s not right now, not this exact moment, no one really cares. Hell, every one of our systems is currently down and has been for a couple of minutes. Not because people are bad at their jobs, but because we aren’t taking the time to do things right.

We’re basically at the point of considering everyone in the company cheap labor. “Don’t worry if it’s scalable or the right solution, just do it and we’ll deal with the consequences.”

Easy to say when you’re not the one getting woken up at 2am.

It’s frustrating, it’s somewhat demeaning, and it’s utterly demotivating.

Sadly, it is fixable, but I don’t think I have it in me to fight to make people recognize that something needs to be fixed. Instead, the only motivation I have right now is to make a change to my own situation.