Hacker News new | past | comments | ask | show | jobs | submit login

Re: first law ... one thing I have been thinking a lot lately is just how much like gardening software is. But in gardening we are not afraid to trim the plants and put them in shape as we go. In software we end up just adding stuff on top, without regard for the overall design. There is this bias towards always adding rather than removing things, and the key to keep things in order is to remove things, to say no, etc.



I don't really agree with this take. Similar to knolling [0], refactoring the code you're working on and that around it should be a natural part of every development flow. If you see a design choice that no longer makes sense, restructure. If code is unused, remove. Etc, we have plenty of powerful tools at our disposal in modern times and always cleaning things up as you go is the only way you will ever keep a code base maintainable. There will never be some magical future where you have time to clean up and refactor those thorny bits, the time is now. Similar to gardening, if you're pruning roses and you see a weed taking root, just pull it out, it's right there. You won't get all the weeds this way and sure, it would be nice to have more time to deal with them, but surely it will help a little.

[0] https://youtu.be/s-CTkbHnpNQ?si=KYwllK4NJY1bjRa3


This "trimming" is not just about features, but more generally to simplify and minimise the codebase (less code = less bugs).

Such refactoring is an essential part of maintaining software, regardless of how old or bloated it may be.


Yes, absolutely


I think most of us go through a 'software development is like..' metaphor phase.

Back in my day it was via McConnell and the PragProg guys. Jeff Atwood covered it in a blog post from over 15 years ago:

https://blog.codinghorror.com/tending-your-software-garden/


The top comment of that article is too blatant


> the key to keep things in order is to remove things

As soon as you are ready to give up the income for those things you want to trim, please go on!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: