May, 2007

  • Eric Gunnerson's Compendium

    Eric should write a useful blog post on...


    A post where you can ask me to comment on a specific topic.

    So, if you want to know what *my* opinion is on the effects of the size of Venuzuelan oil reserves on the balance of power in OPEC, you can ask. I won't answer, but you can ask.

    Or, you could ask something that I might know a little bit about. Not that that's ever been (or ever will be) a requirement for topics that I write about.

    (This is really just here so I can update the "suggest a topic" link on my main blog page...)

  • Eric Gunnerson's Compendium

    Watchdog timer expired...


    Microcontrollers (and other embedded systems) often feature a "watchdog timer". It's a small bit of hardware - usually not much more than a counter - that runs independently from the normal system. When something interesting is going on in the system, the watchdog timer gets reset, but when things stop being interesting (typically when something hangs), the counter keeps increasing, and eventually it hits a specific value (or rolls over) and triggers an interrupt.

    At which point something drastic happens. Typically, in an embedded systems you restart the whole thing, on the theory that a restart is a whole lot better than hanging around not doing anything interesting.

    And what does this have to do with anything?

    Well, I came to the Movie Maker team in September of 2004 to work on a WPF-based version of Movie Maker. Between the time I accepted the offer and the time I started, the Longhorn Reset happened, managed apps were pulled from the release (a disappointing but reasonable decision), and after a few fits and starts, I ended up working on DVD Maker on top of Aero Wizard.

    And while that wasn't really what I'd been hoping for, I really liked the team and there was a clear customer need, so despite the size of the "Windows Tax" (the amount of process you have to deal with when you're part of Windows, or more generally, inside any big org), it was a good experience. After Vista, we had some nice plans, both around product and process.

    Then, in October of '06, the group that built Movie Maker and DVD Maker was re-orged into the Windows Live org and merged with the group that owned the photo gallery (among other things). The team that I ended up on had an interesting charter, and if we were able to fulfill that charter (in the way I thought we could), it seemed like a it would be a great experience and would result in something that customers would love. It also looked like Live would be on an internet-ish ship schedule, or at least something closer to that than Vista was (it would pretty much have to be...)

    Which reset my personal watchdog timer.

    Unfortunately, since then resets have been very scarce and in fact there have been a couple of configuration updates that have increased the rate at which the watchdog timer increments. About a month ago the counter overflowed and the "find new job" interrupt was raised.

    While I did spend some time looking at the job market outside of MS, I wanted to stay if it was possible. Mostly that's because I'm comfortable in my commute, my health plan, gym membership, etc.

    I did a few information interviews - interviews where you just get together with a hiring manager to find out more about the job - and a pretty intense full interview loop (anybody know why it's a "loop"?) last Thursday, and then accepted an offer Monday morning.

    I'm going to work in the fairly-recently-formed Health Solutions group. I don't know exactly what I'm able to talk about yet, so you're going to have to settle for that ambiguous story, none of which I can confirm or deny. I'm spending another week or so at my current job, a week off (and you *have* to take some time off next time you switch jobs), and then starting at my new job on the 21st of May.

  • Eric Gunnerson's Compendium

    The danger of surrogate metrics...


    I was reading a "Joel" post (I like Joel's writing, but I wish that he allowed comments) entitled "The Econ 101 Management Method", which I find myself mostly in agreement.

    I'd like to expand a bit in the area of metrics - specifically what I call "surrogate metrics".

    Most software development teams are associated with what business guys call a "P&L center", which in simple terms means that it's part of the business that will either make or lose money. The measure of whether the group is making or losing money is an example of a metric, and it's a good metric, in the sense that it measures exactly what it says it's going to measure.

    How important that particularly metric is to a company and what other metrics are also important is a different subject. As is the siren song of metrics in general.

    The subject of this post is metrics don't measure the thing that you want to measure, but are *believed to* correlate with the thing that you want to measure.

    Say, for example, that you're a software company, and you've heard through the grapevine that customers are unhappy with the service that they are getting through your support forums. A little research shows that some people aren't getting prompt answers.

    So, you spend some time writing a reporting layer on top of the forum software that tracks the time between when a post first shows up and it has a response from somebody in your company. You run it on some historical data, and see that the response time averages out at 36 hours, which makes you unhappy. You work with your group, tell them that they need to do better, and over the next month, the average response time goes down to 12 hours, and you're happy that you've solved the problem.

    Did you do a good job? Is the problem fixed? Discuss...

    The answer to my questions is a rousing "who knows?" It's possible that the problem is fixed, and it's also possible that it's still as bad as before. That's because "response time" is a surrogate measure of the thing that you really care about, customer satisfaction.  You chose it because it was a *easily measurable*.

    Which I guess does lead me towards discussing the siren song of metrics in general. There's a real bias in some business cultures towards measuring a lot of metrics. As Joel points out, this leads to people gaming the system, which is an obvious issue. But even if people don't game the system, surrogate metrics can, at best, suggest when something is bad, but they can never tell you when something is good enough.

    Some people would argue that you should still collect the metrics you can, but I think you just shouldn't bother with surrogate measures. Measure the things that you truly care about, and don't mess up your culture and reward system by measuring the surrogates. And if you can't measure the thing you really care about objectively, if it's too hard or too expensive, you'll just have to deal with the the uncertainty.

    In my example, if you care about customer satisfaction in your support forums, then you need to ask customers whether their support experience was acceptable. There are lots of ways of doing this, and you can often use the same process to allow customers who had a bad experience to escalate it.

    So, what is your favorite real measure and surrogate measure that you've seen? 


  • Eric Gunnerson's Compendium

    7 hills (+4) and 29 undulations of Kirkland, 2007 edition


    Today I did my first hard ride of the year, the 11-hill version 58-mile "metric century" 7 hills ride. Last year I did CTS training, and while it did great for my aerobic endurance, I didn't think it had enough strength work or interval work. This year I've been spending more time pushing bigger gears, and have been doing the majority of my rides on my middle chainring (rather than the tiny one). I've also done some core work, and am starting to do some specific climbing workouts.

    Looking back at my HR data from last year, I averaged 13.8 MPH for 46 miles with 2900 feet of elevation gain (which included a quick ride to the start and a pretty slow ride home afterwards). This year, I averaged 15.3 MPH for 59 miles with 4125 feel of elevation gain.

    That's a pretty significant improvement, though some of it also came from climbing at a cadence of around 85 RPM vs the 100 RPM that I was targetting last year. The lower cadence seems to allow me to work out at a higher effort with less cardio load, which is good as long as your legs hold out, at which time you have to switch to spinning. Or you need to do it if your knees fall off.

    The ride itself was very nice. A bit cold (49) in the morning, but overcast with a bit of sun and not too warm, with no wind. The ride was nicely run as usual, and it seems that it's growing each year. Recommended if you like hills.

  • Eric Gunnerson's Compendium

    This too will come to pass...


    This year, I got into RAMROD (though it should more correctly be named "Ride on the Eastside of Mount Rainier in One Day because the roads are washed out" - I guess ROTEMROD isn't terribly catchy...), which features (among other things) a climb up Sunrise. Sunrise being a small visitor center on the east flank of Mount Rainier, a great place to visit, so much nicer (and sometimes less crowded) than Paradise on the south side. If you look at the page on the climb, you'll see that it's about 3000 feet of climbing, which is something I haven't done yet.

    So, given that I'm off this week between jobs, I spent the night at my ski place in Skykomish, and rode up Stevens Pass, which is very similar to Sunrise. I started at the Skykomish city park on the north side of the river, headed across the tracks to ride old cascade road to where it met highway 2, and then up and up to the summit. The weather was bright sunny, and about 45 degree at the start.

    The first 6 miles is a warmup. There are a few bridges where you need to look for a break in traffic, and a bit where there's not a lot of shoulder. There are also some steep parts and some flat parts (and one pseudo-flat part...). Given how often I've driven this route (easily in the hundreds of times), I was struck by how different it is at 11 MPH. You're near the river for the bulk of the time, and the sound of rushing water is never far away. It's really pretty and the light traffic didn't really detract from the experience.

    Things start getting steep at Deception falls (a nice stop when you're in the area), and once you get to Glacier, you leave the river and the railroad behind and just climb. The shoulders from there on all the way up are great, and the road is two lanes the whole way, so there are few traffic worries (though the large trucks laboring up the hill at 25 MPH do get your attention).

    I settled in and did the remainder of the climb at around 7.5 MPH, with my HR somewhere in the 130s, which was fairly comfortable from a HR perspective but not really from a leg perspective. Though the temp was in the mid 40s, I had to take of my jacket off to stay cool enough, even in the shade. The last mile or so was enhanced with a nice 10 MPH headwind coming from the east.

    At the top, I sat down on the 6-pack chair next to the granite peaks lodge (that Stevens bought someplace surplus, since they don't have any 6-person lifts), and rested while looking around. If you were willing to do some hiking, you could still ski skyline top to bottom with only a couple of bare spots.


    16.1 miles
    Average speed: 9.3 MPH
    Average HR: 137 BPM
    Elevation Gain: 3175 feet

    Steep part:

    9.5 miles
    Average speed: 7.7 MPH
    Average HR: 142 BPM
    Elevation Gain: 2680 feet

    After 20 minutes of rest, I put on my jacket and headed down. I did the steep part in 19 minutes, at an average speed of 31 MPH (would have been faster, but I had to slow down for hairpin because the pavement is really torn up). The total descent took 36 minutes, averaging 26 MPH.

    Overall it was a nice ride. I'd definitely recommend a weekday rather than a weekend.

  • Eric Gunnerson's Compendium

    Unit testing support in VS Pro


    I'm at least a month late in linking to this, but if you've been paying very little attention it might still be new that VS Pro will support unit testing in Orcas.

    Which I think is great news.

  • Eric Gunnerson's Compendium



    A couple months ago, our lunch crowd ended up talking about High-Fructose Corn Syrup, the heir apparent to the wrath that had previously been applied to fat. HFCS (as those in the "biz" call it) is certainly of some concern because of its high glycemic index (which is why it's used, because it's cheaper for a given amount of sweetness), which in general isn't a great thing. I don't, however, think that for health concerns it's really any different than plain sugar.

    Anyway, during the discussion, one of my friends - one of my smart and insightful friends - who I will refer to as "Sam", asked an unexpected question.

    Where does high fructose corn syrup come from?

    The stunned silence lasted for at least 15 seconds, at which time somebody finally managed to blurt out "Corn", and the table dissolved into laughter.

    Which meant that Sam had to answer to the nickname "corn" from then on.

    When I was packing for moving, I was mindful of the history of my team packing "extra" boxes to send with somebody when they moved. To be fair, I was more remembering my role as an instigator and wondering how it would come back to haunt me. A previous departee had - mindful of what was coming - gone as far as signing his name and putting cryptic symbols on all of his boxes, on the theory that nobody would be able forge his markings successfully, and he could easily set aside the "extra boxes" from the real ones.

    He was right that we couldn't forge his markings, but he didn't realize that it was trivial to scribble over his markings, and so he got a whole bunch of boxes that were indistinguishable from each other.

    I decided to go with the flow. After packing, I had one extra box, which I left open sitting on the other boxes, with a note that simply said, "corn" in the bottom. And yesterday, when my boxes showed up, there was one extra box, containing two keyboards and a bunch of other stuff I tried to leave in my office, and one ear of corn.

    Nicely done.

    Way back in my VC days - when we moved every 6-9 months - you had to be very careful with your box labels. During one of our moves there were lots of surplus computers sitting in the halls of our building, and I stickered every one I could find for one of my friends. IIRC, he ended up with 15 extra system units stacked all along one wall of his office.

    (update) I got an email from Sam today, and I am overjoyed to note that he went into my office with an ear of corn in his hand when he looked in the box and saw the note that said, "corn", which seemed amazingly prescient to him (I really just got lucky...)


  • Eric Gunnerson's Compendium

    XBox Live Feature wanted


    I was online yesterday, and I realized that there's something missing from the Live experience.

    I have a number of friends on my friends list, but unfortunately it's hard for me to correlate between their gamertag and their real name.

    Why not allow me to associate a short comment (say, 128 characters or less) with somebody on my friends list. That way I can remember that Str4ight Shooter is really Joe from accounting.

    Is there a way to do this?

  • Eric Gunnerson's Compendium

    Do I like my new group?


    I've been asked this by a couple of people that I know.

    Today, when I came in, sitting on my brand new laptop (Lenovo thinkpad T60P) (everybody in the team gets laptops because the team does a lot of in-office collaboration (you agile folks might use another term...)) was...

    One Schrute Buck

    Yes, I think I will like it here...

Page 1 of 1 (9 items)