Indianapolis Needs More Critics

I saw a handful of negative comments toward Formstack pop up on Twitter last Friday from a critic. I was a bit startled at first, but welcomed the dialogue and was glad we had the opportunity to respond publicly. Even though I ultimately think most of what he wanted was impractical, we came away learning something, and there's a possibility that we'll be able to apply that towards improving our service down the road.

There are few things I want more for Indianapolis than for us to fulfill our dream of becoming a city known for its web-based software companies. Foremost, we need a solid cache of thriving companies to fit that bill, and we're well on our way to accomplishing that. But in addition to the cheerleaders, champions and evangelists, we need a healthy supply of vocal critics.

Cheerleading comes natural to most of us, especially when we want companies to succeed. Being a critic is a lot harder — we don't want to turn potential customers away from a company, and we don't want to offend owners and employees that we have relationships with. But we're not going to grow if we're all cheerleaders.

Criticism helps us build better businesses.

No company is without its faults, but in many cases owners and employees are way too close to the business to clearly see glaring issues. It's often that the only way these issues will ever come to light is through seeing public criticism. At the very least, public criticism gives companies an opportunity to respond and debunk criticisms that may have otherwise been silently turning away customers anyway. For example, Facebook changed their terms of use because of widespread criticisms about privacy issues, and Twitter has many times been able to calm outrage about repeated downtime by publicly responding with details about their architecture and plans for improvement.

Criticism creates more interesting dialogue.

Saccharine posts that do nothing but praise the virtues of a company hardly ever fully engage readers and spread virally. They're good to see from time-to-time, but the more people we have engaged in dialogue, the more customers we reach.

This is hardly scientific, but for giggles I culled a list of the most commented articles on the 37signals blog in the past year. In order, they are: Why the Drudge Report is one of the best designed sites on the web, Every Mac I've owned has failed, Get Satisfaction, Or Else..., Happy Birthday - Basecamp Turns Five!, and The next generation bends over. Even though the overwhelming majority of posts from 37signals are positive (yes, it's true — count them yourself), three critical ones made it into the top five. It's also interesting to note that one of the five was positive, but about something that most people are critical about. My point is just to show that readers tend to be more engaged in dialogue that involves criticism, even (especially?) if they don't always agree.

Criticism prepares us for a broader audience.

If we're not ready to hear from critics in our backyard, especially from friends, we won't be ready at all if someone with a big audience tears us a new one. If we're unprepared for dealing with broader criticism, it'll be harder for our companies to flourish outside of Indianapolis, and doesn't paint our city in a good light to outsiders.

The truth is that critics are already here, we just need to bring them to the forefront. There are scores of Indianapolis companies who are using online forms, an email marketing platform, blogging software, a content management system and a virtualized data center ... but aren't using Indianapolis companies for any of those things. I really take no issue with that (especially since I'm guilty of this to a big degree), but do take issue with those who silently vote with their wallets and refer others elsewhere without making their concerns known.

We have a lot of great software companies in Indianapolis, but each company has its problems that turn customers away — hard to use, too expensive, bad customer support, buggy software, etc. It seems polite, even helpful, to keep quiet, but in the end it helps us improve our companies by voicing criticism and bringing issues to the forefront for those who can make changes that matter.

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

Is Business Success a Coin Flip?

Jason Cohen recently wrote a great post about Survivor Bias, the tendency to focus on learning only from successful companies. I think much of what he says is on the money, but I couldn't help but question the comparison of repeated business success to a series of coin flips:

"So I put 1000 people in a room and tell them to flip a coin ten times. Sure enough, a woman named Margaret makes "heads" ten times in a row! The chance of her getting heads ten times in a row is only 1-in-1024, so I conclude Margret has special abilities.

The chance that somebody in a crowd of a thousand would flip heads ten times is a whopping 62%! Because so many people are attempting the feat, some normally-unlikely events will happen. This isn't a test of Margaret's abilities at all!"

This is similar to the coin tossing experiment described by Warren Buffett when talking about investing. It's easy to see the comparison here — when picking stocks, the decisions are limited and creativity is minimal:

  • Pick a stock
  • Choose when to buy
  • Choose when to sell.

You can simplify the process enough to automate it or delegate to your 3-year old son. Sure, your 3-year old will probably lose all your money and resent you for the rest of his life, but the point is that somebody's 3-year old will make millions, grace the cover of Forbes, and become praised world-wide for his genius.

Starting and running a business is so much more complex, and there are many many ways you can screw it up: hire the wrong people, choose the wrong partners, build a bad product, choose the wrong market, undercapitalize, overcapitalize, set the wrong company culture, spend too much on launch parties, spend too little on legal counsel ... the list is near-infinite.

There are also varying degrees of execution. Putting together your marketing strategy or designing your product isn't a simple on/off switch like it is with a sell order on a stock. You can follow all the right steps, but execute poorly and results will be dramatically worse.

If you normalized all these decisions into coin flips, the number of flips in the lifetime of a business would be too many to count. You don't have to flip heads thousands of times in a row, but you have to get most of the important flips right.

By the way, I think the same can be said about successful career investors. I hardly think Warren Buffet's success just came from luck, whether or not any stock picks paid off because he flipped heads 10 times in a row.

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]