The Two Paradigms of Software Design
Paul Ralph

TL;DR
This paper compares two fundamental paradigms of software design: the traditional rational, plan-driven approach and an alternative improvisational, emotional approach, highlighting their philosophical differences and implications.
Contribution
It introduces and clarifies the alternative design paradigm, contrasting it with the dominant rational paradigm in software engineering.
Findings
Identifies the rational and alternative paradigms as manifestations of rationalism and empiricism.
Explores implications for research, practice, and education in software engineering.
Highlights philosophical conflicts influencing design methodologies.
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Techniques and Practices
