







The product of software development is not code but a mental model, a theory: a specific way of explaining the world.
You can't design software you don't work on
Only the engineers who work on a large software system can meaningfully participate in the design process. That’s because you cannot do good software design without an intimate understanding of the concrete details of the system. In other words, generic software design advice is typically useless for most practical software design problems.

Programming (with AI agents) as theory building
Back in 1985, computer scientist Peter Naur wrote “Programming as Theory Building”. According to Naur — and I agree with him — the core output of software engineers is not the program itself, but the theory of how the program works. In other words, the knowledge inside the engineer’s mind is the primary artifact of engineering work, and the actual software is merely a by-product of that.

Theory and Memory: Two Forces Shaping Software Team Knowledge
How insights from cognitive science and social psychology explain why software knowledge is so hard to preserve

Laws of Software Engineering
A collection of principles and patterns that shape software systems, teams, and decisions.

Tending Your Software Garden
Software: do you write it like a book, grow it like a plant, accrete it like a pearl, or construct it like a building? As Steve McConnell notes in Code Complete 2, there’s no shortage of software development metaphors: A confusing abundance of metaphors has grown up around software

Special Issue Editorial – Accumulation and Evolution of Design Knowledge in Design Science Research: A Journey Through Time and Space
Sir Isaac Newton (1676) famously said, “If I have seen further, it is by standing on the shoulders of giants.” Research is a collaborative, evolutionary endeavor—and it is no different with design science research (DSR), which builds upon existing design knowledge and creates new design knowledge to pass on to future projects. However, despite the vast, growing body of DSR contributions, scant evidence of the accumulation and evolution of design knowledge has been articulated in an organized DSR body of knowledge. Most contributions rather stand on their own feet than on the shoulders of giants, and this continues to limit how far we can see, curtailing the extent of the broader impacts that can be made through DSR. In this editorial, we aim at providing guidance on how to position design knowledge contributions in wider problem and solution spaces. We propose (1) a model conceptualizing design knowledge as a resilient relationship between problem and solution spaces, (2) a model that demonstrates how individual DSR projects consume and produce design knowledge, (3) a map to position a design knowledge contribution in problem and solution spaces, and (4) principles on how to use this map in a DSR project. We show how fellow researchers, readers, editors, and reviewers, as well as the IS community as a whole, can make use of these proposals, and also illustrate future research opportunities.
Digital Art Enters the Museum Age — Social Software
We explore code and systems as a medium for creating new forms of art. We consider "software" in an expanded sense, examining the ways that we are programmed by technology around us and the ways we can write software to make change in the world.


Convivial design heuristics for software systems
The theme of this workshop is the proliferation of ideas about calling into question the cultural roots of our current programming languages, and the search for alternative paradigms with other cultural bases.
Conway's Law | Laws of Software Engineering
Organizations design systems that mirror their own communication structure.

Product Design Psychology by Wouter de Bres
Understand the minds you design for and the mind you design with.

Built by Designers: No Explanation Needed
Designers now turn ideas into working products. Explore a curated collection of apps, tools, websites, and experiments designed, built, and shipped by designers.
The third golden age of software engineering – thanks to AI, with Grady Booch
The third golden age of software engineering – thanks to AI, with Grady Booch