Start selling coffee beans

I ran across this interesting Starbucks fact (via Seth Godin):

It wasn't until several years after the company was up and running that they realized it would be a good idea to sell any beverages at all. All they sold was beans.

It's inspirational to think that a successful company like Starbucks had a much different business plan when they started. The company made $5.4B profit this year off people like me who, despite having some excellent Guatemalan beans and a working percolator at home, frequently find myself weekday mornings in a drive-thru line a dozen cars deep.

The business world is full of stories about companies who started in one direction and ended up finding success by doing something completely different. It's easy to hear these stories and nod with understanding — we all want to believe that someday we'll get struck with the perfect idea, slap a $4 price tag on a cup of espresso and milk, and retire with billions.

So if it's not too late to tweak your business plan, then it's never too early to start with a failing business plan. I think too many people get crippled by trying to find the perfect idea that they fail to get anything started. Would Starbucks have been in a position to execute their current plan if they hadn't started out with the wrong one?

I often find myself crippled by this fear of failure. When I do something new it's often because I just made a deliberate decision to close my eyes and take a leap. (Sometimes it's just because I skipped my morning coffee and couldn't think straight).

It amazes me to look back at some of the stupid things I've done because I don't remember where I found the confidence to do them. Like how I left a good management job at a Fortune 500 company to start Recursive Function with a shaky business plan, unimpressive savings, no outside income, and a newborn baby. It's not that I had the perfect idea — I just took the leap.

Out of college, some friends and I founded Bottled Software, my first startup company. We were very naive in our estimates of how successful we would be, made a lot of mistakes, were paid terribly, and ended up closing the door after a couple years of business. But I wouldn't trade those failures for the equivalent time as a junior programmer at Google or Microsoft. Much of what I'm doing now came from what I learned at Bottled Software, and I can certainly say that I'm starting to make espresso now only because I sold coffee beans many years ago.

I've had a lot of failures, but they've all put me in a position to create new successes (and failures) — something that definitely wouldn't be true if I had done nothing at all in the first place.

Anyone have some good stories about their coffee beans?

Why it sucks to be an in-house programmer

A couple weeks ago Joel Spolsky posted a great transcript of his talk to Yale computer science students. Among other things, he talks about why it sucks to work as a programmer at a company whose focus is not software:

You never get to do things the right way. You always have to do things the expedient way.... as soon as your program gets good enough, you have to stop working on it. Once the core functionality is there, the main problem is solved, there is absolutely no return-on-investment, no business reason to make the software any better. So all of these in house programs look like a dog’s breakfast: because it’s just not worth a penny to make them look nice. Forget any pride in workmanship or craftsmanship you learned in CS323. You’re going to churn out embarrassing junk, and then, you’re going to rush off to patch up last year’s embarrassing junk which is starting to break down because it wasn’t done right in the first place.... When you’re working on products, you can keep refining and polishing and refactoring and improving, and if you work for Facebook, you can spend a whole month optimizing the Ajax name-choosing gizmo so that it’s really fast and really cool, and all that effort is worthwhile because it makes your product better than the competition.

Joel couldn't have said it any better. Great programmers are craftspeople, and like designers, musicians or writers, they have a strong sense of pride in their work. They want to create something that's great, not something that just gets the job done. They also want to work with and for people who value the work in the same way. It's no fun working for management who just wants to know that the job was accomplished as cheaply as possible.

I have to admit this is one of the reasons why I started my own software company. I wanted more control over the work I did. If a new client comes to me with work that seems absolutely boring or a time frame that makes it impossible to do the job right, I have the option to turn it down. If I want to spend the next three days working on an Ajax gizmo just for the fun of it, then I can do that. Sure, I have to worry about the profitability of turning down clients and spending time on non-revenue projects. But I'd rather come to work each day feeling motivated, and leave feeling proud of the work I did, even if that means that I don't make as much money as the next guy.

It sucks for companies too

From a December 2007 SBA study:

It was once assumed that college graduates would graduate and then go to work for a Fortune 500 firm; that is still true for many people. What is also true, though, is that more students today see entrepreneurship as a viable option for their careers.

I have to assume that since more students look to starting their own business, and since it's getting easier for them to do so, it's going to get harder and harder for non-tech companies to find good programming talent. Especially since they already have to compete against guys like Joel who convince them to go work for Fog Creek and get lots of really cool perks.

And it's getting worse and worse for those companies as good software becomes more important to their business. Customers expect the same experience from the e-commerce website of a HVAC company as they do from Amazon. And if that internal workflow software really worked as well as applications like Gmail, then maybe production costs could be cut enough to remain competitive.

Or will dependency on technology ultimately drive good businesses to manage their IT departments like software companies? Where does that leave everyone else?

You need a product road map

I enjoyed the 37signals book and agree with a lot of their philosophy, but was baffled by today's article, You don't need a product road map.

The article makes a lot of assumptions about people who have a product road map:

  • They add all feature requests to the road map
  • They don't do due diligence before adding features to the road map
  • They sell their software based on the road map, not the current features
  • They share their road map with current and prospective customers
  • They promise features to current and prospective customers

I agree that all the things above are bad, but to me this doesn't translate at all to: don't use a product road map.

We use a road map internally for Formstack, although it's very informal — deadlines are vague, items are not well defined unless slated for release in the near future, and we take a lot of liberties in adding/removing items when necessary. But having a road map is the best thing we've done to help focus development so that what we create has maximum value for customers.

We had to make a conscious decision to put together a road map based on an overall vision for the product. Our list of feature ideas and requests is very very long, and if we sat at the keyboard each morning and asked, "what do I build today?" it would be far too easy to slip into picking the items that are easy or fun. If you pick new features at a whim, then you end up with a horrible product overall, and one that hardly appeals to any of your customers.

And while I would agree with 37signals that writing a 5-20 year plan is ludicrous, I think it's even more dangerous to not have any plan whatsoever, even if it's only a few square feet of space on the conference room whiteboard.

[Updated references to Formstack to prevent confusion about the name change]

Social social networking

I signed up for a Facebook account a few months ago and have slowly started to build my network. I sent an invite to a long-time friend, and here's the message I got in return:

I have 49 friends in que waiting because I sent them this message...

I'm quite all right with limited friends on my facebook, therefore I have put limitations on who I will accept as friends. Ah... this is where it gets fun!

I'll accept our "Facebook" friendship if you fulfill one of three stipulations: 1) Come to my house and watch me personally accept your request 2) If you live outside of Indiana, send me five "good" reasons why I should complete your request or 3) buy me lunch!

I mean come on... our friendship has to mean more than clicking "enter"!

I absolutely love that he's doing this. With social networking sites there's too much pressure to build up a big network and invite anyone that you've ever met. I'm frequently getting invites from old high school and college classmates that I barely knew then and haven't seen since. It's good to get back in touch with many of them, but does "clicking enter" really help us get connected again?

I went through a phase where I tried to rapidly build up my LinkedIn profile. What if I made it a point to have lunch with all my contacts at least once every 6 months? I couldn't even begin to imagine how much more meaningful that would be. It's just too easy to otherwise feel like we're connected because we're in each other's list of contacts, or get the occasional status update when we change some text in our profile.

How many fewer Facebook friends or LinkedIn contacts would you have if you had to buy them lunch? (By the way, soup does count.)

07/07/07 07:07:07

I couldn’t resist writing this post.

I love number patterns more than I'm willing to admit publicly. Clocks always seem to catch my eye at times like 11:11 or 4:56. I have Monk-like tendencies that prevent me from setting alarms to any “weird” number (minutes 00 or 30 are safe, 45 is OK, but 49 is taboo unless it’s 7:49). I'll strain to hear the TV just so I don’t have to turn the volume to 17.

Some good friends of mine got married on 04/04/04 (but at 1pm … argh!). 05/05/05 was especially interesting because of its significance as a popular holiday. I was pretty much ready for the world to end during last year’s numerical event.

Today, despite 120°F+ temperatures and rogue shooters, I really really want to be in Las Vegas. (It helps that the World Series of Poker main event is going on right now).

(Oh, to give you a clue as to how weird I can be about this sort of thing … this post is 777 characters long and about 7K of HTML without comments.)