Architecture design must follow requirements analysis, but it does not need to be deferred until requirements analysis is completed. In fact, architecture design can begin once the critical architectural drivers have been determined. When a sufficient portion of the architecture has been designed (again, not necessarily completely designed), a skeletal system can be developed. This skeletal system is the framework on which iterative development (with its associated ability to deliver at any point) is performed.
The quality scenarios and tactics that we presented in Chapters 4 and 5 are critical to architecture design. ADD is a top-down design process based on using quality requirements to define an appropriate architectural pattern and on using functional requirements to instantiate the module types given by that pattern.
Architecture determines some level of organizational structure through determining the necessary communication paths. Existing organizational structure influences architecture as well by providing organizational units with specialized expertise and vested interests.
Where Do Standards Come From?
An interesting discussion flowed around the Usenet a couple of years ago about how the U.S. rail gauge standard became set at the strange-sounding figure of 4 feet, 8-1/2 inches. The discussion has implications for standards in any technology area.
It turns out that the standard was set for two reasons: backward compatibility with legacy systems and the experience of the railroad architects. To be precise, the early creators of the American rail system were trained in Great Britain and had British tools and rolling stock. Of course, this just pushes the question down one level. Why did the British use this strange gauge?
As the story goes, the British built their railroads using this gauge for precisely the same two reasons of legacy compatibility and architects' experience: The trams (which existed before the railroads) used this gauge, and the builders of the new railroad were converted tram builders, initially using tram-building tools.
Of course, trams did not appear without their historical baggage. Early trams were modeled after wagons, and so the early tram builders used the same jigs and tools they had previously used for wagon building. But this still begs the original question: Why did wagons use a wheel spacing of 4 feet, 8-1/2 inches?
They used it because they were constrained by their environment, the environment that had been created by the technology of the day. More plainly, any other spacing would have caused their wheels to break because the ruts on the roads in Great Britain at the time were this distance apart.
The roads were another kind of technological legacy, a standard that constrained innovation and determined this important feature of the wagons. This time, however, the legacy came from Rome. The earliest long-distance roads in Great Britain were built by the Romans, in the first four centuries a.d. And, of course, the Romans built these roads the size that they did because this was the size that fit their war chariots. So, the gauge of trains in the United States today is attributable to the design of Roman war chariots built two millennia earlier.
But it doesn't end here.
The spacing of wheels on the Roman war chariot was dictated by the width of the yoke that attached the chariot to the horse. The yoke was made this width to keep the wheel ruts clear of the horse. Thus, the gauge of a modern rail car in the United States, it can be reasonably assumed, was determined by following a set of standards, each of which was dictated by a combination of technical factors, constraints from legacy systems, and the experience of the architects. These factors, combined, mean that the gauge of the U.S. rails was determined by the width of the standard Roman warhorse's derriere.
Although this sounds silly, consider the consequences of ignoring the constraints of existing standards. When Napoleon attacked Russia, his armies made much slower progress than anticipated once they reached eastern Europe because the ruts on the roads there were not to Roman gauge. Because they made slower time than planned, they were caught in the Russian winter. We all know what happened after that.