(no title)
calebpeterson | 1 year ago
> Experience is what you get when you don’t have any.
The only better experience than working on a legacy codebase is working on a greenfield project long enough to watch it become legacy and see the good and bad consequences of past decisions.
namdnay|1 year ago
pjmorris|1 year ago
"The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one."
Brooks reasons that the combined experience of doing the first project well and the second project badly leads to better designs from then on.
fjjjrjj|1 year ago
gorbachev|1 year ago
One of the tells of an inexperienced engineer I use is how much they disparage the previous team's work.
beoberha|1 year ago
Edit: oh and how could I forget as simple and readable as possible
kerkeslager|1 year ago
I'm not granting a "rewrite from scratch in Rust" exception even though that's in vogue right now. I'm not saying don't rewrite it in Rust, I'm saying don't rewrite it from scratch. It's harder to write new features in Rust while maintaining the old C code, but it's the right way to do it.
jcheng|1 year ago
https://en.m.wikipedia.org/wiki/Second-system_effect
rcxdude|1 year ago
purplethinking|1 year ago
calebpeterson|1 year ago
atoav|1 year ago
The latter is less costly and only requires you "only" to open your eyes and look at projects that are in an ugly state the right way. Yet surprisingly few people are capable of looking at someone elses fucked up project and not going all like: "Hah! Idiots! I would never have made that decision".
Maybe however that crusty piece of code used a framework that — back in the day — was the hottest, trendiest piece of technology out there and you are currently in the process of committing similar sins, and you won't know it till it is too late.
For me adminstration of Linux servers has been an invaluable source of inspiration. You are directly and 100 percent exposed to the effects of software aging in a changing environment. And you directly wittness which software ages like fine wine and which ages more like milk.
globnomulous|1 year ago
Now I'm curious. What software has aged well? What software hasn't? Do certain types or categories of software tend to age better or worse?
pavel_lishin|1 year ago
calebpeterson|1 year ago
There is no teacher quite like cause and effect.
regularfry|1 year ago
rafaelmn|1 year ago
pz|1 year ago
Having the context or, better yet, responsibility for the past decisions is great for developing a pragmatic approach to software design AND empathy for other software engineers.
ixtli|1 year ago
softfalcon|1 year ago
lmm|1 year ago
svachalek|1 year ago
calebpeterson|1 year ago
konfusinomicon|1 year ago
hinkley|1 year ago