Things to consider before starting your next project, a letter to future me:
- Tight bounds
At the start of any project the excitment and energy levels are high. You’re optimistic – the possibilities are endless if only I could build feature X and then Y and then Z, it’d be awesome and by extension I’d be awesome.
This is not how to model a problem space, there are fixed limits and bounds on resources when devising solutions to problems, you need to know it’s the right problem first. If you’re working nights and weekends on things, you have a very tight window to figure things out.
What you need is a hypothesis – a guess of how something should work and affect the world based on your current knowledge.
The goal of your project is to test this hypothesis as cheaply and as quickly as possible.
- Fast feedback loops
The name of the game is execution, the point of prototypes is initially validation. You need to always be testing your ideas against reality. The danger with ambitious technical projects is the feedback cycle is too long and far in-between. You could very well have learnt and perfectly executed on a solution to a domain and problem space that doesn’t matter.
There’s more opportunity and ways to win than you have resources to find out what’s what.
You need breadth first search when it comes to getting a feel for things, finding some sense of what different people are working on and what seems interesting – but really what gets you from point A to point B is depth of knowledge and demonstrated execution.
Always be executing on a single problem. Always be thinking about many problems.
- Close the chapter
You need to make your peace. You need to know things succeed or fail. Close the chapters. My single greatest mistake and best decision was to start ambitious projects and never finish them – what I gained by taking a long-term view on things I lost in the ability to iterate and generate new ideas.
Before you build something large and great, you need to build tiny things, the blocks so to say. Most importantly you need great taste, some vibe of the path.
- Have fun
The point… is to have fun while doing it. This is probably the most important point, it’s infinitely more rewarding to work on things that go no where as long as you’re having fun making them, learning things you think are cool and doing things you think are interesting.
You can’t know what’s important apriori, so you have to always be guessing and feeling in the dark.
You should enjoy your work.