3 ms·
> Doing something for the first time, almost by definition, means one does not really know what one is doing and is going to do it somewhat wrong. The Mythical
by krylon 9y ago
> Doing something for the first time, almost by definition, means one does not really know what one is doing and is going to do it somewhat wrong.
The Mythical Man-Month has a chapter on this titled "Prepare to throw one away". Brooks argues, that the program/OS/whatever you build the first time around should be considered a prototype. Then you reflect on what problems you encountered, what went well, and so on and use those insights to guide you when start over.
It seems like such an obvious idea, but Brooks wrote that almost 50 years ago, and it seems like only very few people listened. Primarily, I guess, because much software is already written under highly optimistic schedules - telling management and/or customers that you want to throw the thing out and start over is not going to make you popular.
- coldcode 9y agoThat do it twice idea originally came from Royce's famous article in 1970 which lead people to claim he invented Waterfall (due to the diagram he started with). Reflecting on practices from leading teams in the 60's was that do the project once to learn everything, and then do it again and ship the second one. Worth reading.
- moron4hire 9y agoWhat's also obvious is practically no manager is going to go for that.
- randallsquared 9y agoOn the other hand, we have the Second System Effect, about the dangers of throwing away the first version of Thing in favor of "Thing Done RIGHT This Time".