Maintain The Vision

This is a pattern based on my Third Principle (see SevenPrinciplesOfSoftwareDevelopment). Please give feedback at the bottom.

Author: DavidHooker


Pattern: Maintain The Vision

Problem: A system under construction is degrading into a mish-mash of incompatible designs/subsystems/etc., thus threatening to not meet one or more project goals.

Forces/Context: A system is in development. It must meet user needs and be on time and within budget. Consideration is being given to maintenance, extensibility, and reuse.

Solution: A clear vision is essential to the success of a software project. Without one, projects almost unfailingly end up being "of two [or more] minds" about itself. Without conceptual integrity, a system threatens to become a patchwork of incompatible designs, held together by the wrong kind of screws. As Brooks states:

    Conceptual integrity is the most important 
    consideration in system design.  

Stroustrup also notes:

    Having a clean internal structure is essential to
    constructing a system that is understandable, can 
    be extended and reorganized, and is maintainable 
    and testable.

From which Booch summarizes:

    It is only through having a clear sense of a 
    system’s architecture that it becomes possible 
    to discover common abstractions and mechanisms.
    Exploiting this commonality ultimately leads to 
    systems that are simpler, and therefore smaller 
    and more reliable.

Compromising the architectural vision of a software system weakens and will eventually break even the most well designed systems. Having an empowered Architect who can hold the vision and enforce compliance helps ensure a very successful software project.


This principle can be sustained by creating, communicating and maintaining one of the SystemMetaphors?. --KentBeck


CategoryAnalysis


EditText of this page (last edited November 22, 2000) or FindPage with title or text search