You are on page 1of 5

HCI Practices in Agile

Abstract
Developing rapid and user centered design is one of the main challenges of software development field
that is becoming more productive with time. A noted model name in the field is Agile. Agile is an active
topic of research in the software development filed. It is an iterative approach with an efficient ability to
handle changes and deliver required software product in short time. This noted methodology with
capabilities needed for todays software development still has some issues, the most important is lack of
usability engineering throughout its phases of development. Usability is aspect of HCI for achieving
elegance and efficiency in user interfaces. It is important for determining software quality. For the
development of usable and interactive systems there is need to integrate HCI with Agile approach. A
proposed model is discussed to solve the issue that work with practices from both HCI and agile
approaches which will results in efficient software production. It will result in enhancement of software
life cycle by getting long lasting acceptance and satisfaction from users.

Introduction
The growing need of software in daily lives has increased the demand to deliver a software product in
short time with flexibility to handle changes [1] [11]. This flexibility in software products require an
iterative approach in which can evolve or accommodate changes with time [9]. The standard software
development approaches like Software Development Life Cycle (SDLC) has linear approach with many
advantages but it is not suitable for flexibility demand, the most used iterative approach to handle changes
with time is Agile methodology that has the most important factor we need today in software production
is ability to handle changes and delivering software in short time [2]. As Agile has these advantages but
there is one main flaw that it focusses on main functionalities of system to deliver it in short time but in
this it ignores the important HCI techniques which is focus of this project [2][4][7][8]. Different systems
have different functionalities, developers focus is to build systems having accurate functionalities [12]. In
different systems the core functionality of system is accurate, but the system is not easily understandable
for novice users, thus leading to failure. To achieve user goal of usability, there is need to integrate the
HCI techniques in Agile because Agile guarantees to meet the demand of product short time delivery but
not the usability because the user centered design is given not much priority in it [8]. Usability
engineering ensure the usability of product. Hence integration of these two approaches will produce a
flexible and useable product [1]. But the question is how to integrate these two fields together, many
research works has been done on it to resolve this issue [1]. A proposed model for agile and usability
engineering named User Centered Agile Model (UCAM) is discussed in this paper that ensures to merge
these two effectively [1]. The methods used in the proposed model has been discussed that resolve
problem of usability in Agile. Then model is validated, and effective results are produced discussed at the
end [1] [2][7].

Problem Statement
There are many different approaches for production of software but mostly has one common flaw the
failure to produce a user centered design [10] [11]. Agile has great importance in software development
for delivering a flexible product in quick time but it also lacks the ability to produce effective user
centered interfaces [3][4][5]. This creates a problem for non-technical users to use such a software system
that is not understandable for them thus decreasing software productivity [5]. The software development
organizations just focus on the main functionalities at the beginning and have a usability analysis at the
end that is not effective as much as followed from beginning because interfaces become too complex with
time to handle some changes [15]. The lack of usability or not focusing on usability from beginning lead
or complex interfaces are the reasons for not achieving usability in systems [12]. To resolve this problem
the proposed model integrated the agile and usability to increase effective, interactive and useable
software production [1].

Background
Agile Methodology
Agile is an iterative approach towards the software production. The main factor of agile is to deliver a
product in short time with required functionality [15]. The involvement of user in agile is very important
to accommodate or handle changes with time [1]. Agile approach handles the production in an
impressive way that’s why it is an active topic of today’s world for software production [1]. The main
agile activities are shown in the following diagram[15].

Build
-XP
-Refactoring
Test
-ATOD
Design -Pragmatic
-TDD
-UX -Programming
-FIT
-UML -Software
-Automated
-Design -Patterns Craftsmanship
Testing
-Reusability

Deploy
-Continuous
Analysis
Integration
-BPM
-Continuous
-BPR
Deployment
-Use Cases
-User Stories Agile
Review
Planning -Retrospectives
-Scrum -Velocity
-Kanban -Control Charts
-Agile PM -Cycle Time
-RUP -Waste
-DSDM
-RAD
-Crystal
-FDD

Agile focuses on team coordination and communication [1]. The agile has many advantages but still there
is a need to integrate the HCI techniques in Agile for useable software systems [13].
Usability Engineering
Usability can be defined as developing a simple, user understandable and effective interface design. The
ISO 924 1- 1 1 defines 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” [17].
Usability Engineering provide methods for exact usability criteria for judgment of a product [20]. The
product usability test is basically analysis of user experience with product. It is an iterative approach that
helps users to provide feedback over usefulness of design during software lifecycle development [20].
Usability helps to provide user experience when a user interacts with a system [20]. Usability and Agile
has some commonalities like they both are iterative styles and human centered as they both focus on user
preferences [2].

Literature Review
An authentic standard ISO 9241-210 is used for different HCI process like a process name Human
Centered Process that includes different phases like Planning, Evaluating Design and Understand and
specify context of use but all these activities does not provide a comprehensive understanding towards the
integration of Agile and Human Centered Process [2]. An integration of these is proposed by Paelke et al
named it as Agile User Centered Design but unfortunately it does not provide a complete knowledge
about the developing phase and some HCI activities [28]. Another proposed model is Scenario based
design that is an iterative evolutionary cycle that gives complete knowledge about requirement analysis
[14]. It focuses more on requirement phase and less on development phase [14]. Although it provides a
detailed explanation of having usability by focusing on requirement phase but as it is long process with
many iterations and agile focus on fast delivery of product [14]. Agile do not focus much on front up
design but for a useable interface an overview about the interface architecture is required so it need a way
to integrate usability that supports its approach [1]. It is stated that agile is a good methodology delivering
a working piece of software quickly after each iteration but do not guarantee a useable interface [16]. The
important reason behind the integration of usability for agile is to reduce training cost and gain a user
acceptance and satisfaction for software product [17]. The more understandable is the software the less
will be product cost and an effective way for software production, it removes the barriers in the way of
success for software development [17]. Another issue is identification of real users that will be using the
software systems not the other stakeholders who are just representing the software or involved in it
indirectly [18]. The end user identification is important because it will be helpful for designing a useable
software system [18]. Another model is proposed named as Extreme Scenario based Design whose focus
is to involve the agile developers, experts, users and usability testers throughout the software production
[19]. It focuses on integrating the user centered design into the agile extreme programming approach [19].
But code is less focused than the design [19]. Although usability and agile has some common things but
there are still some issues in merging them. In Extreme Programming (XP) input is taken from the
customer but they focus on functionalities rather than user centered design [20]. It is suggested that the
Agile methodology can be improve by involving user experience practices in it [22][23]25][27]. In this a
product will be more effective when there is a user experience team through which user feedback and
testing can be used in order to build the design according to user [27]. [28] address that user experience
practices should incorporate in agile for improving user systems.

Methodology
In methodology two proposed research question are evaluated by a case study [1] [2]. The research
questions are as follows [1]:
RQ1: How usability can be integrated into agile methodology?
RQ2: Will proposed model solve the problem of usability in Agile?
The flow of the methodology framework is as followed [1]:

After deployment user feedback is recorded.

Deployment
After the activities described in framework followed, the software will be deployed for user feedback. If
user proposed any changed it will be accommodating by the proposed model leading less chances to
failure of software [1].

Integration
Proposed model can be integrated with agile user interface design it will enhance the usability of the
software and reduce the cost because of less changes to the software. It will enhance the productivity of
the system as it will be more understandable for the user. The integration of both can be is shown in Table
named as Integrated Proposed solution with Agile [1].

Case Study
The proposed model is validated step by step in an organization [1]. The organization is working on
projects using Agile approach, but their focus is not towards the usability at all. This study checks
whether proposed model is suitable for agile approaches1] [2]. It will validate whether it will have a
usability features after following this model. The organization project is to create websites for online
shopping for women, the project main aim is to create interactive interface design that are useable as
some women still face difficulty in ordering through these websites due to complex interfaces [1] [2]. The
proposed model followed in it produce positive and effective result in contrast to project following
conventional agile approach [1] [2]. This is due to user involvement throughout the development with
User Interface design and usability tester [1] [2]. The project followed the three iterations and team of
five [1].

Proposed Model Working


The model starts with gathering requirements from the clients with domain expert [1]. All these
requirements are included in list and get prioritized according to priority of stakeholders. This list is
called a wish list [1]. The mockup designed by User Interface designer according to project context and
user requirement, the design interface focused to have more usability and a simple interactive interface
with important features [1]. This design validated by user and if there is any error it will be reported back
[1]. The error includes the user difficulty in understanding the interfaces. The testers and usability experts
done the evaluation part [1]. This basically is an ensured towards the more useable interface. The
accepted interfaces or mockups are coded and implemented [1]. The rejected reported back to the user
interface designer [1]. Then the product is deployed, and user feedback is recorded for any changes in the
next iterations [1].

Result
When the organization project is done with integrating HCI practices into Agile a clear difference is
shown [1]. The project with proposed model achieved the usability features better than the one without it.
The proposed model made the product more useful. The increasing rate of usability success in using the
website can be seen in the graph [1].
Conclusion
Agile approach cannot deliver a usable software alone without merging usability engineering [22]. To
enhance usability and a software production HCI practices should be incorporate in agile [2]. Agile
approach needs to work with usability aspects like development of mockups and work with a usability
tester in team [1][2]. A proposed model is discussed in detail named as User Centered Agile Methodology
that helps in enhancement of usable software production [1]. The proposed questions answered with a
case study evaluation that results in maximum usability through this model [1]. There is still some future
work needed in order to fill gap between these two approaches for the better software production that will
fulfill demand of quick software delivery focusing on user experience design.

You might also like