Every decision we make as developers is a tradeoff. We choose to do it because we believe that it holds benefit for what we are trying to accomplish. However, it is generally also a liability. The new code we are adding will need to be maintained, following new processes takes time, keeping infrastructure up-to-date and secure requires regular effort, etc. We are in an eternal battle to build what we need to build without being overwhelmed by these forces. If we're going to stave off that inevitability, we must learn to manage these costs as we work.
We've already talked about controlling the flood gates of what is added, but things will still be added. What we have to manage will grow. Meanwhile, our knowledge will also grow. We understand more about the domain when we add the tenth major feature than we do when we add the first. We may realize relationships between things that were done independently that are not reflected in the code or the documentation. Taking advantage of these insights may allow us to reduce the costs of things we have already taken on.
This give and take between controlling what gets added and adding more to control what has been added may seem paradoxical, but I've come to believe that together they are one of the main roles we serve as developers. We must hone both instincts to build larger and more software as quickly as we are able.