• No results found

The Integration of User-Centered Design into Agile Software Development Projects

N/A
N/A
Protected

Academic year: 2021

Share "The Integration of User-Centered Design into Agile Software Development Projects"

Copied!
53
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

The Integration of User-Centered

Design into Agile Software

Development Projects

Dávid Marshall-Nagy

10629874

Thesis Master Information Studies

Business Information Systems

University of Amsterdam

Faculty of Science

Graduate School of Informatics

Final Version: 2014.08.17

Supervisor: Alexander Boer

Second Examiner: Peter Weijland

(2)

Abstract

In this paper we dive into the topic of User-Centered Design and how it can be successfully be implemented in Agile Software development projects. The research method used in this paper is a qualitative one which is highly relies on interviews conducted with professionals from Backbase, a Netherlands based software development company. As a Junior Consultant at Backbase, I was fortunate enough to take a look inside how a contemporary development process is carried out with User-Centered Design in focus. The interviews were carried out with professionals with multiple years of experience. The research method also consists of a literature review which provides a thorough analysis of the discussed subject matter. First we focus on the two topics individually and then we highlight what academic research has been done about the combination of the two areas. The findings of the analysis are validated through several professional interviews. After all the interviews are conducted, the final conclusion can be stated which serves as a foundation for future research.

The research revealed that there are three main areas where the two concepts misalign:  Main Focus and Philosophy

 Development Process  Notion of Users

Based on the literature review and expert interviews, I identified five planes of integration or balance points that need to be taken into consideration when integrating the two processes:

 Scheduling and Timing of User-Centered Design Activities  Incremental Design Deliveries

 UCD Specialist Role and Involvement  End-user Involvement and Usability Testing  Extending Requirements with Usability Goals

Keywords: User-Centered Design, Agile Development, User Experience, UX Design, Scrum, Requirements, Specification, User Interface, Usability,

(3)

Table of Content

Abstract ... 2 Table of Content ... 3 List of Figures ... 4 List of Tables ... 5 1 Introduction ... 1 1.1 Problem Statement ... 2 1.2 Research Question ... 2 1.3 Relevance ... 2 1.3.1 Academic Relevance ... 2 1.3.2 Business Relevance ... 3 2 Research Methodology ... 3 2.1 Research Method ... 3 2.2 Research Model ... 4 3 Theoretical Framework ... 5 3.1 User-Centered Design ... 5

3.1.1 The Expansion of the User-Centered Design Approach ... 5

3.1.2 What is User-Centered Design? ... 5

3.1.3 The Goal of User-Centered Design ... 6

3.1.4 Early Research of User-Centered Design ... 6

3.1.5 Producer Centered Design ... 9

3.1.6 The Subsets of User-Centered Design ... 9

3.1.7 Usability ... 10

3.1.8 User Experience Design ... 10

3.1.9 Applying User-Centered Design in Practice ... 14

3.2 Agile Software Development ... 15

3.2.1 Software Development Prior to Agile ... 16

3.2.2 What is Agile Development? ... 17

3.2.3 The Agile Process ... 18

3.2.4 Scrum ... 20

3.3 Comparing the Characteristics of UCD and Agile Development ... 22

3.3.1 Main Focus and Philosophy ... 22

(4)

3.3.3 Notion of Users ... 23

3.4 Recent Academic Research ... 23

3.4.1 Findings of the Recent Academic Research ... 23

4 Validation and Final Analysis ... 29

4.1 Expert Interviews ... 29

4.1.1 Interview Question ... 29

4.1.2 Interview Results ... 29

4.2 Final Model ... 33

4.2.1 Analysis of the Recent Academic Research ... 35

4.2.2 Scheduling/Timing the UCD process ... 37

4.2.3 Applying Incremental Design ... 37

4.2.4 UCD Specialist Role and Involvement ... 38

4.2.5 End-user Involvement and Usability Testing ... 38

4.2.6 Extended Requirements with Usability Goals ... 38

5 Conclusion ... 38 5.1 Further Research ... 39 6 Acknowledgements ... 39 7 References ... 40 8 Appendix ... 43 8.1 Interview Minutes ... 43

8.1.1 Expert 1 – User Experience Designer ... 43

8.1.2 Expert 2 – Senior User Experience Designer ... 44

8.1.3 Expert 3 – User Experience Designer ... 46

8.1.4 Expert 4 - Senior Business Analyst ... 46

List of Figures

Figure 1 - Research Model ... 4

Figure 2 - User Experience Layers (Nilsson, 2010) ... 11

Figure 3 - Usability vs. UCD vs. UX (Lowdermilk, 2013) ... 13

Figure 4 - User-Centered Design Process (Gulliksen, 2003) ... 15

Figure 5 - Waterfall Software Development Process (Royce, 1970) ... 16

Figure 6 - Agile Methodologies Market Share (VisionOne, 2013) ... 20

Figure 7 - Scrum Process (Schwaber, 2002) ... 21

(5)

List of Tables

Table 1 - User-Centered System Design (Pea, 1987) ... 7

Table 2 – The Design of Everyday Things (Norman, 1988) ... 8

Table 3 - Usability vs. Simplicity (Colborne, 2010) ... 10

Table 4 Perspectives of User Experience (Hassenzahl and Tractinsky, 2006) ... 12

Table 5 - Relation of User Experience Perspectives (Hassenzahl and Tractinsky, 2006) . 12 Table 6 - Key Characteristics of UCD (Lowdermilk, 2013) ... 14

Table 7 - User-Centered System Design Main Principles (Gulliksen, 2003) ... 15

Table 8 – Agile Manifesto (2001) ... 18

Table 9 - Agile Lifecycle Phases (Larman, 2004) ... 19

Table 10 - Key Aspects of Integration between UCD and Agile Approaches (Blomkvist, 2006) ... 24

Table 11 - User-Centered Design and Agile Method Integration (Fox et al, 2008) ... 25

Table 12 - Twelve emerging best practices for adding UX work to Agile development (Patton, 2008) ... 25

Table 13 – Agile User-Centered Design Problems, Symptoms and Solutions (Sy and Miller, 2008) ... 27

Table 14 – Current State of Agile User-Centered Design (Hussain et al, 2009) ... 27

Table 15 - Agile User-Centered Design Challenges (Salah et al, 2012) ... 28

Table 16 - Interview Results ... 31

(6)

1

1 Introduction

In recent years the way how people use digital products and how people interact with computers have changed drastically. Using a computer or any other electronic device should not be a tedious or frustrating process anymore. The sudden appearance of the modern smartphone operating systems and devices like the iPhone or Google Android, have changed people's perception of using digital products. In itself, the number of features is not enough to make a user dedicated to a certain product anymore. A simple list of functional requirements cannot be the sole metric for the quality and successfulness of an application. As the technology advances and more and more functionally similar product appear on the market, applications and webpages need to differentiate themselves even more.

Usability has become one of the main differentiating factors among consumer products. Recently, usability awareness has also risen among internal productivity applications such as BPMS systems, dashboards and CRM systems as well (Steinrud, 2012). Office workers or other technically less skilled employees demand a pleasant user experience in their professional working environments. Creating huge business process diagrams and lengthy functional and technical descriptions often fail to capture what actually the user of the application needs. The business goals that define functionality of the developed applications should also take into consideration the end-user perspective and the usability of the application. The success of user friendly commercial products has changed the digital product creation mentality. The end-user has become the center of the development process. According to Holzinger (2005), usability methods should be recognized and implemented by software developers early in the process.

As the traditional waterfall model of software development has become less and less suitable for modern software application development, new methodologies have become popular among industry professionals. In recent years the magic word agile has gained a lot of support from huge IT companies like Microsoft, Google, Yahoo and IBM. All the major players of the industry have started to experiment with the new software development philosophy and more and more companies join their numbers every year. Its ability to adapt to change and its decreasing dependency on heavy documentation allowed companies to innovate themselves with new, fresh products.

It is clearly visible that professionals have already realized that the two disciplines can be powerful when effectively used together. In this thesis, I attempt to conceptualize a framework that can be applied to successfully integrate User-Centered Design with Agile development methods. During my research, I focused on the IT management aspects of the integration. Human-Computer Interaction techniques, practices and concepts will not be discussed in detail. The main goal of the paper is to effectively capture the usability aspect in the development process by extending the requirements with a user-centered approach.

(7)

2

1.1 Problem Statement

A research conducted by the Actuation Consulting (2013) revealed that almost 74% of the surveyed organizations adapted some type of agile product development methodology. According to Da Silva et al (2011), the main challenge behind combing the two disciplines is in the quality concept. While User-Centered Design puts user experience as the most important aspect of quality, software engineering puts an emphasis on functional and structural aspects. Blomkvist (2005) points out that agile development does not have the necessary usability awareness as it focuses on functionality and features instead of the users. A solution for this misalignment needs to be delivered in order to effectively take advantage of the powerful capabilities of the two disciplines.

1.2 Research Question

Based upon the previously discussed objectives and goals, the following research question has been defined:

How can User-Centered Design be successfully implemented in

Agile Software Development process in order to increase usability

awareness?”

In order to fully understand every aspect of the subject matter, the following sub-questions need to be explored:

What is User-Centered Design? What is Usability?

What is User Experience?

How does User-Centered Design differ from other design principles? How can User-Centered Design be applied in practice?

What is the relation between User-Centered Design and User Experience? What is Agile Software Development?

How does Agile Software Development differ from other methodologies? What research has been done about combining User-Centered Design and

Agile Software Development?

All of the above sub-questions are explored in the chapter called Theoretical Framework.

1.3 Relevance

1.3.1 Academic Relevance

Despite the fact that Agile is one of the most popular development methodologies nowadays, the integration of User-Centered Design (UCD) into the agile workflows started only recently. In 2006 Chamberlain et al. realized the importance of integrating the agile software development process with the UCD approach. Hussein et al. (2009) conducted an online survey which showed positive results regarding how developers and designers assess the value of UCD and agile method integration. These studies show us how relevant and important is to combine the two fields during the development process. Further

(8)

3

research is needed to exploit the possibilities of integrating a user-centered approach into agile methodologies.

1.3.2 Business Relevance

The use of agile methodologies is expanding by every year. More and more companies choose to utilize some kind of agile approach in their product development process. In 2012, VisionOne, an enterprise software company, conducted a survey among 500 organizations about the application of agile methodologies. 84% of the companies stated that they use some kind of agile method during their product development. In 2013, a follow-up survey from VisionOne revealed that 88% of the respondents practice agile development. These figures clearly show that the relevancy of agile development is getting stronger and stronger every year.

2 Research Methodology

2.1 Research Method

This paper consists of two research methods:  Extensive literature review

Qualitative research part

The literature review serves as the foundation which provides a theoretical framework that deeply covers the topics of User-Centered Design and Agile Software Development. After the analysis of these topics, a conclusion can be drawn. This conclusion will be evaluated through interviews with industry professionals. The interviews will follow a semi-structured composition, which means that main questions will be formulated in advance but additional non-scripted questions will also be asked. This approach creates an overall structure for the interview without sacrificing the flexibility to cover additional topics that might come up during the conversation.

(9)

4

2.2 Research Model

In this chapter the graphical representation of the applied research model is presented.

Figure 1 - Research Model

As shown on the figure above, the applied model consists of two main segments. Each segment contains two focus points.

The First Segment is the Theoretical Framework which provides the necessary theoretical knowledge as the foundation. The Framework has two focuses:

 The First Focus is an extensive literature review that investigates the discussed topics individually

 The Second Focus is an analysis of the recent academic work that had been carried out about the integration of User-Centered Design and Agile Methodologies

The Second Segment is the Validation and Final Analysis which provides the validation of the results from the Literature Review and the final conclusion of the paper. The two focuses are the following:

 A field study which is a series of semi-structured interviews with industry professionals with years of experience

(10)

5

 A Final Analysis based on the interview results concludes all the findings of the paper and provides recommendation for future research as well.

3 Theoretical Framework

This chapter provides the necessary theoretical background by introducing the concepts of User-Centered Design and Agile Software Development. Each chapter gives a detailed description of the given subject matter by analyzing recent academic research and also by taking a closer look at current state of the software development industry.

3.1 User-Centered Design

In this paragraph the concept of User-Centered Design is presented. First, the definition of UCD is introduced, which is followed by a literature review that investigates the early academic works and researches in the topic. The chapter finishes with the analysis of contemporary approaches.

3.1.1 The Expansion of the User-Centered Design Approach

Although Human Computer Interaction (HCI) is not equivalent with UCD it had an important role in its expansion as a design framework. As computers became more capable of delivering rich graphical interfaces and the number and variety of users have risen significantly, designers had to pay more attention to interface design. They needed to create interfaces that are easily operable by non-technical users as well. The appearance of accounting applications and office software suits demanded a different mindset during the interface creation process. The new user base of these applications changed from the technical savvy users who invested hours in computer usage to people whose technical skills were not so high. The learning curve of using an application had to be kept to a minimum. This is when User-Centered Design became more dominant in the product development process in the late 80s early 90s. It entered its second renaissance a few years ago due to the appearance and huge success of modern smartphone devices. Companies like Apple, Google and Microsoft realized the importance of user needs and aimed to create products that not only provide the necessary functionality but also deliver a satisfactory user experience. Realizing the importance of User Experience accelerated the application of User-Centered Design approaches in software development.

3.1.2 What is User-Centered Design?

User-Centered Design is one of the most trending topics in digital product and service development at the moment. However, when people think about it they often tend to believe that the concept is interchangeable with User Experience Design or Human-Computer Interaction. It is only natural to associate UCD with solely interface design but, in reality, it covers much more than that. According to Haklay et al (2010), User-Centered Design is a conceptual framework originated from the 1980s that provides guidelines and principles for designing products in software and also hardware development processes. (p. 91). It was a totally new perspective which aimed for creating better products by engaging the users in the design process and understanding who they are and

(11)

6

what they actually need. This way users do not have to change their behavior and adept to a new system as the product was created with their' existing needs and usage patterns.

3.1.3 The Goal of User-Centered Design

As Smith et al (2012) point out, the main goal of UCD is to achieve customer satisfaction by meeting the customer needs. (p. 1) He distinguishes four conceptual levels of customer needs:

Aspirational level: the product needs to improve personal image or status Emotional level: the product needs to inflict positive feelings, emotions Functional level: the product needs to provide suitable functionality, utility

Physical level: the product needs to deliver certain aesthetic and functional features

User-Centered Design's most important task is to harmonize the technical design descriptions with the user needs. This accuracy determines the successfulness of the applied UCD approach (Nagamachi et al. 1995). In other words, User-Centered Design aims to create better products by increasing the usability or the quality of user experience of services and applications.

3.1.4 Early Research of User-Centered Design

In this chapter the inception of modern UCD research is presented in the form of a short literature review. The academic research discussed in this chapter established the very essence of User-Centered Design for the coming years. In order to realize the academic and business relevance of this field, we need to analyze the early works of researchers in more detail. Due to the scope of this paper I only focus on the works of Donald A. Norman who became the pioneer of UCD in the mid 80s and early 90s. His work is widely considered to be the foundation for every UCD approach among industry professionals.

The work of Donald A. Norman et al (1986) User-Centered System Design: New Perspectives

on Human-Computer Interaction is considered to be the Bible of modern User-Centered

Design and also Human-Computer Interaction. The very term "User-Centered Design" was created by Norman during his early researches. His first book served as a guide to designers to establish the new mindset. Each section of the book dives into the different aspects of the design approach by studying and collecting the work of different researchers, authors. By analyzing Pea's (1987) review of the book, the following statements can be summarized in the following table:

(12)

7

User-Centered System Design

User-Centered Design  Emphasizes the importance of connecting user values to system

design

 A guide on Cognitive Engineering

 Defines the goal of UCD: moving the user and the system/application closer

The Interface Experience

 Highlights that interfaces are tools designed for experiencing different environments

 Analysis of "direct engagement" designs

 Emphasizes the "first person" aspect of designs

Users' Understanding  Highlights the issues behind "user understanding"

 Introduces the criteria for building user understanding of interactive systems (internal coherence, validity, and integration of available and new knowledge)

User Activities  Analyzes user activity structure

 Examines psychological constraints on conducting multiple tasks 

Toward a Pragmatics of Human-Machine Communication

 Evaluates the different options for improving and optimizing "human-machine communication" on a technical level

 Introduces the Input/Output concept: user input relates to an object in the system's or applications output

Information flow  Supports the idea for a unified approach to improve the information flow between all participants of the Human-Machine Communication  Analyzes the types of user support and how the system can minimize

error 

Context of computing  Analyzes the social aspect of computer supported creative tasks such

as designing, writing and communicating

 Highlights the occurring challenges of user understanding maintenance

Table 1 - User-Centered System Design (Pea, 1987)

In his follow-up publication, The Psychology Of Everyday Things (later republished as the

The Design Of Everyday Things), Norman (1988) further investigates the concept of UCD with

a great emphasis on the role of the user, the user's needs and also the usability design. Norman also clarifies the role of the designer in the development process by pointing out that the designers main duty is to assist the user in performing the given task and also to ensure that the application is used in accordance with its intended design. In the table below, the key takeaways of the book are presented:

(13)

8

The Design of Everyday Things

The Designer's Role and

Responsibility

 The designer acts as a guide to the user through the whole journey of using the product

 The user should not be blamed for not using the product according to design

 If the design is not simple enough to use accordingly then it is a bad design

 The designer is responsible for communicating the products capabilities through its design

Get Into the Users Head  The designer needs to understand what the user thinks about using the product

 The designer needs to create a conceptual model that is easily understandable by the user. In other words, the designer's conceptual model and the user's conceptual model of how the product should be used need to be as close as possible. This is communicated through the system image. The figure below illustrates the concept

The Importance of Natural Mapping

 Understand the importance of mapping which means the relation between a control and its functionality

 Natural mapping means that the relation between a function and its control should be as self-explanatory as possible. It should feel natural and obvious to the user without causing any frustration or misunderstanding

The Importance of Perceived affordances

 Perceived affordances are the user's perception about a certain functionality that can be achieved with the use of the product  The design should imply the intended functionality of the product

by creating a perception that avoids confusion and misunderstanding

The Importance of Feedback

 Feedback is the information that is communicated to the user after making any action

 The designer needs to implement a feedback mechanism that immediately shows that the action was successful

The Importance of Forcing Functions

 Forcing Functions are tools for error prevention and avoiding failure

 The designer needs to implement the forcing functions in a way that they can handle the edge cases without forcing undesired outcomes on the user

Table 2 – The Design of Everyday Things (Norman, 1988)

Norman also summarizes seven principles that every designer should follow during the design process:

1. "Use both knowledge in the world and knowledge in the head" 2. "Simplify the structure of tasks"

3. "Make things visible: bridge the gulfs of Execution and Evaluation" 4. "Get the mappings right"

5. "Exploit the power of constraints" 6. "Design for error"

(14)

9 7. "When all else fails, standardize"

3.1.5 Producer Centered Design

In order to clearly understand why User-Centered Design is such a unique and significant concept we need to introduce its predecessor design approach as well. By putting UCD into perspective and comparing it to other design concepts, the true innovation behind the approach becomes even more visible.

Smith et al (2012) describes Producer Centered Design (PCD) as an approach that is mainly focused on producer goals (p. 2). This approach was highly popular in the early consumer markets when user satisfaction was not as significant as nowadays. A product's success was mostly based on the goals that the product owner or producer set. These goals didn't concentrate on user needs or user satisfaction. A good example can be cost reduction. This goal only focuses on one aspect of the product which is price and production cost. The actual user satisfaction in this scenario is not relevant. Of course, it can be stated that low price can cause high customer satisfaction. However, that satisfaction only originates from owning a certain product not the actual use of the product. Owning a product for a low price is only one step of a greater customer journey which is not taken into consideration in this example. Another good representation of a producer goal is the number of features. A couple of years ago, one of the dominant development mentalities was to implement as many features into a product as possible. The more feature a product had the more successful it became in the market. It did not matter if the user actually used most of the features in reality.

PCD is not necessarily a bad design approach. This design, just like any other, followed the costumers’ consumption behavior of its time period. As customers gained more power and became more conscious consumers, other aspects of the products became more relevant. In today's market it is almost impossible to create a successful product solely based on producer goals. The number of similar products available on the market simply does not allow product developers to avoid what the users need. Listening to and communicating with the customers is one of the key elements of creating a successful product.

3.1.6 The Subsets of User-Centered Design

3.1.6.1 Participatory Design

The next step in the evolution of design concepts is the Participatory Design (PD). As its name implies, this approach realized that other stakeholders should be involved in the design process besides the producers. The concept originates from Scandinavian countries where designers noticed the social disruption caused by technology in the workplaces. Their answer to the occurring issue was Participatory Design. The basic idea of this approach is to involve experts from different domains such as users, managers and technicians, designers. Professionals designed and prototyped design concepts in a democratic manner (Zimmerman, 2011).

(15)

10 3.1.6.2 Contextual Design

According to Holtzblatt (1997), Contextual Design is a design process that utilizes professionals from different domains in cross-functional teams. The teams collect data and information about users which is analyzed and interpreted in a way to help create design concepts. Contextual Design has well defined steps that specifically describe what actions must be done at each point in the process. This approach aims to provide a seamless transition from early concepts to the final design. The process involves various brainstorming sessions, trading ideas, market studies, surveys etc. It is also considered to be an early version of customer-centric design approach.

3.1.7 Usability

The ISO 9241-11 standard describes usability as “the extent to which a product can be used

by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use”. Colborne (2010) goes even further and makes a distinction between

usability and simplicity. In the following table the comparison of the two concepts is presented:

Usability aims for

Simplicity aims for

“Specific group of people can use it”

“Easy to use” “Responds quickly”

“Understood quickly”

“Works reliably”

“Straightforward error messages”

“Complete information” “Works in a user test”

“Anyone can use it”

“Effortless to use” “Responds instantly”

“Understood at a glance”

“Works always” “Error-free”

“Just enough information” “Works in a chaotic environment”

Table 3 - Usability vs. Simplicity (Colborne, 2010)

User-Centered Design’s task is to achieve all the goals above in the usability column.

3.1.8 User Experience Design

The next concept that needs to be discussed is User Experience or UX design and its relation to UCD. This introduction is mostly needed to clear out all the confusion about the two concepts.

3.1.8.1 What is User Experience?

Defined by ISO standards (2009), user experience is a "a person’s perceptions and

responses that result from the use or anticipated use of a product, system or service." This

definition is accurate; however, it fails to capture the most important aspect of the overall user experience. Instead of perception and response, the most widely accepted characteristics of user experience are a person's feelings and emotions about using, owning a product or service. User experience design aims to create the best emotional response from the end-users by building a coherent and well-crafted experience that covers the whole user journey. User experience is not only about the user interface but also the branding, packaging everything that the user has interaction with. The following diagram by the Nilsson (2010) shows the different subsets of user experience:

(16)

11

Figure 2 - User Experience Layers (Nilsson, 2010)

As the diagrams shows, a product or service with a good user experience must:  “be useful”

 “be easy to use”

 “be attractive and pleasing”

 “have an overall brand experience”

Kraft (2012) goes a little further and highlights the five factors that can innovate the user experience of a product:

"Relevance"

"Positive feelings in a row"

"Perception of uniqueness or novelty" "Visibility"

"Marketability"

3.1.8.2 Perspectives of User experience

Hassenzahl's and Tractinsky's (2006) literature review of recent user experience research revealed that there are three major areas of UX. Each field deals with a different kind of aspect that influences the overall user experience. The perspectives are the following:

(17)

12

Perspectives of User Experience

Human needs

beyond the instrumental

This aspect addresses the fact that user experience goes beyond the instrumental value of a product. It is not solely about the functionality or how a certain task can be completed. User experience has additional non-instrumental aspects such as aesthetics, intimacy, personal improvement, knowledge gain etc.

Emotion and affect User experience concentrates on providing positive human emotions like joy, fun and pride while avoiding any negative emotions like frustration, anger and sadness. Hassenzahl (2006) describes two basic approaches for handling emotions within UX:

1. "Emotions are consequences of product use"

2. "Emotions are antecedents of product and serve as evaluative

judgments"

The experiential - Nature of

Experience

Hassenzahl (2006) points out that the experiential viewpoint of UX deals with two basic aspects of using a product:

"its situatedness"

"its temporality"

This aspect stresses the importance of "the experience" which is the combination of different elements like "the product and internal states of the

user (e.g. mood, expectations, active goals)".

Table 4 Perspectives of User Experience (Hassenzahl and Tractinsky, 2006) The following diagram illustrates the relation between the three aspects:

(18)

13

3.1.8.3 Relation between User-Centered Design and User Experience Design

Now that both concepts of User-Centered Design and User Experience design are introduced it is time to highlight how they relate to each other.

Based on the literature review, it can be stated that User-Centered Design is a philosophy that provides guidelines to the overall design process. This philosophy can be applied to almost any kind of design practice like product design, interface design, game design or architecture etc. User-Centered Design tries to provide an answer to the question of how to design a product. On the other hand, User Experience Design is something that can be achieved through User-Centered Design. In other words, User-Centered Design is an approach to achieve good User Experience Design. Lowdermilk (2013) displays the relation between User-Centered Design, Usability and User Experience in the figure below:

Figure 3 - Usability vs. UCD vs. UX (Lowdermilk, 2013)

Lowdermilk (2013) describes the relationship as “practicing user-centered design will ensure

that your application maintains good usability” and “User-centered design can be implemented to ensure that your application maintains a great user experience” (p. 6). He also summarizes

the main characteristics of User-Centered Design and its relation to usability, Human-Computer Interaction and User Experience in the following table (p. 13):

(19)

14

Key Characteristics of User-Centered Design

“The world of usability is broad and focuses on the study of humans interacting with any product.”

“Human−computer interaction (HCI) is a subset of usability that focuses specifically on humans

interacting with computing products.”

“User-centered design (UCD) is a methodology used by developers and designers to ensure they’re creating products that meet users’ needs.”

“User experience (UX) is one of the many focuses of UCD. It includes the user’s entire experience with the product, including physical and emotional reactions.”

“UCD is not subjective and often relies on data to support design decisions.”

“UCD involves much more than making applications aesthetically pleasing. Design plays an

important role; however, it’s not the only focus.”

“UCD can actually save time by helping you avoid costly mistakes.”

“UCD doesn’t distract us from getting work done. It ensures that we focus on the right things: meeting users’ needs with the proper technological solution.”

Table 6 - Key Characteristics of UCD (Lowdermilk, 2013)

3.1.9 Applying User-Centered Design in Practice

As mentioned before, User-Centered Design is more like a philosophy than an actual methodology that can be applied the same way in every project. Due to the fact that UCD is only a set of guidelines focusing on user satisfaction, it is not possible to find one universally accepted practical application. As it is a multidisciplinary design approach, it can be applied to different processes like usability engineering and user experience design as well. However, there are several reoccurring characteristics among the various methodologies. Gulliksen et al. (2003) identified twelve main principles that describe an “evolutionary life-cycle model”. The principles are the following:

User-Centered System Design Main Principles

User Focus “The goals of the activity, the work domain or context of use, the users’ goals, tasks, and needs should early guide the development”

Active user involvement “Representative users should actively participate, early and continuously throughout the entire development process and throughout the system lifecycle.”

Evolutionary systems development

“The systems development should be both iterative and incremental”

Simple design representations “The design must be represented in such ways that it can be easily

understood by users and all other stakeholders”

Prototyping “Early and continuously, prototypes should be used to visualize and evaluate ideas and design solutions in cooperation with the end users”

Evaluate use in context “Baselined usability goals and design criteria should control the development”

Explicit and conscious design activities

“The development process should contain dedicated design activities”

A professional attitude “The development process should be performed by effective multidisciplinary teams”

(20)

15

User-Centered System Design Main Principles

throughout the development cycle”

Holistic design “All the aspects that influence the future use situation should be developed in parallel”

Processes customization “The user-centered systems design process must be specified, adapted and/or implemented locally in each organization”

A user-centered attitude “Should always be established”

Table 7 - User-Centered System Design Main Principles (Gulliksen, 2003)

Gulliksen et al. (2003) created the following iterative life-cycle for User-Centered Design. The key element of the process is to put an emphasis on usability during the whole design process.

Figure 4 - User-Centered Design Process (Gulliksen, 2003)

3.2 Agile Software Development

Now that the concept of User-Centered Design and its practical applications have been discussed, it is time to shift the focus to Agile Software Development. Let us start the discussion with the definition of software development or software engineering. Sommerville (2011) defines software engineering as “an engineering discipline that is

concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.” (p. 7). The discipline itself is

extremely diverse and some of its aspects may be more dominant in different product development projects. However, Sommerville (2011) identified four software engineering fundamentals that are applicable for any kind of software solution. The fundamentals are the following:

1. “Software systems should be developed using a managed an understood development process”

(21)

16

3. “Understanding and managing the software specification and requirements (what the software should do) are important”

4. “You should make as effective use as possible of existing resources”

Software development is an extremely complex endeavor that poses many challenges to developers, designers and managers alike. It requires a lot of resources, organization, communication and dedication. As software solutions became more and more advanced, the whole development process demanded an effective way of delivering products from inception to implementation. The success rates of IT software development projects were not so promising though. Deadlines were constantly missed; projects were draining up resources without any escalation and most of the final applications failed to include all the planned features. The chaos report by the Standish group (1995) revealed that only 9% percent of projects turned out to be successful in large companies, 16.2% in medium and 28% in small companies. These figures showed that the industry desperately needed some innovation to remedy the management of IT projects. Professionals started to look for a solution to these issues and shortly the Agile approach got introduced.

3.2.1 Software Development Prior to Agile

In order to fully understand why the agile methods had such an impact, a short introduction is needed to its predecessor approach that dominated the industry for decades.

The most widely adopted software development method was a sequential approach called the waterfall model. The development process was defined by Royce (1970) as a guide for less complex and simple software engineering projects. The process consists of the following steps:

Figure 5 - Waterfall Software Development Process (Royce, 1970)

In this sequential approach, every action is carried out in one separate step. In theory, each step should be completed before the next one can be started. As the approach originates from traditional manufacturing industry, it has revealed many shortcomings over

(22)

17

the years and has received a lot of criticism. In 1995, the CHAOS report by the Standish group identified the three key factors that made the software development projects challenging:

 “Lack of User Input”

 “Incomplete Requirements & Specifications”  “Changing Requirements & Specifications”

In other words, most of the projects failed to meet their goals in time or within budget because the applied methodology was not able to handle change effectively and the requirements were not validated by the users. The new coming approaches aimed to provide a solution to these issues.

3.2.2 What is Agile Development?

Defined by the Merriam-Webster online dictionary, the word agile means “able to move

quickly and easily” or “quick, smart and clever”. Larman (2004) describes Agile development

as the following:

“Agile development methods apply timeboxed iterative and evolutionary development,

adaptive planning, promote evolutionary delivery, and include other values and practices that encourage agility—rapid and flexible response to change.” (p. 17)

There are numerous other definitions of the method; however, the essence of Agile can

be summarized as a team-based, context-sensitive approach that aims to achieve personal, technical and organizational success by utilizing existing practices like version controlling, coding standards and frequent meetings, reviews. Agile is a philosophy that defines a mindset for approaching software development (Shore & Warden 2007). The very essence of this mindset is summarized in the Agile Manifesto which was created in 2001 by a small group of experts. The manifesto highlights four values and twelve principles that need to be applied to achieve the agile mindset:

(23)

18

The Four Values

“Individuals and interactions over processes and tools” “Working software over comprehensive documentation”

“Customer collaboration over contract negotiation” “Responding to change over following plan”

The Twelve Principles

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software”

“Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage”

“Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale”

“Business people and developers work together daily throughout the project”

“Build projects around motivated individuals. Give them the environment and support they need, and rust them to get the job done”

“The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”

“Working software is the primary measure of progress.”

“Agile processes promote sustainable development. The sponsors, developers and users should be

able to maintain a constant pace indefinitely.”

“Continuous attention to technical excellence and good design enhances agility.

“Simplicity—the art of maximizing the amount of work not done—is essential.”

“The best architectures, requirements and designs emerge from self-organizing teams.”

“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”

Table 8 – Agile Manifesto (2001)

3.2.3 The Agile Process

When analyzing the agile development there are two different processes that need to be distinguished:

 The Agile development process  The overall project cycle

3.2.3.1 Project Cycle

Larman (2004) identifies four stages of the agile lifecycle: inception, elaboration, construction and transition. The following table summarizes all the four phases of the cycle with their goals and activates.

(24)

19

Agile Lifecycle Phases

Phase Milestone Goals Activities Comments

Inception “Agreement on scope, vision, and priorities.”

“Some risks identified.”

“A plan to start elaboration exists.”

“Requirements workshop”

“Start Vision and Risk List”

“Start Use-case Model and Supplementary Specs”

“Prototyping”

“Establish a common vision.”

“Typically a very short phase, such as a few days or weeks.”

“A first requirements workshop might be held”

Elaboration “The vision, requirements, and architecture are stabilized.”

“The core executable architecture is

implemented; major risks are mitigated.”

“The majority of requirements are defined.”

“Estimates and coarse grained plan are defined.”

“Testing, programming, designing in short iterations”

“Requirements workshop, refining the vision”

“Refining the environment (process and technical)”

“Build and test the risky core.”

“This phase contains significant production programming and testing, combined with evolutionary requirements and design work.” “Usually composed of several iterations. In addition to programming, perhaps a series of requirements workshops; one per iteration.”

“Semi-reliable plans

and estimates at end of elaboration.”

Construction  “System is believed ready

to be deployed.”

“Stakeholders are ready for deployment.”

“Testing, programming,

designing in short iterations”

“Stakeholder evaluation and steering; ideally only minor requirement changes”

“Create all documents”

“Alpha testing”

“Build and test the

rest.”

“Typically the largest set of iterations. As in elaboration, major testing occurs in each iteration.”

Transition “System is deployed.”

“Users are satisfied.”

“Beta or release candidate testing and feedback”

“Final programming and documentation”

“Educating, marketing,…”

“Deployment”

“Deploy.”

“Beta testing, release candidate evaluation, training.”

(25)

20 3.2.3.2 Development Process

The iterative development process is basically a miniature project cycle that only covers the tasks for a given iteration. The process is basically a feedback loop that ends with an increment of the final product, which is validated by the stakeholders.

3.2.4 Scrum

As described in the Agile Manifesto, the agile methods were created as a reaction to the shortcomings of the traditional development approaches. Over the years, numerous different methodologies were introduced like Extreme Programming, Scrum, Lean, Crystal Methods, Feature Driven Development and Dynamic Systems Development Methodology. All of them have different characteristics but their overall agendas and goals are very similar. Due to the scope of the paper, only the Scrum method will be part of the discussion as its characteristics and practices can give a sufficient overall representation of the agile approaches. A report by VisionOne (2013) showed that Scrum is the most popular method as 55% percent of respondents chose it as their primary approach. On the figure below, the market share of the different approaches is visible:

Figure 6 - Agile Methodologies Market Share (VisionOne, 2013) 3.2.4.1 Ceremonies

As mentioned before, Scrum is the most popular Agile method at the moment. Scrum was first described by Schwaber (2002) as an approach which “accepts that the development

is unpredictable”. This mentality established the very essence of the approach which is to be

(26)

21

According to Schwaber (2002), Scrum is an iterative and incremental development process that can be broken down into two basic activities: Development and Inspection. In a Scrum everything is done in Sprints, which is the terminology used for an iteration. The length of the Sprint can vary in time depending on the project. It can be two weeks or even 30 days long. Every sprint starts out with a Planning Meeting, where the team and the product owner discuss what functionalities should be implemented. During the Sprint, the team holds a meeting every day, which is called the Daily Scrum or Daily Standup. In this meeting the team members have to answer three basic questions:

“What have you done on this project since the last Daily Scrum meeting?”

“What do you plan on doing on this project between now and the next Daily Scrum

meeting?”

“What impediments stand in the way of you meeting your commitments to this Sprint and this project?”

Based on the available resources, skills, capabilities and technology the team evaluates what features and functionalities should be implemented in the given iteration. This selection of features serves as a “miniature scope” for the sprint. The team prioritizes the implementable functionalities and focuses only a small number of features at a time. Everything outside of this scope gets ignored and will be a part of the discussion in the coming iterations. This approach allows the team to handle changes or any kind of unexpected complexities more effectively as the focus is not divided up among numerous features. At the end of each cycle, the built increment of the product is presented to the stakeholders during the Sprint review meeting. The Product Owner and the stakeholder inspect the implemented functionalities and provide feedback. After the Sprint review and before the next sprint, a Sprint retrospective meeting is held by the Scrum Master to improve and synchronize the Scrum process for the next iteration.

(27)

22 3.2.4.2 Artifacts

The most important artifact of any Scrum project is the requirement list also known as the Product Backlog. The features selected to be developed in a given iteration are defined in the Sprint Backlog. Schwaber (2002) describes the Product Backlog as a document that is constantly evolving during the development process. It contains the desired functionalities in the form of user stories. According to Cohn (2004), user stories are “functionality that will be valuable to either a user or purchaser of a system or software. Some user stories are way larger than the other ones. Cohn (2004) refers to these stories as epics. An epic is a user story that can be divided into smaller stories to cover all the necessary details. A good example for an epic is “As a user, I want to search for a product”. This story is too broad and large to be handled as one single user story, which means a better way to process it is to make smaller more detailed sub-stories out of it.

3.2.4.3 Roles

There are three Scrum roles in total: the Product Owner, the Team and the Scrum Master. Each of these roles is responsible for different aspects of the project but they are accountable for each cycle’s success in unison. The Product Owner is in charge of representing the interests of the stakeholders by managing the backlog and making sure that all of the necessary requirements are defined and met appropriately. The Team’s main objective is to develop the functionality of the product by self-managing and organizing the available resources and capabilities. Basically, they are responsible for implementing the requirements in the given iteration. The Scrum Master’s task is to make sure that the Scrum process runs smoothly without any disturbance by making sure that the Scrum rules are followed by everyone involved in the project (Schwaber 2002).

3.3 Comparing the Characteristics of UCD and Agile Development

After the thorough introduction of both User-Centered Design and Agile Development the challenges of combining the two concepts became clearly visible. Despite some of the similarities there are three main differentiating aspects that can be identified based on the literature review:

Main focus and philosophy Development process Notion of users

3.3.1 Main Focus and Philosophy

Blomkvist (2005) states that both concepts share some goals such as “focus on people,

communication, collaboration, adaptive process and customer user needs”. However, despite

these shared characteristics, agile is not as much focused on end-user needs and usability as UCD since its main goal is to implement the features and functions according to the requirements. Its main philosophy is more focused about delivering the features and less about end-user involvement.

(28)

23

3.3.2 Development Process

Although both UCD and Agile are iterative processes, the way they iterate and the output of their iteration differ quite a bit. User-Centered Design aims to create more immerse and larger upfront designs based on research and user involvement with evaluation of various fidelity while the Agile process delivers smaller and already functioning features to the customer (Fox et al, 2008). The biggest challenge in integrating the processes is to make UCD more incremental to keep up the pace with the Agile flow.

3.3.3 Notion of Users

Blomkvist (2005) points out that User-Centered Design involves the end-users in the design process who actually interact with the product. On the other hand, the Agile development encourages the involvement of customers and stakeholders who may not be a good representation of the actual users of the product. This approach does not guarantee good usability as it does not take the end-users opinion into consideration.

3.4 Recent Academic Research

Now that the extensive literature review is concluded it is time to take a look at what research has been done about the combination of the agile software development methods with the User-Centered Design principle. In this chapter, I present the results of recent academic researches to highlight the challenges of creating a User-Centered Agile framework.

3.4.1 Findings of the Recent Academic Research

Blomkvist (2005) attempted to answer the question about how UCD practices can be integrated into the agile workflow. His research revealed three approaches:

1. Apply UCD practices into the agile development methodology. With this approach, developers are able to improve the usability of the product without sacrificing the already established workflow. However, it is highly possible that UCD has a minor role in the process as it is not applied extensively enough in the project. This way the UCD principles are not utilized to their full potential.

2. Apply agile practices into a UCD framework. This method creates a more agile UCD framework however; the emphasis on software development techniques is not high enough.

3. Balanced combination of agile principles and UCD. This approach can be achieved by creating a new software development framework from scratch or melting the two methods together. All of the values, practices and principles of are applied equally.

In 2006, Blomkvist summarized some key aspects of integrating UCD with the agile approaches. The ideas are presented in the table below:

(29)

24

Key Aspects of Integration between UCD and Agile Approaches

 Main goal is to deliver usable and functional product

 Balance between the release of the product and enhancing the usability must be achieved  Prioritize the features often with the involvement of the users and usability designers  Involve actual end-users (not only customers) at all stages of development

“People are more important than processes”

 Pair usability designers with programmers or usability designers with users to promote communication

Apply iterative development

Usability goals should determine the course of the evolutionary development

 User stories often fail to capture the necessary usability requirements as they are more focused on the functionality aspect. (What should be done, instead of how should be done) Usability validation is key. Utilize low-fidelity frames and prototypes

Table 10 - Key Aspects of Integration between UCD and Agile Approaches (Blomkvist, 2006) Based on the observation of three project teams within an organization, Chamberlain et al (2006) defined five principles that characterize the integration of UCD and Agile development. The field study revealed the following key aspects:

User Involvement: “the user (not the customer) should be involved in the development process”

Collaboration and Culture: “the designers and developers must be willing to

communicate and work together extremely closely”

Prototyping: “the designers must be willing to “feed the developers with prototypes

and user feedback on a cycle that works for everyone involved”

Project Lifecycle: “UCD practitioners must be given ample time in order to discover

the basic needs of their users before any code gets released into the shared coding environment.”

Project Management: “the agile/UCD integration must exist within a cohesive project management framework that facilitates without being overly bureaucratic or prescriptive”

Fox et al (2008) also discovered three approaches to bridge the gap between UCD and Agile development. The study is based on literature review and interview with professionals from different companies. The approaches’ main differentiator is the way User-Centered Design Specialists (UCDS) is involved in the project. The results are presented in the table below.

(30)

25

User-Centered Design and Agile Method Integration

Specialist approach Generalist approach Hybrid approach  Iterative process

 Three groups: customers User-Centered Design Specialist (UCDS), development team  Initial Stage: contextual

inquiry and low fidelity prototyping with the UCDS and the customer (no developer involved),  Only one UCDS per project  UCDS bridges the role

between developers and users,

 UCDS separated from development team

 Iterative process  Two groups: users and

developers  No formal UCDS

 Developers act as UCDS’  Developers do not have

formal UCD training  Shorter initial stage  Less formal working

environment

 Iterative process  Three groups: UCDS,

development team, team member with formal UCD and development training (Hybrid member)

 The Hybrid member’s main task is to communicate between the two other groups

Table 11 - User-Centered Design and Agile Method Integration (Fox et al, 2008)

Patton (2008) created a list of best practices for implementing User Experience practices into an agile development process. Patton states, that agile development in itself is not going to improve the usability of the product. Additional measures are needed.

Twelve emerging best practices for adding UX work to Agile development

“Drive: UX practitioners are part of the customer or product owner team”

“Research, model, and design up front - but only just enough” “Chunk your design work”

“Use parallel track development to work ahead, and follow behind” “Buy design time with complex engineering stories

“Cultivate a user validation group for use for continuous user validation”

“Schedule continuous user research in a separate track from development” “Leverage user time for multiple activities”

“Use RITE to iterate UI before development” “Prototype in low fidelity”

“Treat prototype as specification” “Become a design facilitator”

Table 12 - Twelve emerging best practices for adding UX work to Agile development (Patton, 2008) In the form of a workshop, Sy and Miller (2008) asked senior UX professionals to collaborate and share their experiences and knowledge in order to improve agile User-Centered Design. During the workshop, the participants identified a list of main problems with their symptoms and recommended solutions. The findings are presented in the table below:

(31)

26

Problem

Symptoms

Possible Solutions

“Not enough design time.” “Developers waiting on designs”

“Design quality drop”

“Designs not verified with customers”

“Separate and parallel UX Design/Developer tracks”

“Scope UX activities to be small, incremental”

“RITE usability testing”

“Rapid contextual design”

“Design chunking” “Combine different UX

activities into one session”

“Bring user to you” “Sprints are too short” “Designs can’t be finished in

time”

“No time for usability testing” “No time to set up customer

contact”

“Not enough user feedback” “Feedback not early enough”

“No data to act on – opinions rule”

“Product isn’t validated”

“Weak Agile ‘customer’ ” “End-users and clients won’t

participate”

“Can't get buy-in from rest of

team”

“Non-informed decisions are made”

“UX person can act as Agile

customer”

“Each UX person works on

one scrum team”

“Choose the scrum teams wisely”

“Validated designs are passed to developers to implement”

“UX participates in cycle planning, bringing

appropriate user feedback"

No features go in unless something comes out “UX is not full-time on one

Agile team”

“UX time spent in many

meetings instead of on designs and iterations”

“Demoralized by UX quality drop”

“No sprint/cycle planning” “Large backlog of features/bugs”

“Prioritization feedback ignored”

“No control over timing of designs”

“User feedback is ignored” “Feature set is cast in stone”

“No time to incorporate changes”

“No re-ordering of features is allowed”

“Missing the ‘big picture’ “ “No shared vision or end goal”

“Too much focus on details”

“Hard to prioritize/make design decisions”

“Persuade Agile team to adopt Cycle Zero”

“Lighten requirements gathering process”

“Shorten time to 1 or 2 sprint lengths.”

“Poor communication.” “Misunderstood designs”

“Agile team doesn't buy-into

designs”

“Important information is lost”

“Include developers in design process”

“Usability included in acceptance criteria”

Referenties

GERELATEERDE DOCUMENTEN

While lots of products are designed with limited groups of users in mind (as a result of market segmentation; Tidd & Bessant, 2009, p409-415), the purpose of an IS is

By means of the user tests insight is provided into the kind of problems users of similar websites encountered while looking for volunteer opportunities.. Other volunteer centers

In addition, as can be seen from the research objective as formulated in the previous paragraph, the intended result is to provide a method with which Philips Applied Technologies

Enkel de proefsleuven in het noorden van het terrein, WP 5, WP 6, WP 7 en het noorden van WP 10, hadden een relatief onverstoord uitzicht, maar ook hier werden geen

Next, in Figure 6, Figure 7, Figure 8 and Figure 9, we list samples of generated images for the models trained with a DCGAN architecture for Stacked MNIST, CIFAR-10, CIFAR-100

The purpose of this thesis is to design a tool that helps a team manager to       create a positive work environment and helps employees share their emotions.. As evidence of

The last suggestion for future research concerns the adoption of the UPFS prediction model for the improvement of the quality of the feedback information in the service process. In

Critical Creative thinking Flexibility Initiative Productivity Problem solving Imagination Adaptability Decision making Analysis Evaluation Creating Independence