=Paper=
{{Paper
|id=None
|storemode=property
|title=The Craft of Programming Interaction
|pdfUrl=https://ceur-ws.org/Vol-922/paper6.pdf
|volume=Vol-922
|dblpUrl=https://dblp.org/rec/conf/iused/Lindell12
}}
==The Craft of Programming Interaction==
The Craft of Programming Interaction Rikard Lindell Mälardalen University Box 883 72123 Västerås Sweden rikard.lindell@mdh.se ABSTRACT There is a big problem in how a development project runs The creation of useful artefacts with rich experiential between the phases of interaction design and engineering qualities required quality driven interaction designers and [7]. These two activities have different epistemology; programmers with the ability to simultaneous problem interaction design is a design practice [2], while software setting and problem solving. Interaction design is a design engineering is struggling to describe itself as engineering practice that defines the appearance and function of digital and science [1]. Designers are trained to see a plethora of artefacts. Bridging interaction design and engineering is future designs for a situation. Design explains the problematic because design and engineering have different phenomena of the context. It's about framing the problem epistemology. Designers are trained to see a plethora of space of the context, cut into a search tree of plentiful future designs for a situation and explains the phenomena design proposition to reach the right user experience design of a context. Engineering focus on problem solving and of a future artefact [4,8]. Design is the exploratory use of depends on agreement about ends. In this paper I suggest malleable tactile materials and provides suggestions for that the poor state of designers and programmers who are possible future solutions [2,4,8]. The goal of the design not standing together can be avoided if we give up the process is that as much as possible frame the problem for an claim that software development should be engineering or engineering process to take over to solve. science, and instead see it as a quality-driven craftsmanship. Sketches, storyboards, and paper prototypes works in Author Keywords design situations where the designer experiments with design; interaction design; experience design; highly known interaction idioms. Users, design colleagues, and interactive prototypes; programming; material; craft programmers fill the gaps and imagine the user experience for the finished artefact based on their experience with ACM Classification Keywords these idioms. To get talk-back from the interaction design it H.5.m. Information interfaces and presentation (e.g., HCI): is necessary to create interactive prototype programs. The General Terms design process does not stop when the programming start, Human Factors; Design on the contrary, programming is a vital part of the design process. INTRODUCTION This paper presents a normative view, grounded in BACKGROUND literature, and empirical findings, on how to bridge the Schön discuss how faith in rational, scientific, and practices of interaction design and software engineering. technological solutions are spread because of how they were successfully applied during World War II, where the The creation of useful artefacts with rich experiential solution to a problem was to supply more resources [9]. The qualities required quality driven interaction designers and point he makes is that engineering is close to science. programmers with the ability to simultaneous problem “They began to see laws of nature not as facts inherent in setting and problem solving. People use interactive nature but as constructs created to explain observed software, websites and mobile applications in different phenomena, and science became for them a hypothetico- contexts for different purposes. Boehm shows a focus shift deductive system. In order to account for his observations, in software engineering to usability and that requirements the scientist constructed hypotheses, abstract models of an of interactive artefacts cannot be defined a priori [1]. unseen world which could be tested only indirectly through Interaction design has indulged itself in being a design deductions susceptible to confirmation or disconfirmation practice that tries to define the appearance and function of by experiments. The hart of scientific inquiry consisted in digital artefacts [2]. Sketches, storyboards, videomatics, and the use of crucial experiments to choose among competing interactive prototypes depict the appearance and theories of explanation.” This quotation describes how functionality, and at best convey requirements to software belief in deductive reasoning disconnecting the explanation engineers [3,4,5]. The result from a design process is rich in of the world from the material to be explained. A scientific clues to the finished product. But, the material in the design approach allows the engineer to deduce, analyse and define process is different from the code that implements the problems in a rational way; the positivist epistemology of design into a working artifact [6]. science [9]. rnd engineering market Figur 1. Buxton's image of the organisation for the engineering driven product development [4]. Boehm describes in his expose of just over a half-century of frame the problem. Concept design are evaluated and software engineering how the field evolved, mainly that we refined through introspection, criticism, and user studies, increasingly focusing on usability and value [1]. Software such as Wizard of Oz method [4]. The design work will also engineering has realised the problems with the top-down increase the understanding of the situation and context. waterfall development model and introduced iterative Sketching interfaces and designing paper prototypes will models [10]. These models deal with changes in the also learn interaction designers more about the context problem space by development iterations. Each iteration in [12]. Figure 2 shows a design driven organisation and how the spiral model or in the rational unified process (RUP) is the design team follows the design through the entire basically a waterfall model. The foundation is still the process. Such an organisation also understand that fellows technical rationality epistemology. close to the market can provide feedback from users. Buxton describes how an engineering-driven organisation is Interaction Designers have a repertoire of interaction styles organised in a simple diagram [4], see Figure 1. First you that they can apply for different problems [3]. To be able to do research and development, then you do engineering, and design great interfaces interaction designers should master finally hand the product to the sales organisation. This type programming. It is part of being conscious of the design of organisation requires an agreement on ends. At changes material [5, 13]. While interaction designers can implement and difficulty in clearly defining the problem dissonance a design by composing software, they must not be seduced arises in the organisation: “Technical Rationality depends by technologies for technology's sake. on agreement about ends.” In the citation Schön delineates Interaction Designers create architecture for interactive how technical rationality does not address situations where artefacts and their spatial and temporal properties. They the result is uncertain and where there is no ready-defined design the artefact topology, the artefact appearance on the problem to solve. screen or in the space and how artefact change over time Reflection-in-action and interaction design because of interaction. Interaction Designers understand the Technical rationality and focus on ends has a different consequences of different designs and have a feel for how a epistemological dimension than Reflection-in-action - design can be realised. Similarly, interaction designers build Schön's term for the reflective practitioner way of thinking interactive prototypes for technical substantiate and in full and acting. The reflective practitioners have practical understand what they designed. Its about material knowledge (knowledge-in-practice), they can be aware or consciousness [14]. The difference between the architect unaware of this knowledge regardless of guild. Reflective and interaction designer is that the latter build their model practitioners deal with problem setting and unique and in full scale, albeit quickly, and at times chaotic, but it is a complex situations, mainly through reflection-in-action model and not a product. (reflection-in-action). Reflection-in-action can be summarized in three phases that are repeated: (1) Frame the Craft problem, assess the situation, and understand the working The profession, the knowledge, and ability to design material. (2) Perform moves over the situation. These interactive artifacts is a creative craft. McCullough moves are parts of the practitioner’s repertoire. They are discusses the craft related to interactive technology use and small experiments with the intentional result, but often with how an artisan approach can enrich interaction design [15]. unintended effects (both positive and negative). (3) Reflect According to McCullough, there is a wide gap between the and evaluate the consequences of action in conversation design of digital artifacts, and computer science and with the situation. Practitioners take in and reflect on how software engineering. the situation responds (talk-backs). The conversation That craftsmanship has not been highly regarded is not new. happens in what Schön calls the medium's language. After Within software engineering is sometimes used this phase the process starts over again. craftsmanship derogatory to describe careless Design problems are often vague, complex, and programming. Boehm for instance, uses the notion of contradictory [11]. In the problem setting phase interaction craftsmanship as analogy for the 1960s, lack of professional designers name the phenomena that they will pay attention discipline and careless "cowboy programming" [1]. to and work with. They create design concepts through However, negligence has nothing to do with craft. On the various design techniques: sketches, mood boards, contrary, describes Sennett the craftsman as a quality-driven storyboards, or paper prototypes to better understand and bordering on manically busy perfecting his/her work [14]. design engineering market Figure 2. Modified figure of Buxtons model of a design-driven organisation [4]. The craftsman must be patient and not tempt to do quick write computer programs that embody digital artefacts' fixes. But, the craftsman's commitment is to do a good behaviour in working prototypes. craftsmanship for its own sake. If we do not consider the development of software such as “Craftsmanship may suggest a way of life that waned with software engineering, which qualities are in the the advent of industrial society–but this is misleading. development process for the continuing development work Craftsmanship names an enduring, basic human impulse, performed as a work of reflective practitioners and quality the desire to do a job well for its own sake. Craftsmanship driven craftsmen? cuts a far wider swath than skilled manual labor; it serves PROGRAMMING IS A CRAFT the computer programmer, the doctor, and the artist; “How can we make sure we wind up behind the right door parenting improves whet it is practiced as a skilled craft, as [good code or bad code] when the going gets touch? The does citizenship. In all these domain, craftsmanship focuses answer is: craftsmanship.” [16]. on objective standards, on the thing in itself. [...] And though craftsmanship can reward an individual with a sense In Martin et. al quote there is a notion of pursuing the of pride in work.” mastery of craftsmanship. Gaining experience through a dialogue between tacit knowledge and explicit critique, and Sennett describes the craftsman's ability to simultaneously relying on their mastery in their practice. [14]. identify problems and solve them. This is consistent with Schön's ideas about refelektion-in-action, discussing Empirical Findings problems qualifying in difficult situations. Sennett says that The Manifesto for Agile Software Development and later problem setting and problem solving has a rhythm that the Manifesto for Software Craftsmanship provide both relates subconscious and conscious reflection-in-action. empirical evidence supporting the idea of programing as a craft. Manifesto for Agile Software Development was “Every good craftsman conducts a dialogue between hand written as a critique of a rigid approach to requirements and head. Every good craftsman conducts a dialogue specification, analysis, design and documentation and to put between concrete practices and thinking; this dialogue focus on creating useful artifacts with rich user experience. evolves into sustaining habits, and these habits establish a The manifesto reads: Individuals and interactions over rhythm between problem solving and problem processes and tools, Working software over comprehensive finding.” [14]. documentation, Customer collaboration over contract Material negotiation, and Responding to change over following a Information technology, according to Löwgren and plan [17]. The manifesto reflects the programmer's Stolterman, is a material which it has no recognisable frustration that spend most of the time to document and features [3]. This view combines interaction with manage the project instead of writing code. "traditional" design trades and crafts. As I write this, the Manifesto for Software Craftsmanship1 The similarity between the industrial designer and architect – Raising the bar has been signed by over 9,000 people on the one hand and the interaction designer however, lies (9,410) with the constant rising number of signatures. The in creating technology. But, the industrial designer and manifesto reads: architect's material is concrete as opposed to interaction “As aspiring Software Craftsmen we are raising the bar of designer material that is intangible. We distinguish between professional software development by practicing it and these disciplines from one another by the material they are helping others learn the craft. Through this work we have working in and what they create, but they have similar come to value: Not only working software, but also well- practices, methods, and approaches to design. IT is on the crafted software. Not only responding to change, but also surface visual, auditory, or haptic, but this is an illusion steadily adding value. Not only individuals and interactions, created by calculations and represented in ones and zeros but also a community of professionals. Not only customer and described with programming languages. Media and collaboration, but also productive partnerships“ language for interaction designers are sketches of the interface's appearance, creating paper prototypes and to 1 http://manifesto.softwarecraftsmanship.org/ design software craft market Figure 3. Design and Programming as a craft facilitates the transition in the design work's change of materials and technology – from paper to pixels from sketches to code. The development of software - programming - is an activity almost everything open. The only constraints are Visualize with a wide range of intrinsic properties that are closer to Your Workflow and Limit Your WIP. Just inches from Do craft than science or engineering. Sennett describes the Whatever, but still surprisingly powerful.” [19]. This Linux programmer as the modern craftsman [14]. quotation shows how Kanban can be a support for an agile development process in constant change. Kanban allows the “People who participate in “open source” computer goal of a work in progress (WIP) change during the software, particularly in the Linux operating system, are process. This means that a WIP can have an open end. craftsmen who embody some of the elements first Thus, Kanban a radically different approach than all the celebrated in the hymn to Hephaestus, but not others. [...] earlier development models; Scrum, XP, RUP, Spiral model The Linux system is public craft. The underlying software and Waterfall model included. kernel in Linux code is available to anyone, it can be employed and adapted by anyone; people donate time to The open-endedness of Kanban stands out and allows improve it. Linux contrast to the code used in Microsoft, its practitioners reflection-in-action. Dealing with messy secrets until recently hoarded as the intellectual property of situations and continuous problem setting and problem one company. During these two decades, the software solving important becomes pillars of programmers’ work. industry has morphed within its brief life into a few This makes the interaction designer and the programmer dominant firms, buying up or squeezing out smaller standing on common ground; craftsmanship epistemology. competitor. In the process, the monopolies seemed to churn The ongoing design process turns into a software out even more mediocre work.” [14]. craftsmanship process, see Figure 3. Martin et al. press the importance of quality-driven and The main difference between interaction designers and disciplined practice in the programming craft. The programmers is that the material of interaction design has programmer must carefully name functions, classes, slightly different characteristics than the material for interfaces, methods [16]. Martin et al. focus on the code, to programming. The transition between design and carefully write clean code based meticulous attention on the programming is in this situation regards the knowledge principles and guidelines for the scope of a function or exchange between practitioners of different repertoires. method, of responsibility for a class, how test-driven DISCUSSION development is pursued, how concurrency is best According Buxton et al the problem setting should be done implemented, etc. Above all, Martin et al. show that the without writing code. However, programming is a good tool problem cannot be solved at once but a problem can be for a design that is difficult to portray on paper; for explored by writing tests and constant iteration of possible example, collaboration, pliable, or highly interactive improved solutions. features. Innovative interaction techniques require Agile Development with XP and Scrum in particular is a interactive prototypes. But, exploratory programming big step for software engineering in the direction of allows various designs to be explored and in retrospect focusing on service qualities and user experience as transform the code into clean code [15]. One way to explore opposed to non-agile development models, such as RUP, a design is to propose solutions by writing tests. By first the spiral model, and waterfall model. But, despite the Agile writing tests explores and sets the problem while the Manifesto have XP and Scrum and other iterative programmer simultaneously solves the problem [15]. development models still a clear plan-implement-evaluate Buxton notes that there is still a division between design cycle oriented that extends over a longer period, as at least and engineering and suggests how it can be bridged [13]. weeks, but in practice longer. A common feature for these But, is still an open question for research in design and methods is agreement about ends. software engineering [7, 13]. In recent years, the Kanban method attracted attention by We need to use methods of agile software development with providing even greater freedom for adaptation [19]. “Scrum a different approach. The development model Kanban is less prescriptive than XP, since it doesn’t prescribe any contains characteristics that allow an artisanal approach. specific engineering practices. Scrum is more prescriptive The Kanban development model does not prescribe specific than Kanban though, since it prescribes things such as roles, and is designed to accommodate continual change. iterations and cross-functional teams. ... Kanban leaves Programmers and designers can simultaneously be doing Conference on People and Computers: HCI...but not as problem setting and problem solving. we know it - Volume 1 (BCS-HCI '07), Vol. 1. British Computer Society, Swinton, UK, UK, 167-175. (2007) One way to bridge the design process and implementation here is to let the designer be part of the development team. 8. Klaus Krippendorf. The Semantic Turn. CRC Press, Instead of user stories as a description of the work in Taylor & Francis Group. ISBN10: 9-415-32220-0, (2006) progress (WIP), the concrete material from the design 9. Donald A. Schön, The Reflective Practitioner - how process is used - mood boards, sketches, storyboards, professionals think in action, Basic Books, ISBN videomatics etc. Initial WIP uses an explorative 0-465-06878-2, (1983) programming approach to continue the design process and 10.Boehm, B.W. 1985. “A Spiral Model of Software explore the problem space. As the artefact takes shape, the Development and Enhancement,”from Proceedings of development process can adopt a more pragmatic approach. an International Workshop on Software Process and Kanban is a relatively new model in software engineering Software Environments, Coto de Caza, Trabuco Canyon, but has since become popular in game development. It is no California, March 27-29, (1985) coincidence, since game development is focused on highly 11.Erik Stolterman. The Nature of Design Practice and interactive experience and game play. But, to use Kanban Implications for Interaction Design Research. i artisanal manner, the participants in the project need to have International Journal of Design, 2(1), p 55-65. (2008) the craftsmanship epistemology. 12.Barbara Tversky, What do sketches say about thinking?, A practice oriented epistemology and ontology bridge the in Proceedings of AAAI Spring Symposium on Sketch designing and constructing activities within interaction understanding, sid 148-151, (2002) design and programming. An artisanal approach facilitates 13.Bill Buxton.-On Engineering and Design: An Open the design and development of innovative and highly Letter. Businessweek. April 29, 2009. interactive digital artifacts that have novelty and relevance. http://www.businessweek.com/innovate/content/ REFERENCES apr2009/id20090429_083139.htm 1. Barry Boehm. A view of 20th and 21st century software 14.Richard Sennett. The Crafsman. Penguin Books, engineering. In Proceedings of the 28th international ISBN-13: 978 0 141 02209 3, 2008 conference on Software engineering (ICSE '06). ACM, New York, NY, USA, 12-29. (2006) 15.Malcom McCullough, Abstracting Craft - the practiced digital hand, MIT Press, ISBN 0-262-13326-1, 1998 2. Daniel Fällman. The Interaction Design Research Triangle of Design Practice, Design Studies, and Design 16.Robert C. Martin, Michael C. Feathers, Timothy R. Exploration, Design Issues, 24.3, p. 4-18, MIT press (2008). Ottinger. Clean Code: A Handbook of Agile Software Craftsmanship. ISBN 978-01-3235-088-4 3. Jonas Löwgren, Erik Stolterman. Desgin av informationsteknik - materialet utan egenskaper, 17.Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Studentlitteratur, ISBN 91-44-04203-5, (2004) Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, 4. Bill Buxton, Sketching User Experiences - getting the Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, design right and the right design, Morgan Kaufmann, Ken Schwaber, Jeff Sutherland, Dave Thomas. Agile ISBN 978-0-12-374037-3, (2007) Manifesto. http://agilemanifesto.org/. (2001) 5. Rikard Lindell. “Jag älskar att allt ligger överst” – En 18.Mikael Lindvall, Vic Basili, Barry Boehm, Patricia designstudie av ytinteraktion för kollaborativa Costa, Kathleen Dangle, Forrest Shull, Roseanne multimedia-framträdanden. Mälardalen University Press Tesoriero, Laurie Williams and Marvin Zelkowitz. Dissertations: 72, ISBN 978-91-86135-24-9. (2009) Empirical Findings in Agile Methods. Ed: Don Wells, 6. Anna Vallgårda, Tomas Sokoler. A Material Strategy: Laurie Williams. Extreme Programming and Agile Exploring Material Properties of Computers. Methods — XP/Agile Universe 2002 Lecture Notes in International Journal of Design. Vol 4, No 3 Dec 21. (2010) Computer Science, Volume 2418/2002, 81-92 (2002) 7. Thomas Memmel, Fredrik Gundelsweiler, and Harald 19.Henrik Kniberg, Mattias Skarin. Kanban and Scrum - Reiterer. Agile human-centered software engineering. In making the most of both. C4Media inc, ISBN: Proceedings of the 21st British HCI Group Annual 978-0-557-13832-6. (2010)