Making IT Application Development More of an Engineering Discipline
Engineered design in IT is almost nonexistent. There are two main reasons. The first is that an IT application is a component of a business solution; from the design perspective it is not a complete system. The second is that analysis of the design—in contrast to testing and inspection of the code—is hardly ever done. Using the diagram style of Figure 1.5, typical IT design is illustrated in Figure 1.6.
Figure 1.6 Typical IT Application Design
Does this matter? Imagine you were designing a new kind of aircraft and the only testing you could do was to fly the plane. The dangers are obvious. The design might not have the weight distributed properly, leading to dangerous flying behavior. The structure might not be strong enough, leading to it falling apart. You would probably anticipate these problems and compensate by making the structure far stronger than it needed to be, resulting in excess weight and poor flying ability. Similar arguments apply to IT application design, especially for large applications because design flaws are always harder to spot in a larger, more complex design.
I hope to convince you that it is possible to make IT application development an engineering discipline—to change Figure 1.6 into Figure 1.5. It needs a complete hierarchy of designs, and each design needs analysis techniques.
The hierarchy of designs I have developed is described in the next chapter. It is rather different from a classic engineering hierarchy of designs, but I hope to convince you that it still supports engineered design principles.
The analysis techniques tend not to be engineering-style calculations but checking for completeness and consistency and looking at how data is used. They are described in detailed in Chapters 5 through 12.