←back to thread

873 points belter | 4 comments | | HN request time: 1.96s | source
1. pgsandstrom ◴[] No.42947068[source]
> Most programming should be done long before a single line of code is written

I'd rephrase this to something like: Most programming should be done before 5% of the code is written. Because "no plan survives contact with the enemy". I often develop a plan, work for just a tiny bit, and realize some new constraints. It's after that point that you should construct your grand battle plan.

replies(3): >>42947169 #>>42947764 #>>42948334 #
2. latexr ◴[] No.42947169[source]
From “The Cathedral and the Bazaar”:

> # 3 “Plan to throw one away; you will, anyhow.” (Fred Brooks, “The Mythical Man-Month”, Chapter 11)

> Or, to put it another way, you often don’t really understand the problem until after the first time you implement a solution. The second time, maybe you know enough to do it right. So if you want to get it right, be ready to start over at least once.

https://en.m.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar

3. v3ss0n ◴[] No.42947764[source]
Its wrong in those day , exploratory coding is better for dynamic languges like python using jupyter notebook , and then do proper coding after exploratory step..
4. The_Colonel ◴[] No.42948334[source]
I've made an opposite progression from the op. I was a strong believer of upfront design, but now value iterative approach as you do.

For the first try, hack together something working, you'll learn things along the way, validate/disprove your assumptions. Iterating on this will often bring you to a good solution. Sometimes you find out that your current approach is untenable, go back to the whiteboard and figure out something different.