6 ms·
This sounds like the phenomenon dubbed Chesterton's Fence [0]. A core component of making great decisions is understanding the rationale behind previous decisi
by heymijo 7y ago
This sounds like the phenomenon dubbed Chesterton's Fence [0].
A core component of making great decisions is understanding the rationale behind previous decisions. If we don’t understand how we got “here,” we run the risk of making things much worse.
So you helped the new dev understand the current lay of the land. They listened, then suggested an improvement based on their new understanding. You agreed and together improved the code.
[0] https://fs.blog/2020/03/chestertons-fence/ https://fs.blog/2020/03/chestertons-fence/
- duxup 7y agoI'm working with some old code and spend a lot of my time thinking "There's got to be a reason this is as wonky as it is." Sometimes I just can't find out (the guy who wrote it is gone, nobody knows) then I have to just do it the way I think it should be, test ... then I find out why, sometimes spectacularly ;)
- dmurray 7y agoThis isn't really Chesterton's Fence. It doesn't take any soul searching or insight to answer "why was this not written in Python3 in the first place" - the answer is almost certainly that Python3 or some key libraries didn't exist. It's a pure cost/benefit analysis question. Switching has some cost, and some benefits, and you have to decide which are likely greater.
- drewmol 7y ago> the answer is almost certainly that Python3 or some key libraries didn't exist. This has not been my experience, even within the past few years on occasion.
- dmurray 7y agoReally? The only other answer I can imagine is "all our other projects are in Python 2". And generally that means you will reuse some code from those projects. What other reasons have you seen?
- mokus 7y agoBy far the most common I run into (even for code started in 2020) - “I dunno, I just typed ‘python’ and used that”
- heymijo 7y agoI think this seems like a good critique, but as you noticed this is a nascent concept for me. As I learn more, I'll have this critique in mind.
- joshwa 7y agoKnowing how so many devs are hungry to move to the new shiny thing, the question is often more like "why hasn't this been rewritten in Python3 already?". Possible answers: • Legit technical or cost/benefit reasons • Probably a good idea but no budget/time for the effort • Somebody already tried and it was a disaster • No manager has been stupid enough to humor the devs
- nine_k 7y agoMost reasonable devs are not jackdaws and do not want a "new and shiny" thing for its shine. Mostly devs want to go away from the old and increasingly creaky thing. And when the cost / benefit ration is finally right (that is, it's creaking loud enough and slows things down much enough), the move hopefully happens.
- Aeolun 7y ago> Most reasonable devs are not jackdaws Most devs are not reasonable.
- skunkworker 7y agoI recently started a new job and whenever I can I try to document the code I contribute with the "whys" instead of documenting self-explanatory parts. I've extended this to parts of the code that I now maintain but did not initially write as this helps me mentally map out the rationale.