Table of Contents Previous Section Next Section

9.4 Conclusions

This chapter covered several intelligence-gathering techniques that can improve software architecture practices and the probability of system success. One of the most important lessons was to consider architecture as a deliverable. In the opinions of some software authorities, architecture is the most important deliverable of the project. The authors tend to agree; however, they seldom brag about this openly, especially in the presence of developers. The truth is that everybody's contribution to the software project is vitally important, but not all are equally important. Each person can provide a positive or negative contribution to the project's outcome. For example, negative contributions can result from exacerbating chaotic project inputs, rumor mongering, and unwarranted dissension. Architecture is helpful for moderating the chaos of a project, but it is not the only or most effective means for doing so.

The intelligence-gathering process is interleaved with other architectural processes. For example, architecture is frozen during active code development, and intelligence is gathered near the logical end of each phase. Intelligence is applied to make architectural decisions when and where they can cause the least disruption and most benefit. One of the benefits of intelligence gathering that is extremely difficult to achieve is the definition of stable interfaces that maintain system qualities throughout their life cycles. Stable interfaces are required for system-level architecture, distributed computing, and component-based development.

    Table of Contents Previous Section Next Section