|
|
|
|
|
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. |
|
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.