Press "Enter" to skip to content

Posts tagged as “Wrangling Bits and People”

It Always Takes Longer Than You Expect

centaur 0


So my wife and I talk - a lot - about life, the universe, and everything - and we decided we should try to capture some of our thoughts on the matter as a series of video blogs. I grabbed dinner at Aqui, she was grabbing dinner at home, and then we were going to get the studio set up so we could do a test run.

None of that happened as planned.

I was late leaving Aqui; I never got to run all my errands. Sandi started to cook eight-minute paste thirty minutes before I was scheduled to get home; I got home late and she was still cooking. I tried to get the software set up on the kitchen table while she finished up, hoping the two of us would both finish in time for a trial run in the great room which we planned to use.

When our time was up and it was time to go to the gym, I’d never left the kitchen table, and she’d never left the kitchen counter, working on her pasta, watching over my shoulder while I wrestled with the software. I did get it installed, and, in the end, we managed to capture a handful of screenshots and a few short videos, the longest of which lasted only five minutes.

I heard a study once which claimed that when it comes to estimation, there are two groups of people: optimists, who underestimate schedules by a lot, and pessimists, who only underestimate schedules by a little. Both groups in the study failed to estimate the actual time it would take them to complete the task.

This is a natural human instinct. My wife and I have speculated that people wouldn’t really ever take on large tasks if they knew how long they took — certainly in my experience in computing, if you give people a realistic schedule, they’ll either push back or even cancel the project. Now I freely admit I make mistakes - but when I've called bullshit on schedules, I have never been wrong.

Here’s a few rules of thumb for you:

  • If you’re estimating by the seat of your pants, you’re wrong. It will take longer.
  • If you need it done in a short amount of time, you’re out of luck. It will take longer.
  • If you’re an administrator and can crack the whip to get it done, quit fooling yourself. It will take longer.
  • If you’re estimating based on past experience, and you think it will take less time, you’re kidding yourself. It will take longer.
  • If you think there’s really good reasons it’s easier this time, you’re even wronger. It will take longer.
  • If, on the other hand, you’re an expert on this kind of thing, congratulations: you’re the wrongest. Thanks to the process of automatization, through which humans learn to become experts, your mind has abstracted away all the details of the problem so they’re out of sight, out of mind - so what seems easy and quick to you will take longest of all.

There is no substitute for a formal process of estimation. I personally use function point analysis (breaking tasks into small parts, estimating their cost, and applying a function that produces time) and Gantt charts (calendar-like diagrams showing people and length of tasks and their dependencies) to get an idea of how long things will take, and this gets a good estimate, even though as soon as you start work you have to rework the design and throw the Gantt chart away.

This process offends some I know who are really into “agile” development, in which you forgo that kind of formal planning in favor a more flexible approach involving user “stories" - but these people are fooling themselves. The point isn’t the Gantt chart, it’s going through the formal estimation exercise, getting a realistic estimate of both task complexity and dependency chains. I knew agile back when it was called “extreme programming,” and its techniques have only gotten more sophisticated - but REAL, experienced agile development uses a training process to get people up to speed and engages in estimation of the velocity of development. If you ape agile with daily standup and a few post-it notes, congratulations: you’re fooling yourself, your schedule will slip.

THERE IS NO SUBSTITUTE FOR DECOUPLING THE PROCESS OF GENERATING TASKS AND ESTIMATING THEM. If you come up with tasks and score them on the spot, you’re flying by the seat of your pants, and will subconsciously generate estimates that show you will succeed.

You will not.

Once I dealt with a sharp CEO who recognized that I was right when I told him his three month project would take nine months. (I had to literally resign my position to get his attention, but that’s another story.) His response: ok, you’re right, it will take nine months - but we can’t track anything that long. We need three month milestones. Something we can see and manage. That way we’ll know we’re slipping. That’s what we did, that worked - and in nine months, we delivered, in three steps along the way. And, strangely enough, I find this is more generally true: in any given time period, I get about a third as much as I want to - but if I keep at it, and break things apart into smaller chunks, eventually I do get done.

So don’t imagine you can travel in time; instead, realize you need to take baby steps. Break your problem into the smallest chunks you can, relentlessly work on them to get them done, and doggedly track your next steps. You may not produce an hour-long video describing your views on life, the universe, and everything the first time you set out to do it, but maybe you can spend a pleasant evening getting your film studio set up, so that you’re ready to take the next step, when the time comes.

-the Centaur

Pictured: a shot of me and my wife. We tried to take a picture. We expected to take a couple. It took six shots, and I had to composite two of them together with four Photoshop layers to get a good one of both of us at the same time. :-P

Minus One

centaur 0


For the overcommitted, it’s easy to get overwhelmed. My wife practically had a nervous breakdown this Sunday trying to figure out what the next right step for her business is, a discussion which spilled over onto much of our scheduled workday on Monday. I had the same experience this morning, wanting to crash back out - though that may have been related to my loss of three days in this vacation. I thought I was going to be able to take the whole week off, but the way timing worked out I could only take off Tuesday. So when I woke up this morning, I found myself trying to figure out how to do three days’ worth of work in one half a day (since I go to writing group Tuesday evenings) and I wanted to just go back to bed. I eventually picked one thing, but even that’s something that I wasn’t sure I could get done.

That’s where “minus one” comes in.

“Minus one” is a strategy that goes hand in hand with, but is opposite from, “work just a little bit harder than you want to”. Where “harder than you want to” often gets you 10x the reward in 0.1x the time - because our monkey brains often want to quit just before we are about to have a breakthrough - “minus one” handles the opposite monkey instinct, biting off more than we can chew.

So, when you have a dozen things to do, or even just a few, deliberately choose to tackle one less of them than you want to. If you planned to do an working afternoon, a nice dinner, and a movie with your wife, just take on two of those. (We did the working afternoon and the nice dinner). If you planned to tackle cleaning and writing, just do the writing. Even in the writing, I’d plans to drive to a different place for lunch, then to hit a nice coffeehouse to work. I dropped that and went to the Aqui near my house. That’s part of a rut (and I need to write a defense of ruts) but it immediately bought me something like thirty minutes of travel time, and positioned me well to take care of a lot of other business.

“Minus one” is a key thing to take on when you’re overwhelmed. It relaxes you and lets you focus. Humans are consistent underestimators - I saw one study that suggested that both optimists AND pessimists underestimate how long it takes to get things done. You can’t not underestimate - you won’t ever get ANYTHING if you’re honest with yourself about how long it takes, especially if other humans with their monkey brains are involved - so you need tricks to keep you moving.

I use “minus one”. If you feel overcommitted and overwhelmed, you might see how it works for you.

-the Centaur

Unexpected Acts of Kindness

centaur 0


For those of us who are hermits, it’s sometimes good to get a reminder of the great things that can happen via social support. At the recent Write to the End meeting, I stepped up as facilitator when Keiko O’Leary was delayed on a plane flight - but when she showed up, after an offhanded comment by one of the members, we all decided to pretended that she was new to the group! We asked her to introduce herself, welcomed her warmly, and explained everything as we went, which she found hilarious - and comforting, since she didn’t have to do any work handing out prompts or monitoring the time. It was a great writing session for all, and couldn’t have happened without the happy synergy of all the different people working together.

I had a similar experience at lunch at work recently - I’m a loner, and normally go off on my own to read or write my books, but I do try to join the team a few times a week. At the lunch table, thinking of one of my problems, I said: “Wouldn’t it be neat if we could apply X technology to Y”? Suddenly, EVERYONE was chiming in: one TL scoped out the problem, another coworker had great suggestions, and after twenty minutes of discussion I offered to go write it up. But I didn’t have time before I had to interview a candidate, so when I came back I found a one-pager written by a coworker. I sat down to expand it, realized my coworker had a key insight, and ended up producing a half-dozen page design doc. I may have been the first person to utter “apply X to Y” but the final idea was very much a joint product of every person at the table - and could NOT have been done alone.

As an on-again, off-again follower of Ayn Rand, I guess this is exposes one of the many flaws of traditional Objectivist thinking: its black and white nature, particularly with regards to committees. Several of Ayn Rand’s books lambast the work produced by committees, and I indeed have seen horrors produced by them - but call a committee a “brainstorming session”, and you can literally produce things which no-one could have produced alone. Of course, a single person or small group must then refine and focus the ideas so they can be implemented, or everyone will go driving in different directions - but even that seeming aimless search can be a success if you’ve got a large technology space to explore and a diverse group of committed, dedicated engineers to explore it.

But the possibility of brainstorming is not really what I want to focus on: it’s the great things that come out of treating your fellow people right. Being nice to each other greases the wheel, sharing your ideas and being open to theirs improves intellectual debate, and treating one person as special on a special occasion can really lift their day - whether it’s a thank you card and gift to a former manager, a day off for the facilitator of a group, or just giving a friend who’s into centaurs a centaur statuette that you happened to pick up two of by accident. These little things don’t just brighten our day - they change it, making the world a better place, one small act of kindness at a time.

-the Centaur

Pictured: a gift of a friend, via a friend, the first of whom professionally collects genre materials and ended up with two of the same statuette, and the second of whom brought it to the writing group for me because she knew I liked centaurs.