=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== https://ceur-ws.org/Vol-922/paper6.pdf
                       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)