I’ve been reading a lot of Kant recently and he has two ideas I think could be helpful to modern software engineering:
1. Using the word “architectonics” to describe the science of structures. Now it’s only used for the brain (Cytoarchitectonics) and some other small academic fields, sadly. I think that would be an awesome evolution for the slowly-outmoded agile coaches of the industry: “Architectonic consultants” or “architectonics”.
2. He thinks an important principle of Architectonics is not to just collect a bunch of components until you have a system that works, but rather to start with the top level, deduce the divisions within the structure that are necessary, and only then start filling in the details. In the practical world of engineering this isn’t always necessary, but I’ve found it really helpful, for the exact reasons discussed in this post (scoping, not getting ahead of yourself, allowing for growth without doing unnecessarily early work, etc)