Building software for an enterprise used to be like building tools for a mechanic. Requesting needs, writing specs and building softwares pieces was like requesting what operation the mechanic has to do, observing the characteristics of the metal parts he handles and building special pliers or screwdriver.
This is no more the good metaphore.
Now, the enterprise must be seen as a system. Maybe a complex one (it’s not mathematically proven). It is no more made of real things (people, buildings, machines, papers, trash cans…) in one hand and softwares in the other one, it’s the result of the tight interconnection of all those parts. And interconnections are very, very important. If we continue to build softwares as little pieces of tools that match some very local needs (as we are used) we will not even bring an unneeded complexity (we call that complexification) but also a lot of failures when we try to promote localy designed tools to a broader level.
As a whole, the enterprise has now gained the right to be treated like other systems : we build models for earth, sea, climate, planes, processors, even for phones. We must build models for enterprises too. With models we are able to simulate the behaviour of earth and planes. We are able to predict (with some degree of error, of course) the state of a systems in a near or far future. We are able to take decisions related to some criteria that seems important. We should be able to do the same with enterprises. Why not? Why is this a so extraordinary thought? Because we are not *used* to it? Com’on!..