I'm actually thinking about Fabrice Bellard, who was featured in a article that was met with success here two months ago[1].
> Bellard made it seem natural to pull together his mathematical insight, broad experience at instruction-level coding, and careful engineering to advance the field this way
When you look at his achievements[2], I have trouble finding one that would have succeeded with OP's "advice". Between an app for coffee-lovers and QEMU, I think the careful thinking and engineering crushes the hype of "let's do it". Sure it sounds good, but that is not the way you will achieve something meaningful.
I may sound like an ass while it is not my goal, but
- I'm kind of surprised to see the success of this article (50 votes for 2 hours) given the low level and amount of content it offers
- I distrust analogies, and this gamma-correction one is definitely unsound (not to say dumb)
I think both you and the parent got the wrong impression.
The article is not saying "just start coding -- and skip planning and engineering".
He says "just start working hard on the problem from day one, INCLUDING the planning and engineering parts -- instead of leaving it for later, or doing only low hanging fruits in the beginning".
"Start working hard early on != just start with coding immediately".
>- I distrust analogies, and this gamma-correction one is definitely unsound (not to say dumb)
Nothing unsound or dumb about it. It's just that he could reduce it to the curve shown --taken to mean project completion--, without mentioning gamma at all.
The curve is the important part of the analogy, not gamma.
On the other hand you have projects with incredibly detailed architectures all mapped out, way too much time discussing / planning / envisioning what to build, when to build it and how best to go about it. Not a single one I can think of actually followed the plan (you will always get kinks in the road), and as such these things are always over due and over budget.
I guess it's more about finding a balance with what works - perhaps keep an end goal in sight; with a simplistic high level overview of the project/feature, thus giving you the freedom to move around any problems that may arise, but also not tying you down to a detailed plan / architecture that almost certainly will need changing. Iterate fast, stay flexible(?)
But one thing I definitely agree with - and that's to get started immediately; whether that's to plan or to code - just start. It will always take longer than you think, and that last 10% is equivalent to first 90%, if not more.