[ieee 2014 international conference on computer and information sciences (iccoins) - kuala lumpur,...

6

Click here to load reader

Upload: lukman

Post on 09-Feb-2017

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [IEEE 2014 International Conference on Computer and Information Sciences (ICCOINS) - Kuala Lumpur, Malaysia (2014.6.3-2014.6.5)] 2014 International Conference on Computer and Information

978-1-4799-0059-6/13/$31.00 ©2014 IEEE

Handling tradeoffs between Agile and Usability methods

Abstract— In the past few years, many organizations have tried to improve their software development methodology. Different development approaches had been introduced but only a few are still functioning in the software industry. Agile software development is one approach, which is currently successful in software industry. For the development of interactive and usable software, this agile approach needs to integrate with usability approaches. But this integration is not clear as both agile and usability follows iterative approach of development while agile approach is more toward on writing code and development of a running system; whereas, usability focused on the user interface to make the software more usable and increase its usability by following UCD process. This paper provides an extensive related work on the integration of agile methods with usability that highlights critical issues in agile methods and shows the importance of usability in agile methods. In the end, the proposed model is discussed to handle tradeoff between usability and agile methods under one model.

Keywords: agile development, usability, user interface design, software engineering

I. INTRODUCTION Software development plays an important role in today’s world. Different development approaches have been introduced and their main focus is to develop software in a short amount of time with a complete user’s requirements. Agile approach is one of the most commonly used approach for a rapid software development even though agile approach can develop a working software but not a usable software. In order to build a usable and interactive software, agile approach alone is not successful to produce such software and fails to satisfy the end user [1].

Software can be divided into two groups which are working and usable software. Agile approach delivers only working software with complete user requirements. To development a usable interactive software, high user involvement and usability approaches are involved. But in agile approaches, the time constraints do not allow to follow usability approaches, so it is often neglected and the whole focus is on the development of a running system.

The rule of following agile approach is to deliver a piece of working software. The main focus is on the development and testing of code and the rest of all other activities including usability are ignored [2]. Producing interactive and usable software, the rule of agile will not satisfy the user despite the

software is working but due to its lack of usability the software will fail. The term usability is defined in various ways throughout the literature. Despite the difference in definition of usability, most of them classify usability as a quality attribute for the software success and make it usable to the users

Today, software is being developed for individual users as well as for companies. To capture the market and gain profit many software models were presented as agile manifesto just because of traditional rigorous software process models. Hence, this manifesto gives an idea of a new methodology in software development, which is well known today as agile software method. Agile software method does not follow documents as seen in traditional software methods. Instead, agile focus more on coding then documentation follows. The best thing in agile methodology is that, it resists rapid changes in software development that is not easy in traditional software model. Still, agile model lacks a quality attribute of usability in its development. Research shows the high importance of usability in software development. Poor and inefficient designs are the most common causes noted in the product that have lack of usability and ultimately result in the failure of soft product. So, neglecting usability from software development make the software less interactive, difficult to use and dissatisfy the user.

Many research highlighted this question on how to integrate usability approaches in agile methodology. Both agile and usability have common feature i.e. iterative way of working. But agile highly focused on coding and development; whereas, usability focuses on how the end user will use the software and evaluate the usability of software. Despite their different nature and background, the important question is: who are your customers? The word customers do not mean that these are the actual software end users but they can be the representative of end-users or sponsors of that software.

This paper tries to give answers through related work and literature review on the importance of usability in today’s software development, integration of usability in agile methods and the role of the customer in producing usable software.

Saad Masood Butt Computer and Information Sciences

Department Universiti Teknologi PETRONAS

Tronoh, Perak, Malaysia [email protected]

Wan Fatimah Wan Ahmad Computer and Information Sciences

Department Universiti Teknologi PETRONAS

Tronoh, Perak, Malaysia [email protected]

Lukman Rahim Computer and Information Sciences

Department Universiti Teknologi PETRONAS

Tronoh, Perak, Malaysia [email protected]

Page 2: [IEEE 2014 International Conference on Computer and Information Sciences (ICCOINS) - Kuala Lumpur, Malaysia (2014.6.3-2014.6.5)] 2014 International Conference on Computer and Information

II. LITERATURE REVIEW Companies today mostly follow agile methodology to handle different challenges that persist in traditional approaches like requirement changes, schedule delays, defects that result in endless delays and redesign. The certain benefits of following agile methodologies pertain to develop a software development reducing coordination cost and focus on teams to come up with reliable product iterations. Still, following agile methodology cannot produce usable software.

Research shows the importance of usability in agile methodology; but despite its importance, the most critical thing is to know your actual users in software development. Mostly the word customer is used in software development. A customer is giving the requirements, participating in software design, testing, etc. from the start until the end of the development. So, there is a question whether they are actual software users or working as a user representative in the development of software?

The problem faced in traditional software development was it takes more time on the deadline in developing a software. This generates the concept of agile software methodology in software development in a small amount of time with continuous customer involvement and capacity to handle changes in any requirement. [3]. Agile methodology focus on iterative and incremental approach that help developers to release a product in increments in a small amount of time which was not easier in non-agile approaches [4].

McBreen [5] describes the concept of agile methods as the rapid development of software focusing less time on analysis and design. The main focus is to get feedback from a customer after every deliverable. This can be done by making development process fast and follow incremental and iterative approach to serve a customer in an efficient way. Though it is incremental and iterative in nature, it does not support software interface designing which is mandatory for the development of usable and interactive software [6].

Kane [7] discussed that none of the agile methods are supporting the usability or explicitly incorporates usability in the agile methods. Also, incorporation of usability in agile methods will increase product usability and increase end user satisfaction.

Fox et al [8] addressed that no agile methods can ensure the usability of software or software is usable. For the development of interactive and useable software, agile needs to follow usability techniques in it’s development methodology.

Many software companies still used agile methods to develop software in small amount of time. But now they agree that agile alone cannot ensure the usability of the software. It needs to be integrated with usability [9]. But usability experts are unsure that the resulting software is developed with the actual end-users participation or not [10]. Agile methods such as Extreme Programming (XP) value the customer who is present onsite during the development but still unclear whether these are the actual user or representative of end users [11].

Sharp et al [12] presented collaboration of customers in Extreme Programming (XP) and highlight the usefulness of UCD in XP. The major issue focused in the paper was the lack

of trust between customers and developers. Participation of the right user not only helps to get the right requirement but also to increase the usability of a software. Still, customers cannot act like real users in the development of a software [13].

Memmel et al [13] introduced a new model called Cross-discipline User Interface design and Software Engineering (CRUISER) lifecycle integrating HCI and SE. Results show involvement of the user in designing stage produce usable artifacts.

Agile methodology targets in delivering working code in a short amount of time. The iterative approach can produce good quality code, but it will not guarantee the user interface to be consistent as the aim is only to deliver small pieces of functionality in every interaction [14]. Agile methodologies produce workable software but cannot deliver usable software. The XP delivers high quality software but it might fail to delight the customer. Hence, to product usable interactive software, UCD is highly needed in agile methodologies [15].

Patton [15] discussed the ten steps that can help agile experts in integrating UCD during the software development but not clearly stating how the design passed the implementation stage.

Lee et al [16] proposed a new model called eXtereme Scenario-based Design (XSBD). The key process in this model is central design record (CDR) which helps to support communication between agile expert, usability expert and stakeholders; whereby, helping the usability expert in designing and running usability testing.

Ferreia et al [17] argued about Big Design Up Front (BDUF) in agile methods. But in reality agile methods do not care about BDUF since more of the design is upfront; therefore, difficult to change later on. BDUF is a method in agile software methodology in which the big design detail are created before coding and testing. Companies following agile methods clearly ignore this method and spend considerable amount of time on coding test in order to develop a working software.

In software development, testing is an important concept to verify and validate every single module that is developed. Similarly, in agile methods unit and acceptance testing are considered as an important testing techniques. These techniques test every single module in different environment but none of these techniques directly support usability testing and usability evaluation of software. In agile, developing paper prototypes and doing expert analyses do not provide product usability. Agile expert find no time to do extensive usability testing with the end-users to get product usability [10].

Singh [18] proposed a new methodology called U-SCRUM which support two product owners. One is to handle product functionality and the other focuses on usability. Unlike typical SCRUM model which aim to develop working software in a small amount of time, following U-SCRUM methodology can provide usability in all SCRUM projects.

McNeill [19] described that using low fidelity prototyping and storyboarding in iterative approach of agile can improve the software design instead of focusing and spending time on code. Hence, better products are developed with a complete focus on end-users and following UCD in agile approaches.

Page 3: [IEEE 2014 International Conference on Computer and Information Sciences (ICCOINS) - Kuala Lumpur, Malaysia (2014.6.3-2014.6.5)] 2014 International Conference on Computer and Information

Usability testing does not require long time span or a higher budget to be more effective. Discount usability allows engineers to work in team by thinking aloud, card sorting, scenario-based, walkthroughs and using heuristic approach – making the process much cheaper, fast and easy. These techniques can be applied early in the life cycle and during implementation phase for evaluating major/minor usability issues. The framework mentioned in [9], discount usability model is used within agile setting to be iterative and to be more effective. The software is not only useful but it also needs to be usable these days. Agile development model follows an iterative approach and has a very strict time frame where daily scrum meeting is held to update the team with the happenings. Researchers came up with the possibility of merging usability methods with the agile model. Adopting an agile approach while focusing on usability-centered design leads to an awesome experience that will result in a timely delivery of a highly usable product. The motivation for using agile with usability measures was because agile environment had a tested procedure at any point in the development phase. It was made effective by inviting the User Experience Team to play as a customer to evaluate the usability of the product.

Many software companies following usability in agile methods but still lacks UCD practices are observed. As discussed in [20] the collaboration of usability approaches in agile methodology is possible. However, agile and usability experts possess different skills and knowledge. Hence, the critical issued faced is that agile development purely focused on workable software with explicitly ignores usability issues. In addition, many agile methods do not involve the end user which is lacking during the development phase. Using usability approaches need real users which enable software developers to implement usable software [21].

From the research, industry report and work done in usability shows the best way to evaluate the design is to understand the user and how the user interact with the system (system can be functional or mockup screen). Before, software developers following usability in agile kept producing wrong designs. As they understand the world is moving from Pcs to Web to Mobile apps the need of UCD is increasing day by day to attain the quality attribute of a software i.e. usability. Hence, for the development of a usable software, the agile developer needs to incorporate interactive design and usability methods in their development methodology [22].

Big companies like IBM also emphasis on the usability in software development. This quality attribute not only makes the product usable but increases the market value of that product [23]. Similarly, Microsoft recently published a report [24] presenting the benefits of focusing usability in software development. The reason to achieve software usability is helping reduce the training cost on usable software and improving the user acceptance of the software by the end users.

III. PROPOSE EXPERMENTAL MODEL The problems and challenges mentioned in the previous section show that usability and end user play an important role in producing usable software. But the question is how to

incorporate usability approaches in agile software development in order to produce a usable software. Getting usability attributes of software need to have interactive interface design which is tested and improved by usability evaluation methods. Different usability evaluation methods have been proposed for website [25], mobile apps [26], virtual environments [27] and other applications [28]. This clearly shows that different systems need different usability evaluation factors since all system carry a different system attributes that cannot be evaluated by one framework. This derives the passion to add into the body of knowledge in order to give a motivation to develop an agile model that keeps the agile features and incorporates interactive design and usability evaluation methods. The proposed model consists of six processes as below. a. FlexREQ

The very first process in every software model is the collection of requirements. In order to get software requirements quickly without going into the paper work like maintaining SRS document in traditional development, FlexREQ [29] is proposed to maintain the requirements in agile methodology. FlexREQ is a small system that handles requirements and the artifact derived from this process is the auto granted document (as shown in figure 1) that contains information like prioritizing the requirements, finding the dependent requirements, selecting requirements for parallel development and sequential development and the last is finding the CTR (Cost, Time, and Resource) of project.

Figure 1: FlexREQ Process b. Interaction User Interface Designing

After FlexREQ, the next process is the Interaction User Interface Designing as shown in figure 2. In this process, end users take participation in the designing of interactive user interface. End-user feedback is collected after every mockup and revised if any modification is needed. Artifacts achieved at the end of this process are interface mockups that are ready for the usability evaluation testing.

Page 4: [IEEE 2014 International Conference on Computer and Information Sciences (ICCOINS) - Kuala Lumpur, Malaysia (2014.6.3-2014.6.5)] 2014 International Conference on Computer and Information

Figure 2: Interaction User Interface Designing Process

c. Cognitive Analysis of Software Interfaces (CASI) To check the level of usability achieved in software interface, each interface is tested by CASI process [30]. The test is done by the end-user and the result will be recorded at the end as shown in figure 3. For time, it follows the Heuristic and Cognitive walk through for the evaluation of software interfaces. Usability issues will be identified in the interface if any and removed before the construction phase starts.

Figure 3: Cognitive Analysis of Software Interfaces (CASI)

d. Development and Testing

Successful mockup produced from CASI process are now ready for coding in the development and testing phase as shown in figure 4. First, it prioritizes all the mockups and start coding. Then, it will again test the usability with additional unit and acceptance testing. In this way, mockups are coded into running module for the first release in iterative and incremental nature.

Figure 4: Development and Testing

e. Deployment When all the requirements are turned into running module and deployed in iterative and incremental nature, it should be assembled into one system and installed at the end-user site. It is common in software when a user uses it that new requirements or changes of an existing requirement maybe requested by the user. The proposed model has a capacity to adhere to the new user requirements. Therefore, it allows going back to the previous phases in order to cater the usability issues, new requirements and modification of an existing requirement and other issues etc.

Figure 5: Deployment

IV. RESULTS The proposed model is experimentally tested by the development of a small project. The same project subsequently was developed using the most popular methodologies such as Scrum, Waterfall Model and OSSD (Open Source Software Development). Finally, the results when compared between popular methodologies and the proposed model were based on the following key agile features i.e. Usability, User Involvement and Development Time. From the comparison, it clearly indicates that practically Usability concentrated more in

Page 5: [IEEE 2014 International Conference on Computer and Information Sciences (ICCOINS) - Kuala Lumpur, Malaysia (2014.6.3-2014.6.5)] 2014 International Conference on Computer and Information

the proposed model as compared to other models. On the other hand, User Involvement was observed more in the proposed model and Scrum model but the proposed model shows more user involvement then Scrum model due to the usability aspect. The final feature i.e. Development Time shows that by using OSSD the completion time will be lesser as compared to the proposed model. The reason why OSSD finishes product development so early is because it is handled by the technical people; however, there is no user involvement which means that there are no usability evaluation techniques and no testing methods that help reduce product bugs but it also helps to increase product usability and market [31].

V. LIMITATIONS There is no scientific research study undertaken by humans that comes without limitations. Similarly, this research study also has some limitations. The proposed model is used for small and medium level project. To develop a web based application or mobile app, different usability factor needs to be added in CASI for evaluation.

VI. FUTURE WORK The possible future work are based on the above mentioned research limitations. Different applications have different usability factors which cannot be handled by one evaluation method. More investigations are needed to test the proposed model with different system having different usability factors.

VII. CONCLUSION Agile methods were designed to develop a software in a rapid nature. Though it was successful to produce a software, it is a working software not a usable software. From the literature review it is obvious that to develop a usable software, the agile methods need to incorporate usability approaches. In addition, understanding of the end-user is important in order to get the usability of your software. But the challenging task is how to handle the trade-off between usability and agile approach. The proposed model is developed and it consisted of six processes. Each process itself is complete and the product artifact for the next process. However, the proposed model proved to handle the trade-off between agile and usability methods under one model.

REFERENCES [1] Fox, D., Sillito, J., & Maurer, F. (2008, August). Agile methods and

user-centered design: How these two methodologies are being successfully integrated in industry. In Agile, 2008. AGILE'08. Conference (pp. 63-72). IEEE.

[2] Parsons, D., Lal, R., Ryu, H., & Lange, M. (2007). Software development methodologies, agile development and usability engineering. ACIS 2007 Proceedings, 21.

[3] "What is agile software development," May 14, 2009, [Online] Available: http://www.agilealliance.org/show/2 [Accessed: December 2013].

[4] H, Keramati and S, H. M, Hosseinabadi, "Integrating software development activities with agile methodologies," Proc, 6th ACSIIEEE International conference on Computer System and Application (AICC SA '08), 2008, pp, 749-754.

[5] Koskela, "Software configuration management in agile methods,"VTT publication 5 14, ESPOO, 2003, pp I-54,

[6] Lee, J. C., & McCrickard, D. S. (2007, August). Towards extreme (ly) usable software: Exploring tensions between usability and agile software development. In Agile Conference (AGILE), 2007 (pp. 59-71). IEEE.

[7] D, Kane, "Finding a Place for discount usability engineering in agile development: Throwing down the gauntlet," Proc, Agile Development Conference (ADC'03), IEEE Press, 2003, ppAO-46.

[8] D, Fox, 1. Sillito and F. Maurer, "Agile methods and user-centered design: How These Two methodologies are being successfully integrated in industry," Proc, AGILE 2008 conference (Agile '08), IEEE Press, 2008, pp, 63-72.

[9] D Sy, "Adapting usability investigations for agile user-centered design," Journal of Usability Studies, vol. 2, Issue 3. 2007, pp, 1 12-132.

[10] Sohaib, O., & Khan, K. (2010, June). Integrating usability engineering and agile software development: A literature review. In Computer Design and Applications (ICCDA), 2010 International Conference on (Vol. 2, pp. V2-32). IEEE.

[11] M, Najafi and L. Toyoshiba, "Two case studies of user experience design and agile development," Proc, AGILE 2008 conference (Agile '08), IEEE Press, 2008, pp, 2 167-2177.

[12] H. Sharp, H. Robinson, and 1. Segal, "Integrating user centered design and software engineering: a role for extreme programming," [Online ]A vailable:http://www.ics.heacademy.ac. uk/events/presentationsl376_hcie sharp2,pdf [Accessed: December 2013].

[13] T. Memmel, F, Gundelsweiler and H. Reiterer, "Agile human-centered software engineering," Proc, HCI 2007, British computer society Press, 2007, pp, 167- 175.

[14] J. Kollmann, H. Sharp and A. Blandford, "The importance of identity and vision to user experience designers on agile projects," Proc, AGILE 2009 conference (Agile '2009), IEEE Press, 2009 , pp, 1 1- 18.

[15] J. Patton, "Hitting the Target: Adding interaction design to agile software development," Proc, Conference on Object Oriented Programming Systems Languages and Application (OOPSLA 2002), ACM press, 2002, pp, 1-7

[16] J. C. Lee, D, Scott, McCrickard, K. T. Stevens, "Examining the foundations of agile usability with eXtreme scenario based design," Proc, AGILE 2009 conference (Agile '2009), IEEE Press, 2009, pp, 3- 10.

[17] Ferreira, 1. Noble and R. Biddle, "Up-Front Interaction Design in Agile Development," Proc, XP 2007, Springer-Verlag Berlin Heidelberg, 2007, pp, 9- 16.

[18] M Singh, "U-SCRUM: An agile methodology for promoting usability. " Proc, AGILE 2009 conference (Agile '09), IEEE Press, 2009,pp, 555-560.

[19] M McNeill, "User centered design in agile application development," [online]Available:http://www.thoughtworks.com/pdfs/agile_and_UCD MM, pdf [Accessed: December 2013].

[20] 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.

[21] Parsons, D., Lal, R., Ryu, H., & Lange, M. (2007). Software development methodologies, agile development and usability engineering. ACIS 2007 Proceedings, 21.

[22] NN, “Agile Development Projects and Usability”, [Online] Available: http://www.nngroup.com/articles/agile-development-and-usability/ [Accessed: December 2013].

[23] Shackel, B. (2007). IBM makes usability as important as functionality. The Computer Journal, 29(5), 475-476.

[24] Microsoft Corporation: “Usability in Software Design”, [Online] Available http://msdn.microsoft.com/en-us/library/ms997577.aspx. [Accessed: December 2013].

[25] J. T. Abbitt. Developing an evaluation framework for a custom-designed course management system. Journal of Interactive Online Learning, 5(2):191–216, 2006.

[26] J. Heo, D. Ham, S. Park, C. Song, and W. C. Yoon. A framework for evaluating the usability of mobile phones based on multi-level, hierarchical model of usability factors. Interacting with Computers, 21(4):263 – 275, 2009.

Page 6: [IEEE 2014 International Conference on Computer and Information Sciences (ICCOINS) - Kuala Lumpur, Malaysia (2014.6.3-2014.6.5)] 2014 International Conference on Computer and Information

[27] J. Jeng. Usability assessment of academic digital libraries: Effectiveness, efficiency, satisfaction, and learnability. In LIBRI: International Journal of Libraries and Information Services, pages 96–121, 2005.

[28] T. Tsiatsos, K. Andreas, and A. Pomportsis. Evaluation framework for collaborative educational virtual environments. Educational Technology & Society, 13(2):65–77, 2010.

[29] Masood Butt, S., & Ahmad, W. F. W. (2012, June). Handling requirements using FlexREQ model. In Software Engineering and Service Science (ICSESS), 2012 IEEE 3rd International Conference on (pp. 661-664). IEEE.

[30] Butt, S. M., & Ahmad, W. F. W. (2012). Analysis and Evaluation of Behavior in Software Interfaces using an Expert System. International Journal, 5.

[31] Hedberg, H., & Iivari, N. (2011). Integrating HCI Specialists into Open Source Software Development Projects. In Open Source Ecosystems: Diverse Communities Interacting (pp. 251-263). Springer Berlin Heidelberg