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. -- RichardKulisz ''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. * I thought the whole point of InteractionDesign is interaction with ''humans''. Interactions between different machines is a largely solved problem. ---- 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: * it's designed as a one-off * it will never be reused, maintained or extended * it will never be interacted with either directly or indirectly, locally or remotely * it will never programmed to Further, a 'user' in an operating system need not be a human user. Processes and users are ''in principle'' indistinguishable. Unless you go out of your way to distinguish them, in which case you've violated the cardinal rule of design (thou shalt not introduce concepts that aren't needed) and doing horribly bad design. * A "process" is a computing artifact. A user is a person. The two cannot possibly be the same; they're not even in one-to-one correspondence. What ''is'' true is that users interact with OperatingSystem''''''s via processes; so a process can be viewed as a proxy for a user. Which doesn't make them the same thing. * ''Humans will usually be the ones fixing and changing the software, not machines. "Good design" usually is either measured against machine performance (speed, resource conservancy, etc.) and/or in terms of making maintenance easier for humans. The second could be called "interaction".'' ---- 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 ----- CategoryInteractionDesign