Tumblr lkbvy1A9s11qdjdp1o1400

In the fall of 2010, I began working “full time” for ContactMonkey, a Toronto-based startup focusing on making it easy to give people your contact details. At the same time, I’ve continued to run Innoveghtive, my own web development shop. I don’t do a ton of client work these days, farming it out to one or more trusted hombres.

This is a rather odd position for me to be in. On the one hand, I have my natural experience as a development agency, serving at the whim of clients who pay for my effort. On the other hand now, I am working for a company developing and refining a product. I get paid a regular salary; unlike for Innoveghtive, there’s no direct connection between the work I do and the money I get paid.

At first, I brushed off that distinction as an implementation detail. I accepted the job because I was frankly having a hard time making enough on my own (The work was — and is — out there, but clients’ willingness to pay their bills? Not as much.). But lately I’ve been coming to realize that there’s a fundamental difference between these modes, and to my thinking, they are largely incompatible.

That difference came to light last week. I have been developing a stats panel to help us figure out how people are using the ContactMonkey service. It was the result of a couple months’ work, doing needs assessment, design mockups, approvals, and the implementation. I had worked hard, learned new things about myself, uttered many curse words and been kept up late at night thinking about the problems tied to this project. So when I finally rolled it out and demonstrated it for the boss, it was with the feeling of a completed project, and this is where the accolades roll in.

But no.

Instead, what I received was a set of change requests a mile long, some of them quite involved. This project wasn’t done; it was just getting started.

And I was really pissed off. This was going to add a lot more time to the project. How was I going to fit this in with the work I was planning to do then? Time equals money, so now we have to drop back and talk about extra funds…

Wait a sec. That’s agency thinking. In a product scenario, most of those pressures don’t exist. In an agency scenario, I’m wrestling with the pressure to get jobs done as quickly as possible, so I can move on to the next one. If there are enhancements or scope changes during the job, that’s a big problem, and something that needs to be dealt with quickly, because it takes us out of the discussion about work, and back to where we talk about money.

The result of that agency focus is that jobs get done more efficiently. But they also don’t get done as well. The incentive isn’t there; the very structure of the business works against it. If you want more, you have to cough up more cash. Dollars equals work.

But product focus turns that on its head. The money question has been (or should have been) taken care of. I’m working on just one thing now, and instead of getting ‘er done and moving on, I’m iterating over and over again. There’s a refinement to ContactMonkey that I’ve never brought to any of the applications I’ve developed for agency clients. When a feature we implement doesn’t work out, we shrug and excise it. When we try something small, we see if it works and then invest more time in it.

The product focus is a state any agency might aspire to, but I see it as a stark contrast. If your web-based (or mobile-based, or Mac-based) product is a core part of your business, you’re a damn fool if you outsource it. The people working on it couldn’t possibly care as much as internal staff. The agency is looking to invest as little work as they can for the budget. The product person is there with a sole focus on the results.

So in that way, it’s compelling to have a product focus. But I have to shed my preconceptions about working in that environment. I’ll lose a lot of negativity, and quite possibly produce my best work.

Photo Credit: Random Sarah