>I think I'd need to see some evidence that that is a more effective strategy than starting small.
"To begin with, GNU will be a kernel plus all the utilities needed to
write and run C programs: editor, shell, C compiler, linker,
assembler, and a few other things. After this we will add a text
formatter, a YACC, an Empire game, a spreadsheet, and hundreds of
other things. We hope to supply, eventually, everything useful that
normally comes with a Unix system, and anything else useful, including
on-line and hardcopy documentation."
Looks like he did all that. (Mostly in the form of Emacs). Anyway it's hard to get more ambitious than a list like that. Other early announcements of effective projects were the same - very large vision.
Counter-argument: GNU was a copy of an existing reasonably well-engineered and well-documented solution, in almost every piece. Sure, GNU utilities often improved or extended the standard, but the design already existed. Further, GNU is a system of many discrete parts. Each piece could be built by an individual without tight interdependence on other pieces. That's an MVP. Small, useful, pieces, that add up to something bigger.
I believe GNU is evidence of the opposite point you're trying to make. Unless your point is actually "think big, but build in small, manageable pieces", but if that's your argument, that wasn't how I understood it.
Ambition is not antithetical to building in small pieces. In fact, I think most people have to start small.
While we're on the subject, I'll quote another kinda famous first announcement:
Hello everybody out there using minix –
I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-)
>Unless your point is actually "think big, but build in small, manageable pieces", but if that's your argument, that wasn't how I understood it.
Unfortunately, that was exactly my point!
I've made a modification to my original comment: I've italicized the word "approach" now, to emphasize that this is just the kind of attitude you should have.
Basically, my main point is that if you don't overengineer a perfect and very ambitious solution, you're unlikely to ship anything - but if you do, then you are more likely to ship it, even though obviously you will start shipping some small part only.
It would be interesting if there were some way to do a double-blind experiment, giving a thousand people a couple of different approaches and to see who ends up shipping :).
in short, I'm saying, by targeting something huge and overengineered, you are more likely to ship something (anything at all) - versus targeting a minimum; which leaves you less likely to ship anything worthwhile. I am not saying by targeting something huge and overengineered, you are going to ship something huge and overengineered. Rather, that you will end up shipping a small part of it. (And that this approach is better than the alternative.)
"To begin with, GNU will be a kernel plus all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system, and anything else useful, including on-line and hardcopy documentation."
Looks like he did all that. (Mostly in the form of Emacs). Anyway it's hard to get more ambitious than a list like that. Other early announcements of effective projects were the same - very large vision.