I find that the the weeding your garden example has a more general analogue outside of content: managing code debt. The more mature a code base and the more hands that touch it, the more often little shortcuts, design decisions that lead to later refactoring, incomplete or incorrect documentation, etc. will show up; these are like "weeds" in your "software garden".<p>As with letting weeds in the content choke out the actual signal, not taking the time to do code weeding will ultimately lead to buggy, unmaintainable code. Of course another approach is to try and avoid code weeds in the first place (e.g. TDD), but at some level code weeds / debt is inevitable over time for any sufficiently mature code base.