Book chapter: The Risk-Driven Model of Software Architecture

May 30, 2010 | George Fairbanks

As they build successful software, software developers are choosing
from alternate designs, discarding those that are doomed to fail, and
preferring options with low risk of failure. When the risks are low it
is easy to plow ahead without much thought, but, invariably,
challenging design problems emerge and developers must grapple with
high-risk designs, ones they are not sure will work.

To address failure risks, the earliest software developers invented
design techniques that helped them build successful software, such as
domain modeling, security analyses, and encapsulation. Today,
developers can choose from a huge number of design techniques. From
this abundance, a hard question arises: Which design and architecture
techniques should developers use?

If there were no deadlines then the answer would be easy: use all the
techniques. But that is impractical because a hallmark of engineering
is the efficient use of resources, including time. One of the risks
developers face is that they waste too much time designing. So a
related question arises: How much design and architecture should
developers do?

Download full article (PDf)


George Fairbanks is a software developer, designer, and architect living in New York city

+1-303-834-7760 (Recruiters: Please do not call)
Twitter: @GHFairbanks