Strategic
Software Design
Welcome to SoftwareEconomics.Org,
a focal point for scholars, educators, and practitioners interested in
creating, disseminating and using knowledge in the emerging field of Strategic
Software Design. This term refers to concepts, tools and methods
for software design and engineering based on the view that it is an investment
activity whose goal is to maximize the value added by a given investment.
Research in this area seeks a scientific theory of software design that is
grounded in formal models of value and value creation under conditions of
uncertainty, incomplete information, and competition.
This site is part of a research and
education effort supported by the National
Science Foundation under Information
Technology Research grant 0086003.
The Need for a Science of Software Design
Research on strategic software design addresses two problems, one theoretical
the other pragmatic. The pragmatic problem is that that investments in software design today are not producing
enough value. Our society spends nearly a trillion dollars
annually on software. An astounding fraction of this total is
written off as a loss in the form of cancelled projects and operational
failures. The theoretical problem is that current software design concepts, for
the most part, remain ad hoc and "cook-booky." We need sound
theoretical models of the core concepts
of our field, including information hiding, architecture, risk- and quality-control-based
development models: a science of software design.
Software Design as a
Value-Seeking Investment Activity
The central principle of the strategic software design
thought is that software design is an investment activity, involving the
expenditure of valuable resources, whose goal is to maximize value
added net of costs on a scale appropriate to a given context. In business,
measures such as capital market
value apply. In other contexts, other measures are better: maintaining an
open society, national security, solving major social problems. The value of a software system reflects both its
fitness to meet current needs and its capacity to evolve to sustain fitness as
conditions change over time.
A key premise for research on strategic software design is that core concepts
of software design can be founded on this central principle. In essence,
we view a software product and the organization that develops it within an
environment as seeking value. Concepts such as information hiding,
architecture, phased and risk-driven development processes, are then formulated,
tested and justified in terms of rigorous models of value and value
creation.
Some Recent Work
We have recently argued that information hiding modularity adds value to a
system in the form of real options. For a paper on this idea, click here.
In an earlier paper,
we argued that the ability to delay making design decisions can be analyzed in
similar terms. Kent Beck is popularizing this idea in his book on extreme
programming (XP). Boehm and Sullivan have laid out a roadmap
for research in strategic software design.
Copyright 2000 Kevin
Sullivan. All Rights Reserved. Site
maintained by Benjamin Hallen.
|