I consider group efforts to consist of three important steps:
- agree on a goal,
- figure out how to achieve it1,
One tends to think that step 2 is the most difficult one, but that is surprisingly often not the case. People frequently disagree on a clearly beneficial goal because they don’t immediately see solutions to steps 2 or 3. They’ll say things like
- “I don’t want a different approach because the one I am used to is the best”
- “even if you did succeed, your solution would never gain popularity”
- “surely someone already thought of that, and the fact that I hear this for the first time from you is proof that the problem is not worth investigating”
If you’ve talked to someone who works on innovative solutions or do so yourself, you’ve likely heard similar comments. These accompany many debates concerning groundbreaking research, be it fighting ageing, reusing orbital rockets, or designing programming languages.2
People seem to have trouble differentiating between a goal and a solution. They complain about properties of poor solutions they quickly came up with in their heads only to make an argument by dismissing them, thinking they’re proving the goal somehow invalid or unachievable, all the while ignoring the fact that the focus of an effort should be its stated goal.
The difficulty of a problem is orthogonal to the value of its solution. The two should be considered separately. When thinking about a potential project, I usually imagine a world where that project is complete. I contemplate its features and the capabilities it would grant me or other people. I change the goal of the project slightly (typically by extending or generalising it) to make this imaginary world prettier in my head. Once I’m happy with what the scenario in which said goal is already achieved looks like, I start to wonder how to make it a reality. The imaginative process by which I’m sketching out the project’s goal often activates associations with my past endeavours, and I start to conceive approaches to solving some parts of the project even before I’m entirely certain of the actual goal.
When I present my ideas to other people, I usually expect to excite them. I don’t come up with non-beneficial goals – the scenarios I imagine are always better than the status quo (whether my predictions are accurate is a separate issue), and thinking about them brings me joy and excitement. Imagine my astonishment, then, when I’m greeted with a dismissive attitude of a person who doesn’t even acknowledge step 1 of the process.
Tang is, by any measure, an ambitious project, and I am, without a doubt, underqualified to work on it. Tang is a solution to intractable problems, a monstrous development effort in theory and practice of both software and hardware, a platform the kind of which the world has never seen. It’s the fastest database, the leanest inner loop, the smartest package manager, the most powerful JIT, the most elegant theory, the most general useful answer, …
And yet, Tang is desirable. As other-worldy, ridiculously idealist, magical, and just plain impossible as it may seem, Tang is a desirable goal. I conjecture that figuring out how to achieve that goal improves upon the status quo, even if said goal is never fully realised. I will have to back up a bit and reconsider some of my assumptions. I’ll have to cut features, make compromises, and get my head out of the clouds in many other ways as well. I’ll have to become proficient in computer science subfields I don’t even know of right now. So be it. Join me on this journey rather than claiming it is pointless, because it isn’t.
Imagine, for a moment, what it would be like if the incredible promises of Tang did come true. Think about the impact that Tang would have if it did become a reality. And remember that the difficulty of its design and implementation does not undermine its value.
One could argue that the tasks of figuring out how to achieve a certain goal and actually achieving said goal do not always coincide. My standpoint is that if you haven’t verified the validity of your solution by achieving the desired goal, you haven’t really figured out how to achieve it (after all, you cannot be 100% certain that your plan works out). Thus, “figuring out” isn’t merely writing a plan to tackle a task, it is an activity that includes the verification of the task’s completion in the process. ↩
And I say this fully aware of the fact that I’d be laughed at if I publicly compared the last area to the previous two. ↩