EDIT: I realized that the above sounds like using SD to solve technical issues, but I meant to ask specifically about using SD to guide things like evolution and usage of a software architecture or API.
EDIT: I realized that the above sounds like using SD to solve technical issues, but I meant to ask specifically about using SD to guide things like evolution and usage of a software architecture or API.
(*) (Not just the processes in the program, but also processes in the company needed to find out what to do and how to do it).
This leads to organic growth, which can overcome problems caused by an upfront design that goes bad, because it couldn't have planned in advance every problem it will face in the future. Systems Design is all about adapting the system to changes in its environment. Learn about the Viable Systems Model for a mental framework on what to look for.