John Carmack on Idea Generation
amasad.me
amasad.me
For instance, one basic idea is to "accelerate stressors". Systems (and ideas) that are fragile won't survive exposure to stress, and the more stress we hide them from in an attempt to make them more robust, the worse the expected value (since we gain false confidence and invest more on a fragile foundation). Protecting from stress could be anything: automatically restarting crashing services, throwing money at hardware to scale out rather than addressing underlying performance issues at the edges, etc. When we accelerate stressors, we more quickly find out what works, and we commit to the graveyard our bad ideas and systems before they can take root. (If we test after building them, sunk costs leave us patching and iterating, and unable to change fundamental design flaws.)
Another proxy for this is the Lindy Effect, which is a statement of how past longevity relates to future expected longevity. What has been around a long time (X years) can reasonably be expected to be still relevant (or as relevant) X years from now. If you're building throwaway code you can write in two months that you expect to only be relevant for 12 months, then by all means, use the flavor-of-the-month JS framework. If you expect the code to be relevant for 5-10 years, and you're going to take a year to write it...maybe look for as much code committed to infrastructure/languages/frameworks that have a chance of still being relevant 5-10 years from now. And certainly don't pick a tech with an expected future lifespan shorter than your poorly-estimated expected development time!
There are MANY design principles to be learned from Taleb's book. Many are generalizations of ideas and mantras we've already internalized in the code domain. Via negativa is one--we colloquially see one manifestation of it as YAGNI and DRY. Maintaining long options is another--retain optionality in designs to potential upside (e.g., make it easy for others to extend your work and contribute to capture the value they provide.)
Your article is important for people who didn't have the privilege to listen to the talk (like me). So thank you for writing. It would also be interesting to read the takeaways of other people in the room even though the talk could be boiled down to "Tearing down ideas".
"As soon as you get an idea you try to defeat it. You’ll be able to generate more ideas because you freed up mental space."
These are good ideas, both from coding as well as entrepreneurial perspectives. Every failure you encounter, if taken as a learning lesson, will make you or your ideas stronger.
I wrote a more comprehensive essay on ideas here: http://brianknapp.me/books/creative-pursuit/chapter-7/
> Everyone has their pet ideas that they go around discussing. The more time this idea spends in your head the less critically you think of it. Now, when the time comes to actually try implementing it, if it fails you’re left discouraged, embarrassed and might even quit the project you’re working on.
This was, for me, the crucial insight of the talk this post is written about.
This is just one instance of it, but many people have written about it by this point.
It's great because I can add ideas quickly from a widget on my phone's desktop.
Also as a counter-example, I've had ideas that I dismissed because I found apparent flaws in them and then I've seen those ideas being built into successful companies because users don't think like me and didn't care about my issues.
Not necessarily true. OSX, Oracle, MS etc.. are used by many and are under constant stress test.