Sometimes, if you multi-task two different activities, your mind finds connections between them that would not be otherwise obvious. I’m listening to a podcast on Design for Six Sigma and Design for Innovation in Manufacturing. At the same time, I’m writing out e-mail on an integrated systems design that I’m working through with my internal organization.
So what occurs to me? There are about a dozen different possible system designs that I could consider. I have built one design, but how do I know that it is right? I can use principles and practices, but in reality, those principles are based on the experiences of other people, not science or math. Just empirical observation. My principles are based on good guesswork.
In a manufacturing environment, I could create a mathematical model, in software, that shows how changes to processes would impact the speed and quality of manufactured products. I can consider different designs, and then introduce disruptive events, and watch the results. But I cannot really do that in a software system design.
Here’s what I want to do.
I want to model a set of software services, with responsibilities and message composition built up, in a reasonable model of a solution. I’d like to create four or five different models of the same solution, using different services (different responsibilities, different message composition). Then I’d like to turn on simulation of each model to make sure that it performs reasonably well. I can tell you now that all of these designs will probably work.
Then I want to introduce disruptive events like business change. I’d like to know which system designs are most able to stand up to changes in business strategies. That means, which system designs will necessitate patterns of deployment behavior that creates an obstacle to agility.
In other words: Which designs, once implemented, drive people to make slow changes when fast changes are needed?
Principles and Patterns are based on experience. That’s great. But science and math should be considered as well. Any ideas?