Rule 1: Open Systems Succeed
This rule has been true from the beginning because open systems are standards based. Of course this is good for Sun to say because we're an open-systems company. But, I've watched many, many open systems succeed in scale and continue over a long life span.
In almost 100% of the cases, the good projects were based on open standards because only open standards had the flexibility to scale. As technology changes and advances during the implementation of a project, the open systems projects could adapt and take advantage of changes, rather than be stopped or derailed by scaling and technology changes.
Rule 2: Proprietary Systems Fail
The second rule is the opposite of the first. Proprietary systems don't scale. To accommodate any unplanned growth, they must be redesigned. And this always cost more in the long run. Proprietary systems were the single greatest waste of IT dollars I saw in those 6,200 government systems I helped manage.
To use a construction analogy, imagine that every IT system starts off as a house, but grows into a skyscraper. If you build on open systems, you have a strong foundation on which your systems can grow to accommodate new business and user demands.
If you build on proprietary systems, you're starting with a house foundation, without planning that the house may one day become a skyscraper. You will end up either re-doing the foundation to support the newer, larger structure, or tearing it down and restarting from scratch; both immensely expensive and time-consuming propositions.
For these reasons, proprietary systems usually cost three-to-four times more than open systems in total. No engineer building any physical product would ever lock himself into a proprietary component or design. IT should follow the same basic engineering principles that all other design engineers follow.
Rule 3: Separation of Logical Layers
This is a key insight into a major cost driver in system lifecycle cost, and it's a technology decision you have to make early. This rule might seem very technical to a business executive, but it's important.
By spending a little extra time up front to separate your technology layers (presentation, business logic, and data) you are ensuring that each can scale and change independently.
For example, the presentation layer will always change as technology advances, but the business rules (logic) and data behind it often will not.
If you put all your logic in the presentation layer (say, under the "Submit" button on the browser screen), when you change the presentation to a cell phone, you'll have to rewrite that business logic.
If you separate the three layers, each can scale and change independently. And that ends up costing you a lot less and giving you a lot more flexibility in the long run.