As stated in WhatIsInteractionDesign, software "design" is just incompetent InteractionDesign. Which tends to imply that there is no goal-oriented creative process that's qualitatively different from interaction design.
And this seems to be true since graphics design can be restated as a form of interaction design, wherein the graphic designer analyzes interactions between graphical elements and synthesizes graphical concepts in order to produce a desired visual effect / in the viewer.
Another example is the so-called OperatingSystemsDesign taught to programmers. If by OSD we mean interaction design, then OSD is taught in no university I've ever heard of. As DanMuller points out, traditional OS design never factors in the user as a part of the system.
Note that the definition of interaction design is inclusive to all design and exclusive of engineering. Engineering is not an activity that requires the synthesis of concepts, merely their analysis.
The statement made by the title is rather silly, as there are many meanings to the word "design." What about "visual design?" How about "physical architecture design?" There are many software design elements that are completely isolated from the interaction with the user.
"interaction" doesn't mean "interaction with the user". Any problem domain that has things which interact together is subject to interaction design. And I specifically include good visual design as interaction design. Or rather the other way around.
Has it ever occurred to you that SeparationOfConcerns applies even to OS Design? To begin with, some OSes don't have people users. Many computers are used as a platform to control complex industrial processes, run databases or batch processing or massive computations. Nobody has made a good case that the design of the OS should be entangled with designing user interactions. I hope that the argument you're proposing is not "because I'm an OS design expert and I say so". -- CostinCozianu
Separation of concerns doesn't apply to the design of general-purpose operating systems, which is what the OS design principles page is about. Until such a time as someone proves that programmers aren't human beings, there will always be at least one human user of any general-purpose OS.
The only way a system, not an OS but a specific system, can have no interaction with human beings is if:
Intersting stance on the subject, Richard. But the title of this page, and its opening statement, create a difficulty. If AllGoodDesignIsInteractionDesign, what then is BadInteractionDesign?? Is even the worst piece of interaction design equal to the best non-interaction design out there? A bold statement. This means that the mere intent of a project can completely redefine its level of quality.
Maybe you mean that all design is some form of InteractionDesign? That seems to be a trivial matter of perspective to me. I could just as easily argue that any given thought-oriented process is a superset of another thought-oriented process. For instance, I now claim that all good interaction design is language design, designing a language by which a user can express themselves--unless you want to dilute the definition of InteractionDesign so much that you define it as Everything, in which case it becomes useless. Consider this claim.
Of course, we could argue it. But the point is, lots of problems can be reshaped to lend themselves to another discipline. This is one of the very souls of the study of algorithms. How many times have we seen a problem reduced to a known P problem, or to the HaltingProblem? What it suggests is that programming, interaction design, language design (and many other types of cogantive disciplines) exist in the same space.
It does not imply that InteractionDesign is a better approach. If it were obviously better, you'd be able to design a software design that is obviously superior, and you wouldn't need a programmer to do it for you. -- DaveFayram