Looking Back on Selling Gravatar to Automattic
tom.preston-werner.com
tom.preston-werner.com
It's only worth scaling once you know you have something worth it. Why design all sorts of crazy cache schemes, redundant load balancers, and master-slave databases when your actual product is crap? All you end up doing is slowing yourself down. Get some validation first that anyone is going to swallow your idea.
Sure, he had some late nights and some angry emails, but that's because he was dealing with the growing pains of being a success. Better that than the loneliness and depression of working endlessly and never getting anything out the door.
and that's where experience with scaling comes in handy. if you don't have it, the next best thing you can do is to have a knowledgeable friend, read up on best practices, and deal with fires quickly.
There're still unforseen problems - there always are - but you can flush out some of the more obvious issues. And the testing can run concurrently with some of the last minute design tweaks, so it doesn't cost all that much in development time. Or do it after you launch when you've got a spare moment; very few websites get big immediately.
But I agree. The hardest bit is making something people will use, and come back and use again, and again.
(yes, I made up a 90/10 rule just to make my argument sound better).
Scale is only loosely related to performance.
You can have an application that performs pretty badly, but scales. This is much better than an application that performs well, but won't scale.
Performance tends to degrade slowly, while scale is usually a hard limit (you've reached "n" users? server crashes). Hitting an issue of scale is usually a fairly traumatic thing for a service.
I'd agree with the original comment that when you're starting you don't need fancy caching schemes, load balancers or replicated databases.
Equally you don't want to build something that is incompatible with these in the future. It's a terrible pain and is probably indicative of a bad design... As the other reply said quite well: A good, simple design will allow you to move faster and scale better..
I'm a big fan of "optimise last", but I think this is often interpreted as "put together badly and fix later"... It should really be "quantify what you optimise".
N.B. As many people here know, Tom is one of the GitHub founders. And yes, GitHub uses Gravatars.
I hope you continue writing posts like this. For an aspiring entrepreneur, it's inspiring to hear the stories from people who have taken the risks.
By the way, we worked in the same company before in San Diego. I was miserable so I just quit and moved to the Bay area.
Moving here is probably the best decision I've made in terms of my career. It's easier to meet like-minded people. I got to know startup founders and employees with no effort at all.
Your story, once written, will be one of a man fighting tooth and nail with success coming from all directions.
I just looked at getting a gravatar for my Github account. I didn't do it because the signup page told me I was actually signing up for a Wordpress account and I needed to choose a handle I could never ever change. I wanted an icon, not to make an irrevocable decision and sign up for some unrelated site, so I gave up. The author writes "Gravatar was a feature"; I felt the same way: I was left wondering why GitHub would outsource a feature for another company to confuse.
Lots of nice history here, though. Great blog post.