Usability/user interface design in agile processes

Similar documents
Extreme Programming (XP)

Agile Projects 7. Agile Project Management 21

User-centered System Design. Agile

The Systems Development Lifecycle

Success of Agile Environment in Complex Projects

Assistant Professor, Integral University, Lucknow, India. Quality Parameters. Correctness. Efficiency. Portability. Usability.

Introduction to Agile/Extreme Programming

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Suitability of Extreme Programming and RUP Software Development Methodologies for SOA Applications

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Agile Methods. Background

The Impact of Agile Methods on Software Project Management

04. Agile Development

Preparation Guide. EXIN Agile Scrum Foundation

Chapter 1 Systems Development in an Organization Context

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

AGILE CASE STUDY EVALUATION IN MIDDLE SIZE PROJECT. Penko Ivanov, Sylvia Ilieva

An Overview of Software Process

Generalizing Agile Software Development Life Cycle

COSC 735: Software Engineering Test 1 Sample Solution

EVERYTHING YOU VE HEARD ABOUT AGILE DEVELOPMENT IS WRONG

Software Methodologies

Agile Software Development

Project Management in Practice Agile Agile 101 Introduction to Agile

Architecture Practice: a fundamental discipline for information systems

Extreme Programming, an agile software development process

Agile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

Agile Essentials Track: Business Services

Questioning Extreme Programming

Introduction to Extreme Programming

Agile Methodology. Tech Focus. Agile Methodology: Characteristics. Techspace Home Tech Focus Case Study Trend Watch Thought Post

Software Engineering Part 2

Software Development Methodologies

Agile Software Construction. This Course. Course information. Course Contents. Daisy: Software Engineering Agile Methods

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Agile Software Construction

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Agile & Innovation State of Research

Department of Software Engineering, Al Neelain University, Khartoum, Sudan 2

Lecture 29: Agile Design and Extreme Programming

COMPARATIVE EVALUATION OF XP AND SCRUM USING THE 4D ANALYTICAL TOOL (4-DAT)

Requirements Engineering and Agile Methodology

Dr J Paul Gibson, Dept. INF, TSP, Evry, France

Build your Project using Agile Methodology #1 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

Software Engineering. M Umair.

Chapter 3 Software Process Model

Quality assurance within the agile system development life-cycle

! How work in building software is done: ! e.g., waterfall process. ! e.g., object-oriented development. ! e.g., requirements inspection process

Software Engineering Lecture 5 Agile Software Development

Software Process. Overview

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Modern Systems Analysis and Design Seventh Edition

Chapter 4 Document Driven Approach for Agile Methodology

2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

INDEX. Numerics 1970s - iterative practice s - iterative practice 85

Lecture 8 Agile Software Development

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Processes. Object Orientated Analysis and Design. Benjamin Kenwright

CS 5704: Software Engineering

Chapter 3 Agile Software Development

Agile Plus Comprehensive model for Software Development

INTRODUCTION. Objectives. Unit 1: Introduction to Systems Analysis and Design. Key Ideas

Software Development Under Stringent Hardware Constraints: Do Agile Methods Have a Chance?

Process. CMPUT 401 Module 04. Department of Computing Science University of Alberta Ken Wong, 2008

Agile Methodologies. Introduction ISSSR 2013/2014

Gap Analysis between State of Practice & State of Art Practices in Agile Software Development

Certified Scrum Master

The Integrated Model Using Agile Practices to CBR

Aligning Architecture work with Agile Teams

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Agile Development Method for Mobile applications: A Study

Managing IS Development Projects Using a Generalised Set of Scorecard Perspectives

Software Engineering Chap.3 - Agile Software Development

The Role of Scrum Methodologies in the Design and Production Software

RUP and XP Part II: Valuing Differences

Other Agile Approaches & Methodologies

Processes and Life- Cycles. Kristian Sandahl

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

The ABC of Agile Business Change. James Yoxall BCS 17 September, 2013

Agile Development Processes. CSCE Lecture 3-08/31/2017

IJMIE Volume 4, Issue 10 ISSN:

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Agile Quality Management

Watson Internet of Things. Agile Development Why requirements matter

Thriving in an Agile Environment. Kathryn Poe Rocky Mountain Chapter Feb 16, 2012

Our Software Delivery Methodology What to Expect in the Development Process

Is Agile Project Management fit for small tech start-ups?

Using a Validation Model to Measure the Agility of Software Development in a Large Software Development Organization

FIT2101 Software Engineering Process and Management

Processes and Life- Cycles. Kristian Sandahl

Architectural Practices and Challenges in Using Agile Software Development Approaches

Reducing Business Risk

Software Processes in an Agile World

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.

Agile Business Analysis - Resurgence. Dorothy Tudor - TCC

UNIT I Programming Language Syntax and semantics. Kainjan Sanghavi

Transcription:

University of Wollongong Research Online Faculty of Informatics - Papers (Archive) Faculty of Engineering and Information Sciences 2004 Usability/user interface design in agile processes A. Fuller Faculty of Informatics, University of Wollongong, annef@uow.edu.au Publication Details Fuller, A. (2004). Usability/user interface design in agile processes. Australian Computer Human Interaction Conference. Wollongong: OZCHI. Research Online is the open access institutional repository for the University of Wollongong. For further information contact the UOW Library: research-pubs@uow.edu.au

Usability/user interface design in agile processes Abstract The increasing popularity of the agile software development methods has prompted claims that such methods compromise the usability of the delivered product. However, this need not be the case. While some authors have suggested remedial extensions or additions that run in parallel with the chosen method, we believe that any agile method, properly applied, will produce software equally as useable as that produced by any other method. The aim of this paper is twofold. Firstly we present a survey of many of the arguments made in the literature, thus bringing together a number of differing concerns. Then we set out to present our arguments debunking these claims. Disciplines Physical Sciences and Mathematics Publication Details Fuller, A. (2004). Usability/user interface design in agile processes. Australian Computer Human Interaction Conference. Wollongong: OZCHI. This conference paper is available at Research Online: http://ro.uow.edu.au/infopapers/3960

Abstract Usability/User interface Design in Agile Processes Anne Fuller University of Wollongong School of Information Technology and Computer Science University of Wollongong Wollongong, New South Wales Email: annef@uow.edu.au The increasing popularity of the agile software development methods has prompted claims that such methods compromise the usability of the delivered product. However, this need not be the case. While some authors have suggested remedial extensions or additions that run in parallel with the chosen method, we believe that any agile method, properly applied, will produce software equally as useable as that produced by any other method. The aim of this paper is twofold. Firstly we present a survey of many of the arguments made in the literature, thus bringing together a number of differing concerns. Then we set out to present our arguments debunking these claims. Keywords: Usability design, user interface design, agile development INTRODUCTION The previous decade or so has seen the emergence of many development methods aimed at streamlining the development process. Although a number of so-called agile methods also surfaced in this period, the term was not in general use prior to the publication of the Agile Manifesto in 2001 (Highsmith, 2001). These leaner methods have either abandoned or reduced the importance of many aspects of more traditional development methods. In particular big upfront design, where the entire interface for the finished product is traditionally designed prior to implementing any functionality is no longer the favoured approach. This has led to some authors questioning the ability of agile processes to adequately deal with issues such as usability. The next section provides a brief overview of agile development. This is followed by a summary of the concerns raised in the literature regarding the lack of interface design in agile methods. The subsequent discussion presents arguments aimed at dispelling those concerns. AGILE DEVELOPMENT The Manifesto for Agile Software Development introduces the four values. The practising software professionals who have signed the manifesto value certain elements of development more highly than others. These are, individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation and responding to change over following a plan. This is not meant to imply the items on the right are unimportant, rather it reflects that, when forced to make a choice between each pair of items, the item on the left will be preferred (Fowler and Highsmith, 2001). The first value, emphasizes that, although tools and processes are important, it is the individuals making up the development team and their relationships have a greater impact (Fowler & Highsmith, 2001, Abramsson et al, 2002, Cockburn, 2002). Thus an undocumented process with good interactions is preferable to a documented process with hostile interactions (Cockburn, 2002). The second value reflects the belief that no amount of documentation can be aggregated into a product. Documenting the results of analysis, design etc. may serve as an indication of what might be built, thus may have some value for the development team, but running software is the only deliverable of value to the customer and the only true measure of what has been built (Cockburn, 2002). Therefore each team needs to determine for itself what documentation is absolutely essential (Fowler & Highsmith, 2001).

The third value does not advocate the abandonment of contracts. Rather it suggests that contracts alone are insufficient (Fowler and Highsmith, 2001). Continuous collaboration is the only way the team can fully understand their customer s needs (Fowler and Highsmith, 2001) while fostering a good relationship with the customer may save difficult contract situations (Cockburn, 2002). This final value recognises the volatile nature of today s business environment and that during a project s lifetime the customer s needs are likely to change as a consequence of many external factors. Planning is constructive and provides an overall direction for a project, however the team that cannot, or will not, respond to the customer s changing requirements risks delivering a product of limited value (Fowler & Highsmith, 2001). Thus, while all Agile methods include planning elements, they also recognise it is equally important to be able to adjust those plans as necessary (Abramsson, 2002, Cockburn, 2001). An agile project starts by building something simple that works. Additional functionality is added in successive iterations, always at the behest of the client, in collaboration with the agile team. Every component is thoroughly tested, and the system is regression tested continuously. Increasingly elaborate versions of the product are released as the project proceeds. Agile methods include extreme Programming (XP), Scrum, Dynamic Systems Development Method (DSDM), the Crystal family of methodologies, Pragmatic Programming and Feature Driven Development. A representative of each of these methods is a signatory to the Agile Manifesto and among the founding members of the Agile Alliance (Cockburn, 2002). Other methods such as the Rational Unified Process and Open Source Development are also sometimes classified as Agile (Abrahamsson et al, 2002). INTERFACE AND/OR USABILITY DESIGN IN AGILE METHODS Hudson (2003) argues that the XP philosophy of producing working code then refactoring to improve design is problematic. He claims there is a lack of general understanding that the interface has a major impact on system architecture. The structure of the user interface must be done before the system architecture is decided. While acknowledging that interfaces can be refactored, Hudson cautions that users need consistency, and major changes to the interface can result in a number of expensive side effects. He further claims the so-called user representative on an XP team is rarely a typical user, instead lists a variety of motivations for choosing a representative, most of which have little to do with his/her familiarity with the needs of the average user. Similarly, Constantine (2002, is concerned that refactoring or later refinement of system architecture necessitates changing the interface that users previously learned. Refactoring that affects the user interface as well as the internal structure of a system imposes a huge burden on users. Constantine goes on to describe what he terms an agile incarnation of usage centered design. However the process described, as he himself subsequently admits, does not include any systematic consideration of interface architecture either. In fact Constantine s Agile Usage Centred Design sounds remarkably like XP! Users, designers and developers collaborate to produce a set of index cards that inventories roles that users can adopt in the planned system. These role cards are prioritised, and an inventory of tasks to support the roles is created, again using index cards. The task cards are prioritised and organised into co-operating groups. A paper prototype is produces and revised and refined. Finally the interface itself is constructed. Constantine states the assumption here is that development proceeds through successive release cycles. Fair enough. Then he continues successive iterations will pick up additional roles and task cases to guide refinement and expansion of the user interface and on each successive iteration roles, tasks and co-operating clusters are reviewed and refined as needed before the next set of paper prototypes is produced. This is just like XP, only applied to designing the user interface. If, for any particular project, the interface is considered a critical indicator of project success, then we would expect that this would have been identified early on, and the interface would have been given the appropriate priority, and its design approached in a very similar manner to that described by Constantine. In addition, recall Fowler and Highsmith s comment regarding the second value of the Agile Manifesto. Each team needs to determine for itself what documentation is absolutely essential (Fowler & Highsmith, 2001). Constantine s Agile Usage Centred Design is documentation as the interface is not actually implemented. Clearly the agile team should decide how much or how little is required for a given project. Kane (2003) recommends adding an approach called Discount Usability Engineering to agile methods. Kane also recognises the similarity between DUE and agile development both in spirit and tools. His

main argument supporting his call for inclusion of DUE appears to be simply that usability is rarely mentioned explicitly. In fact a number agile methods do specifically address design of the user interface. DSDM, for example, includes usability prototypes for exploring the user interface (Stapelton, 2003), while Crystal specifically lists UI designer and usage expert as roles in a development team the user interface design as a work product (http://alistair.cockburn.us/crystal/individuals.html). When discussing results of several XP-style projects, Jeff Patton (2002) suggests that, despite producing consistent, easy to understand interfaces, users found actual business processes hard to accomplish and some business processes left out completely. The issue of missing business processes is separate. In XP the customer makes the decisions regarding the functionality to be included, albeit in consultation with the XP team. If essential functionality is missing this suggests either an inappropriate client representation on the XP team or a failure to communicate effectively on the part of the XP team itself. The inappropriateness of XP for projects that are not fully supported by management has ever been advertised. DISCUSSION Most of the concerns regarding the usability of software produced using agile methods have been raised by proponents of user centred or usage centered design. The main focus of their wrath has been XP, rather than the other Agile methods, and we have previously described examples of agile methods that do consider usability or interface design. While it may be true that XP does not include any specific mention of usability or user interface design, this does not mean that these issues are ignored. Instead attention to UI design is implicit in all of XP s practices. A number of XP project experience reports examine their approach to usability and/or GUI design. For example, Koenig and Cunningham (2003) discuss using XP to develop their XpPlanit tool. The work was split into two parts, the backend processing and the front-end graphical user interface (GUI). Their article discusses some issues writing automated tests for the GUI, however they conclude that they were successful. Similarly Mitchell et al (2001) describe the development of the Reactor5 Server, a tool for business process automation. They show that various XP practices correspond to scenario based design of the human computer interface as described by Carroll (1999). Carroll is cited as stating that scenarios are stories and, of course, user stories form the basis of customer requirements in XP. It must also be remembered that the various books published in the XP series are guidelines to help experienced practitioners adopt XP. None actually describe the XP process. As with any methodology, exactly how XP is implemented in the software development process will depend on the project, the client and the development team. Advice is given as to when XP should not be considered: an inexperienced team is one deterrent. An experienced project manager and experienced team members will recognise the importance of interface design. Thus UI will be allowed for in the development process, albeit in a manner that complies with agile and XP principles. If an XP project, or indeed any other software project, fails to deliver a quality user interface, then the failure is not necessarily with the process. Instead it is in the way the process was implemented. The manager of an XP project may choose to ignore attention to user interface design in just the same way that the manager of a heavyweight process may choose to reduce coding or testing or any other task in an effort to meet a deadline. In both cases problems may result form the management decision. The process should not be blamed for management failure. CONCLUSION The rise of in popularity of the agile methods, and their lightweight approach to software development, has prompted some criticism of their ability to deliver usable software. This criticism is for the most part unfounded. Many agile methods specifically consider user interface design as part of the process. Although none of XP s practices specifically address the UI, its entire approach, user stories, user collaboration, test first strategy, can all be applied to interface and usability design. There is no need to add HCI/Usability extensions to XP, or any other agile method. We should simply trust the team and the team s management to take the appropriate action when required. Adding weight to a methodology is not likely to improve the team s chances of delivering. REFERENCES Highsmith Jim (2001) History: The Agile Manifesto, http://agilemanifesto.org/history.html Abramsson P, Salo O, Ronkainen J & Warsta J (2002) Agile Software Development Methods: Review and Analysis Espoo 2002, VTT Publications 478.

Cockburn, Alistair (2002) Agile Software Development. Addison Wesley Hudson, William (2003) Adopting User-centred design in an Agile Process: A Conversation, www.syntagm.co.uk/design/articles/ucd-xp03.pdf Constantine, Larry (2002) Process Agility and Software Usability: Toward Lighweight Usage-Centered Design. Information Age, Aug/Sep, 2002 Kane, David (2003) Finding a Place for Discount Usability Engineering in Agile Development: Throwing Down the Gauntlet, Proceedings of the Agile Development Conference, 2003, pp 40 46 Stapelton, Jennifer (2003) DSDM: Business Focused Development, Addison Wesley. Koenig, Dierk & Cunningham, Graham (2003) Extreme programming(xp) What is it? www.xpplanit.com/article.pdf Mitchell S, Auernheimer, B & Noble D (2001) Scenarios, Tall Tales, and Stories: Extreme Programming the Oak Grove Way. Presented at XP Universe conference, 2001. www.xpuniverse.com/2001/pdfs/xpu04.pdf Carroll J. M. (1999) Five reasons for scenario based design. Proceedings of the 32 nd Hawaii International Conference on Systems Science, IEEE Computer Society Press COPYRIGHT Anne Fuller 2004. The author assigns to OZCHI and educational and non-profit institutions a nonexclusive licence to use this document for personal use and in courses of instruction provided that the article is used in full and this copyright statement is reproduced. The author also grants a non-exclusive licence to OZCHI to publish this document in full in the Conference Papers and Proceedings. Those documents may be published on the World Wide Web, CD-ROM, in printed form, and on mirror sites on the World Wide Web. Any other usage is prohibited without the express permission of the author.