Stop Overengineering
Something I constantly find are overly complicated applications. Whatever it is that you’re building right now… stop. Take a second to analyze your situation.
As humans, we like to be optimistic about our ideas. We are going to make a billion dollars. This is going to have a million users. We need to be able to scale to 10,000 requests per second.
Stop it.
Let’s start with something I read yesterday on Twitter:
Campfire, to this day, still uses a 3-second poll. And chat was supposed to be the poster-boy example for web sockets and friends. Ha.
— DHH (@dhh) September 26, 2012
One of the most popular chat applications for businesses is not truly realtime. And do you know what? Nobody even cares. Nobody even notices, and that should amaze you.
This is such an important thing to note when you’re building a business or product.
Users don’t care how your product works. They just want it to do its job.
If you’re building something new, first you need to get people using it. You don’t need to plan for scale until you’re actually approaching scale.
Especially in the startup space, you’re going to be continuously changing your software. Think about what gets the job done properly right now and do that. No product is ever fully designed at the beginning. Build software that’s ready for change.