Thought 1: I want to make a forum. Here's how I will make the front page that lists all the forums, making it clean and easy to see the most popular stuff, even if it's older...
Thought 2: But wait. Do I need a front page that lists all the forums? Am I optimizing instead of thinking?
Thought 3: Are forums really the right tool for the job?
Thought 4: How would I recognize the right tool for the job? What does communication mean? How does this change on the internet?
I do this, but unlike the author I've come to regard it as generally a bad habit. Too much thinking gets in the way of doing. These days I try to avoid over-thinking everything, and concentrate on just making something - anything, and seeing what happens when I launch it.
this is sometimes a good idea, sometimes not (think Space flight, for example).
The current thinking, probably stemming from Google's design-by-stats methodology is that this scales down to startups, you build something and morph it based on feedback. We used to call that design by committee, but clearly when you give it a new name its a different animal :)
I think what's more likely to have happened is that the problems have changed from things like best way to compress these bytes, faster state machine for this network stream, better LCS algorithm to find my n-gram etc, to problems that involve many social factors for their success. When this happens the only way to find those factors is to involve the social community that is creating them. Often those doing the iteration/refine cycle with the developers are not the same as those ultimately using a product, but when it works, it works well.
Software is seeing a shift towards large scale problems, like making the accumulated history of mankind available to anyone, anywhere; or supporting complex life decisions; or connecting and staying connected with multiple disparate sets of 'friends, etc. These are radically different problems being solved in different ways.
instead of imaginary iteration just switch to actual iteration. at some point you run into technical/time constraints and the problem is solved for you.
Thought 2: But wait. Do I need a front page that lists all the forums? Am I optimizing instead of thinking?
Thought 3: Are forums really the right tool for the job?
Thought 4: How would I recognize the right tool for the job? What does communication mean? How does this change on the internet?
I do this, but unlike the author I've come to regard it as generally a bad habit. Too much thinking gets in the way of doing. These days I try to avoid over-thinking everything, and concentrate on just making something - anything, and seeing what happens when I launch it.