Buffer Time

Our goal was to finish cleaning the old apartment today.  Then tomorrow we could just show up, hand over the keys, and go find brunch.

Of course that didn’t happen.  There’s still one more load of stuff to bring over and a couple floors to mop.  It’s not much, but it’s the difference between ‘incomplete’ and ‘done’.  Luckily, by which I mean intentionally, we set a deadline before the real deadline.  It forced us to make better plans, and more importantly, it lets us have a bit of buffer for when plans inevitably fall through.

I’ve worked on lots of things that came in on schedule.  I don’t think I’ve ever worked on a project that didn’t use buffer time.  Work expand to fill the time available – plus a bit longer while you put the finishing touches down.  I think it’s critical to include some extra time in every project.

I Don’t Admire the UHaul Guy

This morning I picked up a UHaul van for our move to the new apartment.  It’s college-moving weekend, so we had a narrow window to use the loading dock.  That meant that everything else had to go right.  We had plenty of helpers lined up, we had the loading zone at the old apartment booked all morning, and everything was ready to go.

When I got to the UHaul place at 7:05, the manager was already on the phone with someone.  He was explaining that they needed to return their truck *now*.  Someone had it booked in a couple hours, and the previous booking had failed to return it the night before.  I couldn’t hear the other end of the conversation, but it seemed like the person was befuddled that they couldn’t just hang onto the truck until they were done.

The manager explained that they were ruining someone else’s move, and asked when they’d have the truck in.  The look on his face said he wasn’t happy with the answer.

He helped me afterwards, but his mind was somewhere else.  He was going to have to call the people who booked that truck today and explain that they didn’t have one for them.

I wonder how many times a year he has to make that call.

UIWebView in XCTest Cases

I ran into an interesting problem today while trying to write some unit tests for an SDK we’re helping to build at work.  It involved instantiating a third-party library, then running a few tests to be sure that our delegate code was being called as expected.

The problem is that the third party library contained code to instantiate a UIWebView.  At first I was puzzled.  That couldn’t be causing a crash.  I ended up stripping out the actual test and just putting in a line like this:

UIWebView *wv = [[UIWebView alloc] init];

And an exception was thrown.

After Googling around for a while, I came across a Stack Overflow post discussing the behaviour.  It looks like when you’re trying to test UIWebView in a static library, it needs an app target set to run.  I created an empty app, set it as the target, and boom, we had a working unit test.

It’s the things like this that make me realize that I’ll never be done learning.

Instructions

My partner and I were packing up the kitchen appliances this evening and came upon my toaster manual.  This little gem is from the troubleshooting guide:

Problem: Bread is jammed.

Possible Cause: The bread may be too thick.

Solution: Most breads, pastries and bagels will fit into the slot, however, occasionally the bread may be too thick.  Simply remove from the toaster and slice thinner.

It’s the “simply” that makes it art.

Human Error

A few minutes ago I got a call from our new apartment manager asking if we wanted to schedule a move-in time for this weekend.  This is especially vexing because we did that last week, arranged the truck and friends to help, and set our schedule around it.  But it never got written down.

I’ve been on both ends of this situation.  Nobody likes getting caught with their pants down because they forgot to write something on a calendar or put the task on their todo list.  At the very least, it ends up breaking somebodies expectations, and the first rule of business communication is to be clear about expectations.

Process is about minimizing human error.  With some companies, no meeting can be scheduled without going through the scheduling software.  I’m not a huge fan of that approach – every layer of process you add removes a bit of versatility.

As a rule, I avoid process unless we’re being consistently hurt by the same stupid mistake.  Something should have to impact you multiple times before you put a process in place.  Otherwise it’s just following a fallacy where you assume the exceptional case always has to be accounted for.  And that’s just human error.

Packing

As we pack up the apartment in preparation for a move at the end of the week, I’m struck by how it’s increasingly looking like a student’s apartment.  We’re giving away some furniture, so in the last couple days I’ve seen my dining room table, my bookshelves, and my spare bed go away.

I’ve been clearing out closets, so my living room is crowded with bicycles and sports gear.  My TV is balanced on an endtable, since we gave away the stand that supported it.  Everything looks a little rawer and more exposed.  The only things escaping the boxes are essential right up until the day of the move.

It only gets more disorganized from here.  It’s like we’re getting all the entropy that was spread around, squeezing it out of almost everything so my things fit in boxes, and that’s what’s left lying around.

Moving Soon

I’ve been boxing up books in preparation for our upcoming move today.  I’m reminded of a Spider Robinson quote: “Two moves equals one fire.”

Showing Off

One of the reasons I find writing so difficult is that I don’t like showing off.  I always wonder if there’s some long forgotten incident from my childhood where I was showing off and the whole room laughed. I don’t recall anything, but I have a deep distaste that means I don’t like asking for attention.

So far I haven’t promoted this blog in any real way.  I’ve told one person.  He suggested I tweet the posts when they went up, since I have a few Twitter followers.  I quickly agreed – that sounded like the right thing to do if I wanted to get more people reading.

Of course I haven’t.  Right now I’m focussing on writing.  Maybe once I get past the fear of blogging I can work on the fear of promoting.

As a guy who runs a business, I don’t do nearly as much work talking myself up as other business owners do.  Maybe we would grow faster as a company if I did, but despite being a huge extrovert, I suddenly turn bashful when it comes time to brag a little.

We certainly have lots to brag about.  We build cool products, do good work, have a reasonably sustainable business, etc.  I’m living the dream, but I’m fighting my instincts right now – I want to go back and delete that last sentence so badly.

For today, I’m leaving it here.  And for today, that’s enough.

Humans Are Expensive

There’s a video going around right now called Humans Need Not Apply.  It’s by CGP Grey, and it’s about the rise in automation and how that’s going to continue to impact the availability of human jobs.

When I was a kid, my Dad asked me to guess what the most expensive part of running his print shop was.  I looked around the warehouse, thought for a few seconds, and decided that the heating bill was probably the worst of it.  Dad laughed, and told me that staffing costs were actually the most expensive part of running almost any company.

Humans are amazingly expensive.  Salary is just the start.  It costs money to train them, keep them comfortable, keep them motivated, keep them from moving across the street to your competitors office, etc.

‘Cheaper and with less staff’ is just a way of saying ‘cheaper and much cheaper’ in a way that resonates with business owners.  Of course businesses are going to trend towards using more automation.

There’s always going to be a business that’s willing to reduce staff costs and pay a (lower) equipment cost, and that business is going to be the cheapest one on the market.  In the same way that Walmart drives local businesses to lower prices, automation is going to make it impossible to compete unless you’re willing to go along with it.