Non-System Engineering
Jun 26th, 2007 by Ricker
Consciously or unconsciously, engineers approach their work with the idea of a system. The typical engineer thinks in terms of systems. In his mind, the engineer creates a boundary between the items he is working on and the rest of the universe. The boundary defines the system. He then attempts to optimize the items within the boundary and ignores the items outside the boundary.
Software development today requires a non-system way of thinking. The way we think about the problem directly affects the solution that we create. For you readers who are programmers, remember back to the mental leap you underwent from thinking in terms of procedural programming to thinking in terms of object-oriented programming. Service oriented architecture (SOA) requires a leap just as large.
In SOA, there is no boundary. When a developer creates and publishes a service, he cannot know all the ways in which that the service will be used. He cannot anticipate who will use the service or how they will use it. He must rid himself of as many assumptions as possible. The more simple and generic he makes the service, the more useful the service will be.
That is not how we were trained to build software. Traditional software engineering expects detailed requirements stating who will use the software and how they intend to use it. Traditional software engineering likes code to be robust, for the code to be able to do many different things and handle many different exceptions. All that is turned upside down in SOA.
With SOA, rid your thinking of the idea of the system. There is no boundary. If you optimize your service, you will lessen its usefulness. Sub-optimize your service to improve its usefulness. Degrade your service and the network as a whole will work better.
We have just begun to build the Internet. What we have now is still very primitive. Think back to how primitive the computers of the Apollo space program were. That is how you should consider the Internet today compared to what the lnternet will become in our lifetime. To build the vastly more complex Internet of the future, we must draw our knowledge from other vastly complex things. The Great Architect of Nature built very complex things by combining much simpler things. He combined those complex things to create even more complex things. Each level of combination is organized differently than the one above or below it. Molecules are organized differently than atoms. Cells are organized differently than molecules. Organs are organized differently than cells. The Internet of the future will be the same. Vast complexity can exist no other way.
Leave a Reply
You must be logged in to post a comment.