Hacker News new | ask | show | jobs
by bluetomcat 1547 days ago
With big projects spanning across years, the "problem" is often a moving target. Adding new features alters the problem space dynamically. The best you can do as a maintainer is to be mindful of the original problem that the solution was architected for, and extend the thing without crossing certain boundaries and assumptions.
2 comments

> The best you can do as a maintainer is to be mindful of the original problem that the solution was architected for, and extend the thing without crossing certain boundaries and assumptions.

Speaking of boundaries and assumptions, one of the most important realizations I have had about software development is the true meaning of modularity:

Software modules are the things whose boundaries limit the spread of assumptions.

Absolutely, we can always try to assume that our predeccesors or past selves had the best of intentions but nothing beats writing down the context and problems at that moment in time for future reference.