Outside of a few breakthroughs here and there, most things that are good are good because they got there slowly.
He also linked to the Joel Spolsky article Good Software Takes Ten Years. Get Used To it., which DHH referenced as a classic, but was new to me. I really like Joel and I’ve read a good amount of his posts and articles in Inc. over the years, but I missed this one, since, you know, I was a sophomore in college when it was written in 2001.
Even though it’s a decade old, it really struck a chord with me. While I’m developing something like the LockerPulse Ad Platform I’m equal parts excited and stressed out. Excited for obvious reasons. The stress comes from knowing the fact that we’re only a small portion of the way to being where we want to be with it, and nothing other than time is going to get us there. Time to develop, but also time to analyze data and listen to the feedback from our customers. Even with a huge budget and a lot of people, you can only accelerate so fast.
A few really interesting pieces from the article:
You write the first version of your product, a few people use it, they might like it, but there are too many obvious missing features, performance problems, whatever, so a year later, you’ve got version 2.0. Everybody argues about which features are going to go into 2.0, 3.0, 4.0, because there are so many important things to do.
This excerpt has a calming effect on me. Like “OK, all projects go through this and it’s not necessarily because we’re potentially too small or too overworked or underfunded”.
So, it takes a long time to write a good program, but when it’s done, it’s done.
I actually believe that this statement can apply to web software as well. I think there will come a time, maybe a year or two from now, when LockerPulse will be “done”. It doesn’t mean there won’t still be work to do to keep it up to date with the ever-changing web, just that the functionality that will be useful to our core audience is finite in scope.
He goes on to list some of the common software development mistakes.
Mistake number 1. The Get Big Fast syndrome. This fallacy of the Internet bubble has already been thoroughly discredited elsewhere, so I won’t flog it too much. But an important observation is that the bubble companies that were trying to create software (as opposed to pet food shops) just didn’t have enough time for their software to get good.
Again, patience grasshopper.
Mistake number 2. the Overhype syndrome. When you release 1.0, you might want to actually keep it kind of quiet. Let the early adopters find it. If you market it and promote it too heavily, when people see what you’ve actually done, they will be underwhelmed.
This is what I was getting at when I wrote Obscurity is Your Friend. To an extent, we’re still “keeping it quiet” with LockerPulse for a little longer. When you have a limited marketing budget like us (or really, even if you don’t), there’s no sense in wasting it on what you know is going to be a vastly improved product six months down the road.
Mistake number 5. The “We’ll Ship It When It’s Ready” syndrome. Getting good software over the course of 10 years assumes that for at least 8 of those years, you’re getting good feedback from your customers, and good innovations from your competitors that you can copy, and good ideas from all the people that come to work for you because they believe that your version 1.0 is promising. You have to release early, incomplete versions — but don’t overhype them or advertise them on the Super Bowl, because they’re just not that good, no matter how smart you are.
For web apps and web software, maybe it’s not 10 years, but it’s also not overnight. I know for us, it’s looking like LockerPulse will probably be a 2-3 years in development before it’s what I consider to be “awesome”. I started working on it somewhere around October of 2009, which puts us at about the 1.5 year mark right now. We’re getting there. For many of our users, myself included, the site has improved the way they consume their sports information, and that’s pretty cool.
There’s still a ways to go though, which is OK because we’ve got DI still growing and supporting us. Which I guess is another lesson: not expecting your web software to become wildly profitable overnight. I think you have to have another source of revenue, be it a job or another business, to take the pressure off. While there are a few outliers for sure, most companies, 37signals included (they had clients for a number of years), have had steady growth over a long time to become immensely successful.
As DHH summed up nicely in his post yesterday:
It’s not only good software that takes a decade to develop, good companies do too. If you agree that’s true, it follows that you wouldn’t want promising entrepreneurs to go chasing waterfalls before they know how to paddle in the pond. Or something like that. I guess what I’m trying to say is that I want to see evolution get a chance to work its magic, but if great products and companies keep getting abandoned or bought after 3-5 years, there’ll be less of that. And that’s a damn shame.