Assimilation of Usability Engineering and User-Centered Design using Agile Software Development Approach

Автор: Hina Iqbal, Muhammad Fahad Khan

Журнал: International Journal of Modern Education and Computer Science (IJMECS) @ijmecs

Статья в выпуске: 10 vol.6, 2014 года.

Бесплатный доступ

Various agile software development methodologies, since their commencement, encouraged the development of high quality software product. Quality of a product is the compelling trait that plays a vital role in any product's success. Usability engineering and User centered design are user-centered approaches, covering the customer's concerns. The way these approaches are understood and carried out with agile practices is not properly understood and adopted till now. For software applications to be usable and valuable it is necessary to understand the correct user requirements in order to develop the interface that is usable and valuable to the customer. In this research work, we are discussing the scrum approach of agile development and integrate this with the usability engineering and user centered design approaches which helps the agile development team to understand usability demand of users and develop a product according to their expectations.

Еще

Agile software development, UCD (User-Centered Design), UE (Usability Engineering)

Короткий адрес: https://sciup.org/15014694

IDR: 15014694

Текст научной статьи Assimilation of Usability Engineering and User-Centered Design using Agile Software Development Approach

Published Online October 2014 in MECS DOI: 10.5815/ijmecs.2014.10.04

Software plays substantial role in every sphere of life. In Software engineering many new methodologies are injected and many steps are taken for the improvement of the strategies every day. Agile techniques embed rapid application development strategy. Such rigorous development often compromises quality factor because of less user involvement. “Usability engineering” [1] is a discipline that illustrates how to embed user’s concerns in system foundation, systematically addressing the usability demand of a customer. The definition of UE ties a system’s usability to specific conditions, needs and users. Usability Engineering brings into consideration the working of end user with the developed product and agile development methodology emphasis on the approach of how the software should be developed.

User-centered design [2] was introduced into software development process, to measure and enhance positive user experience. The ultimate objective of successful software product development is to produce and deliver application which fulfils user needs and demands. In User centered design, specialists follow diverse set of strategies, for understanding users, scenarios, environment where they have to deploy the application [3]. In UCD, the team prefers customer’s communication using graphic representation concept rather than literally description over lengthy documentation.

The manner in which these three methodologies are assumed and carried out with agile practices is not properly adopted till now. Prior studies have depicted that the integration of two approaches is possible [4]. Agile approach [5] argued about swift development of source code for the increment of module and the application’s module while usability engineering recommended implementation activities until design of the software depicts noticeably the user’s perspective. Usability experts and software engineers may belong to different domains. These two teams imply different strategies for software production. Agile software development mostly focuses on speedy delivery of intended functionality, often resulting less user involvement thus, ignoring usability issues. User interface design is crucial component of overall application design practice Designing interfaces are much more imperative part now-a-days than they use to be. All development progress has made with the user being the center of focus. Software system has attained its productive outcome and target customer’s satisfaction. It is obligatory that the user interface design should conform to the skills, experience and expectations of its anticipated users [5]. In software development, designers have simply espoused usercentered perspective in application interface design. They determined design questions for human computer interface by using pensive criteria such as personal preference or conceptual demand. Features of the application are gathered using requirements gathering technique, which are more effective if collected in terms of user’s wants and needs, from the customers.

Our proposed work, combined with preceding research will illustrate that the existing methodologies used for agile development can be used a way more advantageous. User-centered design and usability engineering approaches embedded with scrum approach of agile software development can be broadened to a model that is hybrid approach for covering key agile manifesto of “customer satisfaction”. Observance of Usability engineering working patterns, UCD beneficial behavior with specific agile practices can be used to overcome the gap between the usability, developer and end user. The work is organized as pursued, section below gives an overview of work done in agile software development, user-centered design approach and usability engineering. Section III depicts our proposed methodology and section IV illustrates conclusion and future work.

  • II.    Background

    Agile is a lightweight, easy to use and a quick development process for developing the software applications that allows the agile team to work as a team in which each team member is self-organizing and cross functional. Agile methodology gain attention of users in late 1990’s. One of the reasons for project failure [8] is extended time period to deliver working software which is resolved using agile methodology that is iterative in nature and focus on cooperation between users and the development team, getting user feedback after each iteration and ensures early product delivery. Agile methodology responds quickly to the business changes and thus is favourable in the current business environment that is continuously changing.

In agile methodology [10] highest priority products for the satisfaction of the customer needs are developed first. Agile supports customer changes and delivers the product in increments according to the priority specified by the customer. In agile methodology user feedback is most important to develop the higher quality product. During the agile development process [10] for developing software products regular face to face meetings are conducted between the agile team and the customers for their feedback and progress of the work completed.

In agile development [5] continuous integration and testing of the developed product is done several times a day before deploying this to the customer. Acceptance test also performed earlier in agile development due to the regular customer feedback. Usability engineering [5] focuses on how much the product is useable to the customers. In agile development as regular feedback of the customer is necessary therefore acceptance testing is performed at the very early stages of development.

User-centered design [9] is the key methodology for measuring the usability of a product. User-centered design is an efficient model driven process for building interactive designs for users to interact with the application through interfaces. User-centered design is built by keeping in mind the user’s point of view, feedback and at the end user approval is needed for the design. User-centered design [7] is designed through the repeated exposure to the prototypes, user feedbacks, usability testing and build a model that is according to user needs. The main focus of user-centered design [12] is that the user should accept the interface that is developed keeping in mind user needs and expectations. Some recent researches examines agile methodology and usability engineering for measuring how much usable is the software product in the user environment.

  • A.    Agile and Usability Engineering

Usability engineering focuses on how much the product is usable to the customers. Usability focuses on systems’ learn ability, maintainability, reusability and customer satisfaction. It is a methodology applied in software product development, whose main focus is on user data and regular customer feedback, this provides more reliable data then self-reporting approaches. UE involves introducing ease of use in the system and for achieving this cross-functional team and set of approaches required for acquiring the user inputs and converting it into the design of the system.

Shoaib et el; [5] in their research work explained that the agile methodology alone is not enough for developing the efficient product. For efficient, usable product development, the team must keep in mind the needs of apprentice as well as expert users of the system.

Some recent researches examine user-centered design and agile methods how the two approaches can be synchronized for the implementation of software development process.

  • B.    Agile and User Centered Design

In agile methodology, working software is delivered to the users in an iterative manner and for better feedback the design of the system must be good so that user own the product and are also happy with that. User-centered design is aimed at developing the software keeping users in mind. User centered design focuses on a custom software product design that the user wants. Agile methods involve feedback.

Fox et el; [3] Discussed and analyzed how the use of the user-centered design passes from one agile team to another and find the common methods that the agile team uses to integrate the agile methods with the user-centered design. They find the effects of developing user-centered design from the generalist, Specialist and Specialistgeneralist and concluded their effects on the agile process and user-centered design based on feedback from the customer. They also mentioned distinction among the agile methods and UCD depending upon resource allocation that who will design the system and who will develop, are clearly mentioned. In order to integrate agile method with user-centered design both have to compromise to their upfront resource allocation.

Xiong et el; [11] described in their research work how the agile development process and user centered design can be integrated and explains the working model for the implementation of the software product. They explained with the help of a case study that improves the performance of both the users and the developers.

Shoaib et el; [5] described in their work that agile methodology and usability alone could not achieve the required result of the usable product. Because, following the agile methodology and keeping in mind the needs of users, one is not sure that the product is usable or not. For this reason user-centered design has emerged and helped the agile team to develop the system that meets the user needs and expectations. User-centered design is the design of the system that is designed by getting the feedback from the user and keeping in mind the user’s needs and expectations.

  • III.    Proposed Framework

Agile software development is an approach to software application/product development in which the user requirements/needs are captured day by day and the product is developed in increments. Several increments may be delivered on the same day depending upon the requirements and the effort required. It is not necessary that the developed product is as usable as one thought.

Scrum technique is an incremental and iterative agile software development framework for management of project, product or application development. Development team works as a unit to reach the goal as opposed to traditional sequential approach. Scrum provides product with a beneficial opportunity of selfconceit, cross-functional teams by encouraging colocation and verbal communication of all team members and maintains discipline of the project.

Scrum’s main principle is its perception ability that as soon as the product increments start developing, the user/customer gets the better understanding of the system what they actually want/need (requirements churn). For unpredictable project/product development scrum is the best approach which is quite challenging while using the traditional predictive or planned approaches to development. Scrum focuses on delivering the products quickly by maximizing the teams’ ability keeping in mind that problems cannot be addressed/understand fully.

Usability engineering [5] is a discipline that systematically addresses the usability problems of the customers and provides a mechanism to understand the customer requirements. It provides customer feedback about the usability of delivered product’s functionality. As a consequence, the products that are developed to meet the customers' needs are deployed. UE measures the probability of application’s usefulness [6].

An essential approach [7] for accomplishing usability in design is called UCD (User Centered Design). It is a process in which wants, needs and limitation of end-user of a product is considered. UCD is a problem solving process that requires designer to anticipate how the users will use system and also validate these.

  •    Understand users

  • ■    Define interactions

  • ■    Design user interfaces

Fig. 1. User-Centered Design

The methodology we proposed embeds the beneficial features of UE and UCD and introduces them to scrum. Section below highlights the stepwise addition of each attribute in scrum development approach.

  • A.    Scum and Usability Engineering Approach

Usability engineering approach is applied at the very early phase of the scrum process. In usability engineering as the usability problems are discussed therefore it is important to apply the approach in order to find the usability problems at the very early stages so that developer understand those problems earlier and try to avoid them. For this purpose following tasks are performed in usability engineering approach.

  • ■    Environmental scanning and analysis

  • ■    User Analysis

  • ■    Determine the user tasks

  • ■    Define Usability Goals

  • ■    Competitive analysis

In Environmental scanning, overall scanning of the environment is conducted to determine what the actual need of the user is and who the potential users of the system are. This is basically the feasibility checking of the system that whether it is usable to develop the system or not. At the end analysis of the environment is done to determine the actual results obtained from the environmental scanning.

In User Analysis, the potential users of the system are defined. It also helps the scrum team to comprehend users of the system and develop product according to their mind what the customer/ user wants and is usable to them.

Determining the user tasks is one of the most important step in usability engineering which is useful in determining what are the user tasks actually. This process involves interviewing the user in order to determine their actual need and wants.

Usability Goals

Competitve Analysis

Input to opportunity backlog

From the product backlog a single functionality or task is selected and divide into small chunks known as sprints and place them in the sprint backlog. From the sprint backlog the sprint is selected and designing and implementation started.

  • B.    User-Centered Design and Scrum Approach

User centered design focuses on communication over documentation and chooses graphic representation of concept rather than literally description. In scrum development process, after the sprints of the system/ product are selected from the sprint backlog and are entered into the development cycle, before the development starts develop its design first. For the product design to be developed user-centered approach is followed. In order to apply the user-centered approach for the designing of the product, the following stages should be followed.

Fig. 2. UE Cycle Insertion

Determining the usability goals has its importance in usability engineering as it helps to determine the usability goals that is the goals that is defined by the user that the product should fulfill in order to be usable. In competitive analysis, overall market survey is carried out which analyses and determines the market demands, the strengths and weaknesses of the potential competitors and overall market condition for the product to be developed is judged.

When usability engineering approach steps completed the user tasks that are defined in UE approach are placed in the opportunity backlog of the scrum cycle. In opportunity backlog, the user tasks that are placed are then refined by following the three steps.

  • ■    Discovery

  • ■    Experiment

  • ■    Validation

In the discovery phase, the user tasks that are defined are discovered and in this from the raw user stories the actual tasks are discovered. In the experiment phase, experiments are performed on the tasks that are discovered from the user stories. In the Validation phase these tasks are validated. On the user stories or the rough sketch of the task experiments are conducted and results are validated to determine whether it is feasible to develop the tasks specified or not and whether the tasks are correct or not for the implementation.

After validating all the tasks from the opportunity backlog they are placed in the product backlog of the scrum cycle. In product backlog the tasks are structured and refined and explains the usability requirements of the user along with the actual task. In the basic scrum process the product backlog contains the user requirements that are not structured and refined while integrating the usability approach to the scrum process the product backlog now contains the refined structured user requirements.

  • ■    Specify context of use

  • ■    Specify requirements

  • ■    Produce Design solution

  • ■    Evaluate Design

At the first stage, context of the product is defined where the product is used. In this, background of the product is explained keeping in mind the context of where the product is going to be used.

Fig. 3. UCD Cycle Insertion Phase

At the next stage, the requirement for which the design is required is specified. Next is producing the design of the solution for which the product is required. The design is then evaluated by arranging the meeting of the user with the development team. User accepts or rejects the design. If user accepts the design then implementation started.

When the design of the sprint is finalized, the implementation phase of the scrum is started. The scrum cycle lasts for 1 to 4 weeks. At the end of the day, daily stand up meetings are held in which the team explains the goals they achieved today, their next day goal and the challenges they faced while fulfilling/ implementing those goals.

After the first sprint is developed, the demo is conducted which explains all the work that the team have done and explains how to use the system. In this teaching and learning of the user is done and if the user finalized the increment then the product is shipped to the customer and development on the next sprint start unless the entire sprint backlog is empty.

After shipping the product to the customer the sprint reviews are conducted in order to get the feedback of the shipped product from the customer side. The Product that is delivered to the customer is more valuable and usable as in this usability engineering and user-centered design approaches are applied keeping in mind the user of the system.

Fig. 4. Proposed Model

  • IV. Conclusions

Research work discusses the three main user-centered approaches. Embedding agile with usability engineering and user centered design might be a factor of enhancement in achieving a productive outcome, as it aims at the customer’s point of view and their needs. We aim for an acceptable concept for software engineering community by identifying a common advantageous ground. Future work contains the implication of model and captures the probability of successful outcome. Scrum approach can be a way more advantageous if the approaches are actually giving the main drive in the hands of user.

Acknowledgment

We wish to thank Mr. Muhammad Fahad Khan, Assistant Professor at Department of Software Engineering, University of Engineering and Technology, Taxila, Pakistan, for his support when we needed. Discussion with him is quite helpful in completing our work.

Список литературы Assimilation of Usability Engineering and User-Centered Design using Agile Software Development Approach

  • J.C Lee and D. S. McCrickard, "Towards extremely usable software: exploring tensions between usability and agile software development," Proc. AGILE 2007 conference, (Agile '07), IEEE Press, 2007, pp.59-71.
  • M. Haesen, J.D. Boeck, K. Coninx, C. Raymaekers, "An interactive coal mine museum visit: prototyping the user experience." In HSI, May 21-23, 2009.
  • D. Fox, J. Sillito, F. Maurer, "Agile Methods and User-Centered Design: How these two methodologies are being successfully integrated in industry." In Agile 2008 Conference, 2008.
  • P. McInerney and f. Maurer, "UCD in agile projects: dream team or odd couple?" interactions, vol. 12, issue 6, ACm Press, 2007, pp.19-23.
  • Osama Shoaib and Khalid Khan, "Integrating Usability Engineering and Agile Software Development: A Literature Review," in 2010 International Conference on Computer Design and Applications (ICCDA 2010), vol 2, No 34.
  • S. Lawton, Henry and Mary Martinson, Accessibility in User-Centered Design.
  • Larry L.Constantine, Lucy A.D. Lockwood, "Usage-Centered Software Engineering: An Agile Approach to Integrating Users, User Interfaces and Usability into Software Engineering Practice" in 2003 Proceedings of the 25th International Conference on Software Engineering (ICSE'03), IEEE Computer Society.
  • J. Koskela, "Software configuration management in agile methods," VTT publication 5 14, ESPOO, 2003, pp I-54.
  • "Usability basics," [Online] Available: http://usability.gov/basicsiindex.html.
  • "What is agile software development," May 14, 2006, [Online] Available: http://www.agilealliance.org/show/2 [Accessed: February 2010].
  • Y. Xiong, A. Wang, "A New Combined Method for UCD and Software Development and Case Study".
  • C. Wohlin, B. Regnell, A. Wesslén and H. Cosmo "User-Centred Software Engineering –A Comprehensive View of Software Development" in Proceedings of Nordic Seminar on Dependable Computing Systems, Lyngby, Denmark, August 1994.
Еще
Статья научная