mini-cases: the shifting burden of work

Most modern web applications are nothing more than a bunch of boxes. One holds a name, another holds the value selected from a list of options, and another indicates that one group of boxes is somehow related to another group of boxes. And just like designing a storage system for your closet or your kitchen, boxes that you thought were going to be important at the outset end up being useless, extraneous, or ignored once the system goes into production.

Such was the situation with this client; they had built a complex web-based product for tracking their data, and a year later, realized that it was too complex. It’s a common problem which I call the “Buffet Paradox”: loading your plate up with every possible item ends up somehow being less palatable than a single, simple steak.

Their initial request was for documentation. To continue the buffet metaphor, they figured that with a canonical list of every possible item, they could sit down at the table and determine which dishes made sense, and which didn’t. But, there were complexities…salad dressing was one “item” with 6 or 7 different possibilities. And croutons straddled the border between the soup and salad area, making an appearance in both.

So I obliged in appropriate fashion by clearly defining their problem and proposing some solutions. No matter what method I used, it was going to be a decent amount of work. First of all, I hadn’t built the initial system, so I would need to spend some time getting up to speed on how things were put together. Then, I could take several paths for the actual physical documentation: first, I could start with the initial design document, updating it to reflect post-launch changes that had been put into place. Or, I could run through the system and take screenshots of the various pages, pasting them into a Word document. Or, I could pull up the screens, copy the fields into Excel, do some formatting and rearranging, then paste a table into a Word document.

No matter the approach, there would be tradeoffs: updating the design document would be incredibly time-consuming, and the chances that I’d miss a field here or there were high. Screenshots would be likely to cover all the screens, but were not editable, and wouldn’t show things like picklist values or which fields were actually just references to data entered elsewhere. Pasting a table was a reasonable compromise, but still wouldn’t capture every piece of data, and wouldn’t reflect the actual look and feel of the page, which might cause some confusion.

So, I presented the options to the client. And, to my pleasant surprise, the client came up with the optimal solution on their own: instead of asking for a detailed list of the items on their “buffet”, they would just go up to the buffet with a pad of paper and write down the items to remove. In other words, instead of developing a reasonable facsimile of their application, they’d simply display the actual application on a projector screen, go through it page by page, and write down the things to change.

Of course, that was the best solution from the get-go, but it wasn’t necessarily one that would have resonated with the client. It was a solution that shifted the burden of work to their side of the table.

I think that this case produces three key lessons learned:

First, of course, is to avoid the “Buffet Paradox” in the first place. Start small, iterate frequently, and add additional fields, functions, screens or even menu dishes over time as you understand more about what’s needed and what’s popular.

Second, realize the shortcomings of copies. The “sandbox” version of an application might not have all the same data or users or even bugs as the production version. It’s not always practical–or even advised!–to do the actual work on the “live” application, but know that, just like when you copy a CD track to an MP3, some fidelity is lost in translation. Just like a mechanic can’t diagnose your car by describing the problem over the phone, the best way to analyze an application is to look at the real thing.

Finally, understand that the “optimal” solution may not be the one the client wants to implement. Sometimes consulting involves just being a sounding board; take the input, define the problem, delineate some solutions, and, like an episode of CSI, let the evidence speak for itself! If the solutions you propose are all more work/time/money than the unspoken “simple” solution, it becomes much easier to say, “But if these seem to be out of scope, we could always do X, which would fix the problem the most quickly even though you’d be taking up more of the effort.”

A blank sheet of paper is a scary thing to behold. Once you’ve put up some options, finding the best one gets that much easier.

Posted in Business, Mini-Cases | 2 Comments

my new bike

Oh. Ow.

The reason for the pain is that I bought a bike, and just put the first 3 miles on it. This is a big deal because the last “bike” I owned had a motor, and before that, it was a 1993 Specialized Rockhopper mountain bike which I used to ride up and down and all around the hills of Central PA. I was younger then, and more…svelte.

I had been trying to get back into running, with limited success. I’ve determine that the reason for my failure is that I like the concept of having run but not the actually process of running. While I’m making excuses, I’ve also realized that running in the city is almost as not fun as running on a treadmill: concrete pavement hurts, and I don’t like having to jog in place at a stoplight, only to have to sprint by 5 lanes of traffic to get to the only non-sidewalk I can find that I don’t have to drive to.

DC was a much more runner-friendly city. Lots of good paths, and it wasn’t hard to find a great trail-running site; running through the woods is just about the most fun you can have while you’re running. But, this is Boston, and plenty of other people seem to run right by our condo with minimal difficulty, so I guess that means the problem is me.

The other thing is, I never before got to the point where I couldn’t go out and actually run a 5K. It may not have been a fast 5K, but I could always keep moving for 3 miles or so. Somewhere in the last year, my out-of-shapeness progressed beyond that point, and I can’t even keep the legs moving past about 20 minutes without having to walk for a bit.

So I started thinking again about bikes.

I’m not sure why I stopped riding; I guess I just didn’t have the time, and I figured that running was better exercise–which it is, in terms of sheer calories burned per time interval. But, since grad school wrapped up and I’ve been looking for a fun activity to take up some of my non-billable hours, the thought of getting back into riding somehow slipped into my brain.

And riding is fun in the way that running is not, and for every uphill climb, there’s a downhill coast to catch your breath. Worst comes to worst, you drop into a crazy low granny gear and just sloooowly make your way to the top of even the most painful ascent. On foot, the only thing worse than going up the hill is turning your quads into jelly on the way down.

From a practical perspective, it kind of makes sense: we live in the city, within a short riding distance of grocery stores and bike paths. Walking to the store sometimes takes just a little too long to be practical for short errands, but taking the car seems like overkill. Wouldn’t it be nice to combine the two?

I did some research into the state of the art right now and determined that a hybrid-style bike made the most sense; I’m not doing any real mountain biking, but I like the upright riding position of a flat handlebar bike. And I wanted to be able to put a rack on the bike for those alleged errands.

As it turns out, Trek decided to start making a line of bikes with road-sized 700c wheels and road-bike geometry, but a flat handlebar–their FX series. It’s a step up from a “comfort” bike and actually designed to go fast in an urban environment, as opposed to a lot of other hybrids which are geared towards a more casual audience. Not that I’m Lance Armstrong or anything–you will recall that I hurt from a 28-minute excursion on moderately hilly pavement–but I do like going fast. And, just like my guitar, I like the idea of having a bike that’s going to play a little rough, that’s going to push my abilities, that’s going to say “I may not have drop bars, but you should be able to hit 35 going down this straightaway.”

Here she is: The Silver Bullet:

new_bike_small.jpg

So I’m pretty happy so far, if a little out of breath. Also exciting: the matte silver paint job, and my matching white and gray helmet that reminds me of the old white Bell helmet I used to wear the last time I did any real biking.

And most exciting of all is the prospect of finding a fun way to get some exercise again. I think that riding could be the domino that helps all the rest of the pieces of my life fall into place: more exercise means better sleep and a better sleep schedule; more energy means more drive which means getting more things done.

Posted in Personal, Things I Like | 2 Comments

bicycle

I’m thinking about buying a bicycle.

I’m not 100% sure if this is one of those things that I come up with periodically that I obsess about for a few weeks and then let go of; I’ll have to see where I feel once a few weeks have gone by. That said, I’ve almost always owned a bike. And, working from home, I now have more opportunity than ever to go for mid-afternoon and early-evening rides with no impact on my work schedule.

I was mentioning to Kara that if I hadn’t sold off the motorcycle, this is the time I might actually be riding it…she’s working late, I’ve got some free time, and going for a ride probably trumps happy hour in terms of practicality and overall health. I kind of feel like if I had a bike, I could run short errands while I get a workout; it actually makes me more efficient.

If I do go down this path, I’m thinking a dedicated hybrid makes the most sense–a low-end Specialized or Trek. I could put slicks on a mountain bike, but a hybrid would ultimately be faster with the 700c wheels, and I don’t think going all-out on a road bike is exactly what I need. Part of me says “Oh man, a hybrid? What’s next, a minivan?” But a street-ready runabout with a rack on the back and an upright, Boston-driver-aware riding position just makes sense; I’m riding on pavement, so I don’t need knobby tires, but I’m also not racing, so I don’t exactly need drop bars. I need a workhorse, beater bike that I can take to the grocery store or riding along the Esplanade by the Charles, and that’s about as far as it goes.

Ideally, I’d find somebody on Craigslist wanting to part with a late-2000’s Crosstrail or Trek Multitrack for >$200, which makes it a fairly safe investment…I could turn it around quickly if the bug didn’t stick.

I think I might also be able to convince MJP and Stephanie to buy bikes (I’d have to get Kara one as well, of course), which would give us another thing to do on the weekends other than just go out for food and drinks. And, I sincerely believe that running is the best exercise, but it also hurts. It is not that much fun. Riding is still exercise, but not quite as brutal.

Any thoughts from the cyclists in the audience?

Posted in Personal, Things I Like | Leave a comment

labatt the lolcat!

Oh hai! Look at what I has found!
kitty_in_drawer.jpg
kitty_in_file_cabinet.jpg
kitty_in_desk.jpg

Posted in Humor | Tagged , , | 1 Comment

proving yourself

Somebody told me a long time ago–and I hated hearing it then, and I hate hearing it now, and I hate knowing it’s true–is that you can never stop proving yourself.

You never “win.” It’s never over. You prove yourself, you establish credibility, you maintain it, you recover it, you prove new skills in new areas with new people and new groups, and you do it constantly, and continuously, and pretty much forever.

Some of it is about knowing. A lot of it is about proving that you know it. I guess there are some shortcuts, but they only save you so much time. Maybe, you avoid proving it to people that don’t matter? But how do you know they don’t matter?

I don’t like it, but it’s true. I know what I know, and I wish everybody knew it. You never get to rest on your laurels.

Posted in Business, Life | 1 Comment

40 hours

Now that I primarily work by the hour, I’m stunned at just how difficult it is to get to a full 40 billable hours.

“Billable” basically means that I’m actively working for a client. That is, I’m writing code, or leading a call, or configuring something, or talking strategy, or whatever. Yes, being on a conference call counts, as does being at an on-site meeting. But lunch doesn’t, or travel time, or waiting around for an email so I can move forward on something, or waiting for a call that ends up getting canceled.

So when I started measuring up weekly hours, it was kind of shocking how relatively difficult it is to get to that magical “full-time” number of 40…and I’m probably busier now than I was when I had a regular full-time job. A pretty “full” day sometimes involves only 5 or 6 actual hours of productive work.

Maybe I’m an outlier in that most people are actually busier in their regular jobs. I tend to think, though, that there’s a lot of overhead in a salaried position that doesn’t really get recorded. Some of that is good: management by walking around, hallway discussions, and all the interpersonal interactions that are a key part of a healthy organization. It’s also worth saying that, as stated in Tom DeMarco’s famous “Slack,” 100% capacity utilization in knowledge workers is not a good thing.

The problem is, being a freelancer, a) you don’t have a ton of interpersonal interaction unless you’re actually doing meaningful, formal work with a client, and b) it’s not that easy to convince a client to pay you for time you spend just thinking about things. Furthermore, you’re most likely getting paid to perform a specific task, not to dream up a solution to a problem yet unsolved.

On the positive side, that “problem yet unsolved” is another project you can (potentially) sell. It’s also really nice that when you’re off the clock, you’re off the clock…if there’s no work to do, you can knock off long before 5 with no repercussions. Ideally, you’d fill that time by trying to drum up more work…

I’m curious, though…what are other people’s experiences with filling time? Is it just me, or is there really a lot of non-productive time? And is that ok? Should I be figuring out a way to charge for “thinking time”?

Posted in Business, Life | 1 Comment

goals and limits

A topic that came up over lunch last week was the need to set personal limits.

When you start with an opportunity, your natural tendency is to view the sky as being the limit: ideally, the opportunity will sweep you off to fortune and glory. But it might also take you places you don’t want to go, either because you start getting into Peter Principle territory, or you end up in a bad ethical spot, or you’re suddenly just not happy anymore.

Some examples: you see this all the time with programmers. They’re successful and smart at programming, so somebody promotes them to a management position, and suddenly they’re miserable at having to deal with constant “HR issues” and not being able to focus on their skill and passion. The goal was to be successful in the most general sense, and the lack of limits allowed them to be moved into a position where they didn’t want to be.

It’s common for entrepreneurs as well. A guy can be an excellent startup CEO–hires the right people for the first 10 jobs, can wear every hat in the company from janitor to salesman to graphic designer, smooth-talks his way out of liquidity problems when the checks haven’t cleared in time. And that same guy can utterly fail when it comes time to be a 100-person company with all the requisite regulation and formality and procedures. The reverse is also true: the CEO of IBM (probably) wouldn’t know what to do if he didn’t have a huge budget to spend on getting the best consultants and employees to actually do the work. But he knows better than anybody how to do the high-level strategy that’s required for such a massive company.

This doesn’t mean than one person is smarter or better than the other. It simply means that different people have different skill sets, and setting a limit keeps you from ending up in a place where your skills won’t help you.

You need to think about things in terms of both goals and limits. They define your ideal path in opposite ways: a goal says “I want to end up here,” while a limit says “I’m not going any further than this.” Saying “I will program but I never want to manage other people; I will run this company until it hits $1 million in revenue; I will only work for a company of a certain size or geography or industry” is a good way to help you define not only what your goal is, but what your goal is not.

To the extent possible, you want to have some freedom to go with the flow and explore new opportunities as they present themselves–to move between the currents in the stream, as it were. Setting limits allows you to get a feel for when to move out of a given current before it takes you over a waterfall.

Posted in Business, Life | Leave a comment

no entry today

No blog entry today. I can’t think of anything I want to say enough to say it.

I suppose the absence of speech is, in itself, a statement.

Back tomorrow.

Leave a comment

things i like: wireless keyboard with integrated touchpad

My buddy MJP recently bought one of these Samsung Blu-Ray all-in-one home theater systems after being without surround sound for some time. He’d also been working on building a home multimedia PC; he wanted to be able to stream things like his wedding video or photo albums to the main TV, and, as he and his wife have been exclusively laptop users for years, he was starting from scratch.

I remember building exactly that sort of system years ago, when I still lived in Silver Spring. Even went so far as to run stereo wires under the carpet so I could pipe MP3s through the surround sound–this was before wireless everything became quite so affordable, and in my defense, I don’t think there were even many plug-and-play wireless stereo devices on the market. So I built my own.

But, MJP ran up against pretty much the same thing that kept me from realizing the full potential of my multimedia PC: sometimes you get tired of tinkering with the hardware build process and you just want to, you know, watch TV. If you are so inclined, you can spend weeks building a really cool multimedia box with downloading and DVD ripping and storage capabilities, or you can pay that cable company (that I hate and shall not be named) for the privilege of using their integrated DVR.

So he ended up trading in all the computer components and got the Samsung, which, as it turns out, has a number of integrated applications for interfacing with popular websites and Internet services, like Netflix streaming videos and Youtube. And it’ll connect to any storage device on your home network, so that covers accessing your photos on your TV.

I was disappointed that it doesn’t work with Hulu (yet). I’m all for buying purpose-specific appliances rather than trying to hack a PC into a combination DVD burner and toaster oven, but I’m going to give this one some more time. After all, I already have a home theater setup, and I’m not all that excited about Blu-Ray.

That doesn’t satisfy my occasional need for Hulu, though. What I’ve been doing is running Hulu shows (Kitchen Nightmares, mostly) through my old Dell 630m, which is hooked up to a 30-foot combination VGA/stereo cable (thanks, monoprice.com!) that hooks into the back of the HDTV. The only downside is having to pull the laptop from its perch on top of the subwoofer.

But, that speed bump has been eliminated with my latest purchase:

wireless_keyboard.jpg

It’s surprisingly hard to find a really good wireless keyboard with an integrated pointing device. This one isn’t perfect–I didn’t quite realize until I used it for a bit that it could really use some volume controls–but it is very small and light, and stores easily in a drawer. I adjust the volume with my regular TV remote anyway, so it’s not a huge deal.

It’s also not cheap, but, again, wireless keyboard with integrated mice just can’t be found for the same $20 as an off-brand wireless keyboard/mouse combo. I think it’s worth the trouble to not have to keep track of a separate mouse.

And, of course, if you factor in the money you save by recycling an old laptop, it practically pays for itself. That’s what I’m telling Kara, anyway.

Posted in Things I Like | Leave a comment

absolute essentials and nice-to-haves

I love living in a condo with a balcony. I like saying that it’s the most expensive treehouse I’ve ever owned.

In the more pleasant months, it’s my outdoor kitchen–I’m not quite bold enough to grill outdoors 12 months a year. Thanks to a flat extension cord that fits under the window, it becomes an office as well, or just a place to relax and get some fresh air while surfing the web. In the past, when I was more active in woodworking projects and the like, it’s been my workshop. And, when the weather turns cold, it serves as extra storage space for bulky, heavy things like air conditioners.

I was talking with our neighbor last night, and he commented that he doesn’t tend to use his that much; certainly not as much as me. “I guess I’m just not a balcony person,” he said.

But for me, a balcony–or any outdoor space, really, like a deck or patio–is now what you might term a “key decision criterion.” That is, it’s something absolutely essential in making a choice: if I were looking for a new condo or a new house, I absolutely would not buy one that didn’t have an outdoor space, no matter how many other appealing features it had.

It’s important to make the distinction between key decision criteria and “nice-to-haves.” I also love having a car with a sunroof, and so, when I’m searching for cars online, I always add “sunroof” as an additional key parameter, but I’m flexible on things like color. I might like silver better than green, but given a green car with a sunroof and a silver car without, I’ll go with the green one.

Key decision criteria are usually pretty obvious–if you have a family of 4, then your new car is going to need to have at least 4 seats; if your job is in Boston, your house needs to be in a nearby location. But when you’re selling a product, the challenge is identifying those specific and non-standard decision criteria that might keep you from making a sale. Once upon a time, a cell phone camera was a neat option. Good luck selling a phone that doesn’t have one today!

As I write this, it occurs to me that there are definitely degrees of “essential-ness,” and you might be convinced to bend on something you consider a key criteria, given an unusual enough circumstance. That family of 4 might buy a 2-seat sports car if it came with a free minivan. I might buy a condo in New York City if it came with a free helicopter that would take me to work in Boston every day.

Or, to be a little less extreme, a really large condo selling well below market value in a great location with included parking and a brand-new interior–but no balcony–might end up on my short list. I would probably need access to the roof deck, though.

Posted in Business, Life | Leave a comment