  The dominant view of design in information systems and software engineering,
the Rational Design Paradigm, views software development as a methodical,
plan-centered, approximately rational process of optimizing a design candidate
for known constraints and objectives. This paper synthesizes an Alternative
Design Paradigm, which views software development as an amethodical,
improvisational, emotional process of simultaneously framing the problem and
building artifacts to address it. These conflicting paradigms are
manifestations of a deeper philosophical conflict between rationalism and
empiricism. The paper clarifies the nature, components and assumptions of each
paradigm and explores the implications of the paradigmatic conflict for
research, practice and education.
