Managing the Agile Process of Human-Centred Design and Software Development



Similar documents
Managing the Agile Process of Human-Centred Design and Software Development. Peter Forbrig & Michael Herczeg. Universität Rostock & Universität Lübeck

Continuous Requirements Engineering and Human- Centered Agile Software Development

Continuous Software Engineering with Special Emphasis on Continuous Business-Process Modeling and Human-Centered Design

Continuous User Experience Development

When User Experience Met Agile: A Case Study

The Usability Engineering Repository (UsER)

User and Client Satisfaction in Agile Development

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Software Engineering

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

USABILITY EVALUATION METHOD FOR AGILE SOFTWARE DEVELOPMENT. ABSTRACT

Standardized software development model for SME software houses in Pakistan

Quality Ensuring Development of Software Processes

On the Agile Development of Virtual Reality Systems

Chapter 3. Technology review Introduction

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

When is Agile the Best Project Management Method? Lana Tylka

Agile Software Development compliant to Safety Standards?

Umbrella: A New Component-Based Software Development Model

Agile Processes and Methodologies: A Conceptual Study

Introduction to Software Engineering: Project Management ( Highlights )

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Agile Development. Redefining Management in Project Management. Neil Stolovitsky

Agile Based Software Development Model : Benefits & Challenges

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

How To Model Software Development Life Cycle Models

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

RUP for Software Development Projects

I219 Software Design Methodology

"Bezpieczny Projekt"

Research Topics in Software Engineering

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Experiences with ALM tools in Software Engineering course

CSE 435 Software Engineering. Sept 16, 2015

SOA and BPO SOA orchestration with flow. Jason Huggins Subject Matter Expert - Uniface

Surveying and evaluating tools for managing processes for software intensive systems

Agile Project Management By Mark C. Layton

Software Life Cycles and Configuration Management

Traditional SDLC Vs Scrum Methodology A Comparative Study

6 Contracts and Scenarios in the Software Development Process

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

System development lifecycle waterfall model

Comparison between Agile and Traditional software development methodologies

Agile Projects 7. Agile Project Management 21

How User Experience Fits in Agile

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

Microsoft Change Management Applying Comparison of Different Versions

Changing Roles and Responsibilities from Traditional project management to Agile project management

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Lean UX - The Next Generation of User-Centered Agile?

TecEd White Paper User-Centered Design and the Agile Software Development Process: 7 Tips for Success

Basic Trends of Modern Software Development

Agile Process for Integrated Service Delivery

What is a life cycle model?

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

The traditional project management uses conventional methods in software project management process.

Project Management in Software: Origin of Agile

A Comparison of SOA Methodologies Analysis & Design Phases

Introduction to Software Engineering: Overview and Methodologies

An Appraisal of Agile Software Development Process

Title: Topic 3 Software process models (Topic03 Slide 1).

Reenginering the System Development Process for User Centred Design.

Agile Requirements Definition and Management (RDM) How Agile requirements help drive better results

LEAN AGILE POCKET GUIDE

Aalborg Universitet. Fast, Fastere, Agile UCD Pedersen, Tina Øvad; Larsen, Lars Bo. Publication date: 2014

The Spiral development model is a risk-driven process model generator. It

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

A Review of an MVC Framework based Software Development

InfoAdvisors. Is your Data Modeling Workflow Agile or Fragile?

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Classical Software Life Cycle Models

IT3205: Fundamentals of Software Engineering (Compulsory)

Large Scale Systems Design G52LSS

Course Title: Planning and Managing Agile Projects

A Social Network perspective of Conway s Law

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Agile Methods for Analysis

44-76 mix 2. Exam Code:MB Exam Name: Managing Microsoft Dynamics Implementations Exam

Agile Scrum Workshop

Agile Software Development

Using human factors standards to support user experience and agile design

Visual design and UX services for cloud based applications, services and sites

Agile PASSI. 1 The Agile PASSI Skeleton

CS4507 Advanced Software Engineering

Strategic Vision and Scrum: Looking Beyond the Next Sprint. Jimi Fosdick Certified Scrum Trainer and Scrum Mentor

Higher National Unit specification. General information. Software Development: Analysis and Design (SCQF level 7) Unit code: HA4C 34.

A Process Model for Software Architecture

Transcription:

Managing the Agile Process of Human-Centred Design and Software Development Peter Forbrig 1 and Michael Herczeg 2 1 University of Rostock, Institute of Computer Science Albert-Einstein-Str. 22, 18051 Rostock peter.forbrig@uni-rostock.de 2 University of Lübeck, Institute of Multimedial and Interactive Systems Ratzeburger Allee 160, 23562 Lübeck herczeg@imis.uni-luebeck.de Abstract. The paper provides and discusses a life cycle model for agile software development methods like SCRUM. The process model integrates the idea of Human- Centred Design (HCD) into the agile approach. Based on the discussion of existing life cycle models and known process patterns a process model is discussed that combines the advantages of HCD and SCRUM. The SCRUM process model was used in the discussion to be as concrete as possible. However, the suggested approach is applicable to other agile process models as well. 1 Introduction It is generally accepted that software should be developed in an iterative way because otherwise it is difficult to capture all requirements in a sufficient way. Even that the classical waterfall model has some advantages for the definition of milestones it is agreed that the spiral model of Boehm and the agile software development together with formative evaluation methods provide better software quality in the sense of usability and user experience. 2 Related Work Agile software development has become popular since the late 1990 s. It became popular because many projects failed because it took too much time from finalised requirements specification to first tests of the developed system. The approach was consolidated by a manifesto at the beginning of ten 2000 s [1] that characterises the agile idea by twelve main principles that have to be followed. Figure 1 gives additionally an overview of influences to agile software development. It presents approaches from planning, analysis, design, build, test deploy and review that found their way into agile development methods.

INTERACT 2015, Bamberg, 14-18 Sept. 2015 2 Figure 1. Agile influences (from http://blog.kiandra.com.au/wp-content/uploads/2013/08/agile-21.png) Currently, one of the most popular agile software development approaches is SCRUM, which will be revisited in the following paragraph. 2.1 Agile Software Development - SCRUM To make things more concrete we focus on one specific agile development method. One of the most popular methods is SCRUM [9]. Therefore we will focus on the related process models and the corresponding terminology. Figure 2. The scrum process (from http://en.wikipedia.org/wiki/scrum_software_development) Figure 2 presents the main process model for SCRUM. Based on the specified product backlog collecting all requirements for the product a sprint backlog is selected that contains all requirements that have to be implemented during the forthcoming sprint. The result is an increment of the necessary software.

INTERACT 2015, Bamberg, 14-18 Sept. 2015 3 2.2 Human-Centred Design (HCD) In the same way that SCRUM is popular for software engineering experts HCD is popular for usability and user experience experts. One of the main reasons for its success is that context of use, the requirements of the users and the evaluation of design solutions play an important role. User requirements are more important than technical features that software engineers might derive. Users get what they really want. The HCD process has been standardised by ISO 9241-210. Figure 3 gives a visual overview of the corresponding process model. Figure 3. The design process from ISO 9241-210 Human-centred design process (from https://thestandardinteractiondesignprocess.wordpress.com/ ) At the University of Lübeck a Usability Engineering Repository (UsER) was developed [7]. It is a framework, platform and repository for an integrated and modular development of human-machine systems with the special scope of usability engineering. UsER supports the analysis, design and evaluation of interactive systems through interrelated analysis and design entities creating a meshed specification of the system to be developed. The repository provides a broad variety of standard or specific methods of usability engineering. It enables the process and motivates the teams for usercentered development and user interface design thinking. UsER is in the stage of an advanced prototype that has already been applied within the industrial development of ERP systems (business applications) as well as supervisory control systems (safety critical systems). It is a modular system that allows selecting methods for analysis, design or evaluation as needed for a specific development process.

INTERACT 2015, Bamberg, 14-18 Sept. 2015 4 Figure 4. Process Model for UsER (from [4] ) Figure 4 presents the basic process model of UsER. It extends the HCD process model by methods for modelling certain usability aspects. The icons represent certain modules that allow the specification of related models. To understand the current problem one is able to perform a user analysis and task analysis and to store the corresponding models. The context can be modelled by an organizational analysis, artifacts and/or scenarios. It is also possible to model the interconnection of different models. It can be easily seen that UsER is an appropriate tool support for HCD since it provides the essential and established methods of usability engineering like user, task and context modelling within an integrated environment. An integrated model for HCD and agile software development was developed in [8] and will be presented in the following paragraph. 2.3 Approaches for Combining HCD and SCRUM It was already mentioned that a combined approach for HCD and SCRUM would be appreciated by a lot of software developers because such a unified approach would give the chance to combine the advantages of both approaches. Paelke et al. [6] published the following process model and called it Agile UCD-Process. However, it is more an UCD-Process with agile software development. Nevertheless, it is a very interesting starting point.

INTERACT 2015, Bamberg, 14-18 Sept. 2015 5 Figure 5. Agile User-Centred Design Process (Paelke et al. [5]) From our point of view it is interesting to start with UCD activities. However, the requirements elicitation is only loosely coupled with the software development process. A stronger coupling was suggested by Paul et al. [9] and is presented by the following Figure. Figure 6. Extended User-Centred Design Process (Paul et al. [9]) According to this approach all created software influences the HCD process. U- SCRUM [11] is an approach with similar goals. It suggests to integrate usability

INTERACT 2015, Bamberg, 14-18 Sept. 2015 6 aspects into SCRUM by having two product owners and to use the concept of personas for communication. However, the process is only roughly described by necessary artifacts. Sinah et al [10] provide a practitioner perspective to the problem. They analysed that agile teams suffer from the additional challenge of lack of management support to UCD activities that occurred to participants. They mention that a clear roadmap for combining both approaches is missing and that parallel tracks might help. We try to go one step forward to such a roadmap by presenting a process model in paragraph 2.5. 2.4 Process Patterns Patterns were introduced to the computer science community by the Gang of Four [3]. Their collection of Design Patterns was a great success for reusing knowledge of solutions for reoccurring problems. In the meantime patterns for different domains like tasks, workflows or user interfaces were discovered and published. Sutherland et al. [13] published nine patterns related to SCRUM. We will discuss with the pattern Yesterday s weather only one of them. This pattern says: In most cases, the number of Estimation Points completed in the last Sprint is the most reliable predictor of how many Estimation Points will be completed in the next Sprint. The other patterns are of similar kind and do not say a lot about the SCRUM process model. However, Bertholdo et al. [2] analysed projects and reports and provided patterns for agile software development that ask for consequences of the process model. The first pattern is called Sprint Zero and attacks the following problem: Missing the big picture of the system in the beginning.... It suggests the following solution: A short Sprint before the code implementation to define a broader view of the product, general goals, to roughly plan the next sprints and to define design principles. This process model of Figure 5 can be seen as one variant of the consequences of this pattern. Another pattern is called One Sprint Ahead. It is related to the following problem: Making the development and the UX team synchronized, that both can collaborate and provide input to the development workflow. There is the following suggested solution: The UX team works at least one iteration ahead of the development team. The pattern Parallel Tracks provides the following solution: UX or usability team work in a parallel track with the development team in order to synchronise their activities. The suggested process model of Figure 6 is designed according to the solution of this pattern.

INTERACT 2015, Bamberg, 14-18 Sept. 2015 7 3 Updated Process Model for SCRUM The result of our studies in projects studies and literature research is the following process model. Single Cycle Product Owner Several Cycles sequential parallel Analyst Developer Analyst Vision Needs Product Backlog Sprint Backlog Product Figure 6. Suggested Human-Centred Design Process for SCRUM The development process starts with a first analysis of the project context. Based on a project vision related needs are identified (pattern Sprint Zero). This activity is performed by people performing the analyst role. However, developers can perform this role as well and should be involved in the analysis process. Based on the identified needs requirements in the form of a product backlog are identified within the next sprint. Later the development sprint produces a product increment. This development Sprint is performed in parallel to the next cycle of identification of requirements in form of a product backlog increment. The dotted arc represents the several cycles that can be performed while evaluating product increments and identifying new requirements. The Sprint for identifying requirements (in terminology of SCRUM the identifying of the product backlog increments) follows the idea of the Human- Centred Design Process. Performing this process provides a good chance to develop software that has the necessary utilities, is usable and provides the necessary user experience. The following Figure provides more detailed information of activities that have to be performed according to the HCD process.

INTERACT 2015, Bamberg, 14-18 Sept. 2015 8 Produce Solutions and Refine Requirements [interface/interaction design, requirements] Specify Requirements [goals, requirements] Iterate appropriately Evaluate Solutions [evaluation, annotations] Understand and Describe the Current State [user model, task model, context model, interconnection model] Needs Plan the HCD Process Collect Requirements Product Backlog Figure 7. Detailed Human-Centred Design Process of Figure 6 Based on the identified needs there has to be a plan for the activities in the forthcoming HCD-Process that allows identifying project requirements under development. The current state and context of use is analysed and represented by different models. Requirements are specified afterwards before possible solutions are produced and later evaluated. The identified requirements are collected and specified as product backlog. We do not focus on the SCRUM development cycle because our process model is independent from details of these models. More or less each agile development cycle can be supported.

INTERACT 2015, Bamberg, 14-18 Sept. 2015 9 4 Summary and Outlook The paper discussed the two widely accepted process models for Human-Centred Design and Agile Development and shows how to combine them beneficially. Additionally, there was a focus on patterns that were published in different scientific papers. They encapsulate some knowledge about the integration of usability aspects into agile software development and provided arguments for presenting an own extended process model for the integrated approach of HCD and SCRUM. Although the terminology of SCRUM was used the process model can be used in conjunction with any other agile development process. The provided solution is based on the Zero Sprint Pattern, One Sprint Ahead Pattern and the Parallel Track Pattern. It can be combined with the idea of having UX specialist as product owners and having UX specialists in the development team. It might make sense to study the organisation of teams with the specific roles in more detail in the future. One consequence could be that all people acting in the development process should take part in the process of identifying needs on the project s vision. References [1] Agile Manifesto, http://agilemanifesto.org/, last visited June 4th 2015. [2] Bertholdo, A.P.O., da Silva, T.S., de Melo, C.O., Kon, F. and Silveira, M.S. Agile Usability Patterns for UCD Early Stages, In Marcus A. (Ed.) DUXU 2014 Part I; LNCS 8517, pp. 33 44. [3] Gamma, E., Helm, R., Johnson, R. and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1994 [4] Herczeg, M., Kammler, M., Mentler, T. and Roenspieß, A. The Usability Engineering Repository UsER for the Development of Task- and Eventbased Human-Machine-Interfaces, In: Narayanan, S. (Ed.). 12th IFAC, IFIP, IFORS, IEA Symposium on Analysis, Design and Evaluation of Human- Machine-Systems. Las Vegas : International Federation of Automatic Control. pp. 483-490 [5] Memmel, T., Gundelsweiler, F. and Reiterer, H. 2007. Agile humancentered software engineering. In Proceedings of the 21st British HCI Group Annual Conference on People and Computers: HCI...but not as we know it - Volume 1 (BCS-HCI '07), Vol. 1. British Computer Society, Swinton, UK, UK, 167-175. [6] Paelke, V. and Nebe, K. Integrating Agile Methods for Mixed Reality Design Space Exploration. In Proceedings of the 7th ACM conference on Designing interactive systems (DIS '08). ACM, New York, NY, USA, 240-249. http://doi.acm.org/10.1145/1394445.1394471

INTERACT 2015, Bamberg, 14-18 Sept. 2015 10 [7] Paul, M., Roenspieß A., Mentler T., Herczeg M. (2014). The Usability Engineering Repository (UsER). In Hasselbring, W & Ehmke, N C (Eds.) Software Engineering 2014 - Fachtagung des GI-Fachbereichs Softwaretechnik, 25.-28. Februar 2014, Kiel. Gesellschaft für Informatik e.v. (GI). 113-118 [8] Paul, M. Systemgestützte Integration des Usability-Engineerings in den Software-Entwicklungsprozess, PhD Thesis, Univerity of Lübeck, 2015. [9] Rising, L. and Janoff, S. N. "The Scrum Software Development Process for Small Teams", IEEE Software, vol.17, no. 4, pp. 26-32, July/August 2000, doi:10.1109/52.854065 [10] Salah, D., Paige, R. and Cairns, P. A Practitioner Perspective on Integrating Agile and User Centred Design, Proceedings of the 28th International BCS Human Computer Interaction Conference (HCI 2014), [11] Singh, M. U-SCRUM: An agile methodology for promoting usability, Integrating usability engineering and agile software development: A literature review. In Proc. AGILE 2009, IEEE Press, pp. 555-560. [12] Sohaib, O. and Khan, K, Integrating usability engineering and agile software development: A literature review. In Proc. International Conference on Computer design and Applications (ICCDA), Volume 2, p. 32 38, 2010. [13]Sutherland, J. Harrison, N. and Riddle, J. Teams That Finish Early Accelerate Faster: A Pattern Language for High Performing Scrum Teams. In Proc. HICSS 2014, pp. 4722-4728.