You are on page 1of 38

Enhancing Customer Involvement in Agile Software Development through Mobile Collaborative Environment

Introduction In 2001, Agile alliance has discovered enhanced methods of developing a system where customer involvement is very vital for a system success (Alliance, 2001; Chow & Cao, 2008; Misra etal., 2009; Hoda, 2010). In this context, customer need to work together with the development team throughout all phases of SDLC whereby the value of having a negotiation contract (merely on determining the costing for the whole system development) during the incremental development (iteration process) of software is less important (Alliance, 2001). At present, there is a necessity to have a system that is established at faster rate with a reasonable cost and a well-known scope which can be further classified as having a good quality system (Misra et al., 2009; Chow & Cao, 2008). In order to have a quality system, user involvement is crucial as the functionality of the system is gathered through customers anecdotes (Dyba & Dingsoyr, 2008). Therefore, many companies are shifting to use Agile methods in developing a system where customer involvement demonstrates to be one of the key principle for a system success. Previously, following structured design methodologies, customer involvement is not being emphasized where they only involve during requirements gathering at the early stage of system development and testing the system once it is fully completed (Hanssen & Fgri, 2006; (Dennis et al., 2010). As the results, most of system that has been implemented is considered a failed project due to many technical flaws and low customers satisfaction (Booch& Brown, 2003; Ewusi-Mensah, 2003; Nerur et al., 2005). Therefore, most of the companies in the United States are shifting from structured design methodologies to Agile methods since 2001 which comprised of 58 percent of Agile methods adopters (Chow & Cao, 2008). Considering customer collaboration as one of the main success factors (Sommerville, 2010; Misraetal., 2009; Alliance, 2001) in software project,a sufficient number of customers are needed to provide clearer anecdotes of the system, which outline the detailed requirements of
1

the project. The selection of the customer is based on: (1) the ability to prioritize the requirements in the analysis phase and (2) the skills in answering all the developers questions during the design and the implementation phases whereas providing a proper feedback at the end of each iteration process (Wang et al., 2008; Mohammadi et al., 2008). In Agile methods, customer involvement has a high impact in identifying the scope of the system. Therefore, a sincere commitment and collaboration from a customer is very essential. Moreover, having good customer relationships will encourage and motivate the customer to have full responsibility and full authority in helping to provide clearer project requirements. Consequently, this will help in implementing the system successfully (Misra et al., 2009; Chow & Cao, 2008). However, there is some concern arises when considering customer involvement as follows: (1) Is it possible to find a sincere, commitment and collaborative customer who can be involved following the Agile alliance demands?, (2) Why many customers cannot involve well or they cannot make decision in some of the companies or/and some of the countries?, (3)Is one customer enough to provide the user stories, prioritize them, communicate with the developers and the end users, test the system functionality and provide a proper feedback?, and (4) How can we solve the problems of insincere, indifference and non-collaborative customer to continue using Agile methods? Hence, this present study is designed to answer the aforementioned questions. In brief, this study will focus on probing Agile methods expert opinions, suggestions and conduct indepth literature review on the available strategies in solving these problems. An in-depth literature will be conducted to discover the success, feasibility and the strength of the available strategies .The crucial factors that have been identified by other researchers altogether with the new prominent factors that will be determined in implementing a system prototype will be tested accordingly by applying the suitable strategies, tools and methods to answer the current research problems.

Moreover, the prototype will contain many features and tools that will ensure that the customer will be involved adequately, even though they cannot be physically available during the development of the system.

Background and motivation In the late 1990s, software developers started to discover a better way of developing software starting from the users stories and the implementation phase of SDLC rather than following structured methods in developing the system (Alliance, 2001; Dennis et al., 2010).Agile terminology is defined as quickness, lightness, and ease of movement in doing things. Hence, when this term is associated with SDLC methods, it means that the developers are going to develop a system in a very quickly manner (Misra et al., 2009; Chow & Cao, 2008). In short, requirement gathering will be carried out concurrently with designing and implementing the system. According to Jrgensen & Molkken-stvold (2006), there are no significant differences on the quality of the current software and it is not appealing in comparison to previous software. The software failure is not decreasing as expected especially when comparing the result published by the Standish group in 2007 and 2009 where the number of software failure is increasing as illustrated in Table 1.1. Since there is a high percentage of software failure, there is a need to find appropriate solution for the factors that can negatively impact project success. Human factors are the main factors to be considered in solving the problems in regards to software development. Furthermore, having the right people to be involved in developing any project is the most important key of system success (Ewusi-Mensah, 2003; Booch & Brown, 2003).In Agile methods, the customer is the main human factor when considering the people who will be involved in developing the software(Alliance, 2001).

Table 1.1: Challenged and Success of software Evolution Reference Year Failed Software Challenged Software Standish Group Standish Group Standish Group Standish Group Standish Group Standish Group Standish Group Simon Bennett Standish Group Standish Group Standish 1994 1996 1998 1999 2000 2002 2004 2005 2006 2007 31% 40% 28% 20% 23% 15% 18% 40% 19% 19% 25% 53% 33% 46% 46% 49% 51% 53% 27% 46% 46% 43% Successful Software 16% 27% 26% 34% 28% 34% 29% 33% 35% 35% 32%

Group 2009

(Cerpa & Verner, 2009)

A quantitative survey has been conducted by Rumpe & Schroder (2002) investigated on the advantages of using extreme programming. The result indicated that using other methodologies (not under Agile category) facilitates higher cost, less productivity, poor quality and poor business satisfactions, which can be considered as a huge failure of the system in comparison to Agile methods. Hence, extreme programming and SCRUM are the most practical and widely adapted methodologies under Agile methods (Beck, 2000).

Sommerville (2010) describes customer involvement as the key principles of Agile method indicating that customer must work together with the developers implementing the system.
4

The customers could start their anecdotes to prioritize their requirements by providing the important functions first and then evaluating the first sprint of the system and provide a new requirements as well as providing the feedback of the first sprint of the system. Hence, customer involvement is one of the key factors of Agile methods to implement software successfully and it must be concerned in a critical manner. Literature Review This section presents an overview of three categories of system development life cycle including Agile methods category. The prominent methodologies under each category will be described accordingly. Finally, the focus will be on selected methodology which is Agile methods and specifically discussed on customer involvement. A model is a formalized approach to implement any project. Each SDLC methodology consists of different phases whereby each phase includes steps, techniques and deliverables. Most of the firms are using one or more of the SDLC methodologies which are refined based on their preferences (Hass, 2007). Table 1.1 showed the prominent models under different categories of system development life cycle. Table 1.2: SDLC categories Structured Design Models Rapid Application Development Models Waterfall Development Prototyping Methodology Extreme Programming Methodology Parallel Development Throwaways Prototyping Methodology Stagewise Methodology Iterative Methodology Adaptive Software Development V-Model Methodology Spiral Methodology Dynamic Systems Development Method SCRUM Methodology Agile models(Methods)

SDLC introduction period Recently, business is changing rapidly. At the same time, software has become very important for all business operation and there is a need to develop a software in a quickly manner to meet the business needs. So, many different system development models have been used and some of the organizations are using standards models apart of the abovementioned models while other organizations are using their own models or hybrid model with detailed explanation on its applications. System development life cycle (SDLC) did not maintain its original form. Illustrated in Figure 1.1 is how SDLC made progress starting from 1956 up till now.

(Stapleton. 1997; Beck, 1999)

Agile Models

(Mills et al., 1980)

RAD Models

(Royce, 1988)

Structured Design Models


(Boehm, 1988)

Code-and-Fix Gatestage Model

1956

1970

1980

1997

Figure 1.1 Chronological Progress of SDLC methods

Code-and-Fix model with structured design models At the early days of system development, Code-and-fix model (which is not considered as any of the above-mentioned categories) was a basic model of implementing the system
6

whereby the developer will start writing the code and fixing it without planning, analysis and design. Figure 1.3 shows how this model works considering both phases. Following the defects found in a code, the developers will keep fixing the code to provide second, third and fourth version of incomplete system that correct deficiencies and add more functions and features, this cycle continues until the developers are convinced that the system is completed.

Writing the Code Problem Identifications

Figure 1.2 Code-and-Fix model (Boehm, 1988) The main disadvantages of this model are that the structure of the code is very poor since there is no designing phase and the developers does not have any idea about the requirements. Hence, fixing it will be very expensive especially when considering large system. Moreover, in most cases the system will not match the users needs (Boehm, 1988). Therefore, to address these problems Stagewise methodology was developed to enhance code-and-fix model by planning, designing and code specification of the system before implementing (Writing the code) it. Moreover, the system will be tested, shakedown (Deployed or it will be used) and evaluated after writing the code. Figure 1.3 shows how this model works including all the phases or the stages of the system development.

Operational Plan and Specification Design and Code Specification Implementation (Coding) Testing

System Shakedown System Evaluation

Figure 1.3 Stagewise model (Boehm, 1988) Traditional model is working similarly like Stagewise model but in the planning phase, the developers will focus more in identifying and investigating the problem in details. The waterfall model is a sequential approach whereby the developers progress sequentially from one stage to the next. This methodology was proposed by Royce in (1970) to enhance Stagewise model by making it possible to go backward throughout the stages, (for instance, from analysis back to design), but this is found challenging, costly and difficult (Ruparelia, 2010; Dennis, 2010). Figure 1.4 shows how Waterfall model works including all the phases or the stages of the system development.

Operational Plan and Specification Design and Code Specification Implementation (Coding) Testing

System Shakedown System Evaluation

Figure 1.4 Waterfall model (Ruparelia., 2010; Dennis at al., 2010) Parallel development model is almost similar to waterfall model but it addresses the problem of the length and repetition of the design phase when one team is implementing the system, especially when the system is huge. By using this model the requirement will be divided into more than one development team, so each team will design and implement part of the requirement which called sub-system. All the sub-systems will be integrated and the primary advantage to this methodology is to reduce the delivery time schedule of the system while the main disadvantage is integrating the sub-systems into one system especially when the developers are not experts working together. Figure 1.5 shows how parallel model works including all the phases or the stages of the system development.

Operational Plan and Specification Design and Code Specification Design

Design Design
Implementation

Implementation

Implementati on

Implementation (Coding) Testing

System Shakedown System Evaluation

Figure 1.5 Parallel model (Dennis et al., 2010) Note: Explanation of the prominent RAD models and Agile methods will be added. Agile Methods Starting from 2001 when a group of 17 software developers sat together to enhance and explore new development methods. They come out with new methods called Agile methods which contain several principles called Agile Manifesto (Beck et al., 2001) as follow: 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

10

Implementing any project following Agile method requires strong communication

between customer and developers. Three of the twelve principles in Agile Manifesto are strongly related to the communication factor (Beck, 2001). Face-to-face communication is considered as the main effective and efficient method to be used between the developers themselves and with the customer. Another principle is that customers/story owner and development team must work together in daily basis throughout the project. This will allow the developers to receive regular feedback from the customer which is another principle that strongly related to the appropriate communication (Beck, 2001). However, in many cases the customer is too valuable (too difficult to be on-site due to some managerial issues) or far (distance matter) and cannot be available during all the iterations or the sprints of developing the project (Jeffries et al., 2001). Consequently, since the customer position/location is an important factor which affects the development of any project using Agile method, many researchers observed the development of the projects that were implemented using Agile method to check whether the customer must be available on-site and all the time or just partially available (Koskela & Abrahamsson, 2004; Korkala et al., 2006; Conboy, 2009; Wallace et al., 2002). Starting from 2001 and following Agile Manifesto (Alliance, 2001), customer collaboration was highly valued and as mentioned above face-to-face communication is highly required, but this seems to be difficult especially when considering valuable and distant customers (Mohammadi et al., 2008). Therefore, Agile researchers started to determine the importance of customer collaboration by checking the results of those developers who started to follow Agile methods and involve the customers. However, contradictions were recognized for different projects implementation. On-site customer is not necessarily available all the time and 21 percent of their presence was found sufficient (Koskela & Abrahamsson, 2004). Other researchers added, it is not necessarily for the customer to be on-site all the time and product management team (PMT) can replace the customer and solve the problems of not having them on-site (Mohammadi et al., 2008; Grisham & Perry, 2005).On the other hand, one team constantly valued on-site customer as an

11

outstanding and all the time must be available on-site (Beck et al., 2001; Conboy, 2009;Korkala et al., 2006). Moreover, another case study indicated that on-site customers were evaluated badly, whereby the customers could not be available all the time and were not keenly involved (Conboy, 2009). Additionally, customer is the only person who can understand the business domain well and have the ability to make decision of the resources, scope and schedule (Chin, 2004; Bartsch, 2011). Knowledgeable on-site customer improves the development of functional and nonfunctional requirements especially in eliciting the security and usability requirements (Bartsch, 2011). In addition, on-site customer clears the vague by providing the structure of the project to cope with the difficulties and the complexities of a large project (Kautz, 2009). Following Agile method, customer is a person who hold the decision to buy or a person who have the authorization to buy a project (Mohammadi et al., 2008). For a successful project development, customer must be involved at the beginning of developing any project using Agile method and must be available when needed (Mohammadi et al., 2008). Unfortunately, persuading people to use Agile method by short presentation (brief explanation about the advantages of Agile methods in comparison to other methods) was impossible and Lowery & Evans (2007) found out that the customers were not persuaded at the end of the development which caused longer delay in delivering the system (Lowery & Evans, 2007). A software company called AD performed an empirical case study of a commercial Agile development project in a large organization in German. The main focus of the empirical study is to find out how customer involvement is affecting the development of the system. This study showed that by using Agile methods, developers must have one of the end users acting as a customer and being available with them all the time (Kautz, 2009). The main reason behind that is the doubtfulness of more than 40 percent of the story-cards and the programmers requires someone to be available all the time to explain and clarify ambiguous stories in order to be understood (Kautz, 2009). Thinking about the disadvantages of having the customer on-site, a number of developers were not able to work while someone is walking and checking what they are doing and they considered on-site customer to be disturbance for them. Therefore,
12

considering large systems, the number of customer must be higher. This seems to be impossible since some of the developers always complaining of having the customer on-site (Kautz, 2009). Kautz (2009) highlighted that customer availability is almost necessary in order to clear most of the story-cards. Unfortunately, this seems to be impossible especially when the customer is valuable to be on-site or far from the team. Therefore, it is very important to see the reasons behind the abovementioned dramatically contradiction and find a suitable tools, strategies and techniques which can be suitable for both, customers and the developers (Kautz, 2009). Committed customers who have a good knowledge about the business domain and could make fast decision while collaborating with the developers is considered as one of the main success factors of developing a project using Agile method (Coram & Bohner, 2005). Therefore, the customer must be committed and must understand that he/she is responsible about the failure or success of the project. Customer involvement does not mean the customer is just available with the developers but must have the ability to provide and prioritize the requirements starting from the important requirements which can provide value at the beginning of the development (Misra et al., 2009). Moreover, the customer must be able to make fast decision of what the developers must do at the beginning until implementing the system. Therefore, the customer must have a good background about the business value of each and every requirement. The main purpose of using Agile method is to deliver the project in a short time (Alliance, 2001). But, one customer for a large project cannot direct the project effectively and this will cause delay in the planning and the delivery of each sprint. Hence, will affecting the delivery of the final project (Lowery & Evans, 2007). Customer involvement is one of the main factors that cause a project success (Sommerville, 2010; Kautz, 2009), but most of the customers have no idea on how to collaborate well when they involve with Agile teams (Wang et al., 2008). Since there is a need
13

of the customers presence with the capability of providing the requirements on spot (Alliance, 2001)the customer fearfulness will be increased and they will not be able to provide their requirements as it is required from Agile team (Saleh, 2011). Another reason behind the customer fearfulness is the customers misunderstanding of the term Agile. Some of them put in their mind that by following Agile methods, the system will fail. Hence, this will discourage the customer to rethink about the requirements (Beck, 2000; Hoda et al., 2009). Furthermore, the word fail is really difficult to be accepted when the customers provides a good idea that considered to be unique in their opinion (Saleh, 2011). Several solutions to overcome customers fearfulness were found in the literatures as follows: a) One of the methods is to explain the benefits of using any of Agile method to the involved customer and compare them with other methodologies such as traditional methodologies (Hoda et al., 2009). b) Both Hoda et al., (2009) and Saleh (2011) agreed that having more than one story owners instead of having one customer during all the iteration will provide clearer requirements. c) When the customers are too late in providing or prioritizing the requirements or when they provide unclear requirements, the developers will be forced to assume and guess what the customers wants and provide frequent working software to make it easy for the customer to provide the feedback at the early stage of the development. Hence, the customer would appreciate that (Hoda et al., 2009; Saleh, 2011). d) Hide the term Agile and follow Agile software development methods internally without informing the customer about it. Hence, the customer will not be fear and they will be relaxed while providing the requirements (Hoda, et al, 2009; Saleh, 2011). Given that the customer often doesnt know what they want, the requirements provided are always unclear and it would be very important to prevent that or find a suitable technique to reduce the time and the cost of changing the requirements (Saleh 2011).

14

Therefore, the customer must be asked to provide all the requirements he/she know by listing out the system requirements. Customers involvement is very important and considered to be critical when using Agile methods in developing any system (Griffin, 2001; Farell et al., 2002). An empirical results showed that on-site customer is considered as one of the most controversial topic in Agile methods especially when using extreme programming whereby customer must be involved but not necessarily present all the time (Koskela & Abrahamsson, 2004). Moreover, in order to implement the system successfully using Agile methods, the customer must work closely with the developers (Beck & Andres, 2004; Martin et al., 2003) but due to some circumstances, customer will not be able to participate especially when there is distance factor. As consequences, the participants will not thoroughly collaborate as expected from Agile team. This in turn will delay in delivering the iterations of the system (Beck, 1999; Beck, 2000; Martin, 2003). Thus, many authors have conducted research to solve the problems of customers absence. Product management team (PMT) was suggested as one of the approaches. The PMT will be involved in developing the system and their main responsibility is to select the suitable customer to be involved. In case of customer absence or not active, one of the PMT can replace them following the developers expectations (Hanssen & Faegri, 2006). In addition, PMT approach was enhanced by having technical manager role-play to supplement the customer or the part-time customer (Koskela & Abrahamsson, 2004; Mohammadi et al., 2008). Moreover, once the customer is available, the technical manager role-play which assigned by the product management team (PMT) needs to ask the customer to provide a brief explanation of all the functionalities they have in their mind which will help the manager role-play to simply replace the customer once they are not available. Customer proxy is similar to PMT whereby he/she will play the role of customers while collaborating with them for requirement clarifications and providing feedback (Hoda et al., 2010).

15

In addition, Hoda et al., (2010) suggested another solution which is providing use cases to clear the assumptions that cross the developers mind regarding the functionalities of the system and then provide it to the customers which will encourage them to provide a proper feedback. As a customer, the main responsibility is to balance all the expectations from each and every end-user of the organization starting from the operational level until the strategic level. To be able to balance all the expectation, customer must have the knowledge about their organization and the full authority of taking a decision. Unfortunately, most of the customers are not well-informed to be able to provide all the stories of the end-users and not all of them can make a decision without consulting their managers. Therefore, customers need regular supports from the end-users, managers as well as the developers. Else, it is the responsibly of developers to elicit the requirements that have been missed once the customers provide their stories (Finsterwalder, 2001). Thus, there is a need for a thorough analysis to elicit the requirements before starting the project. This would make the customer satisfied following Agile methods in the remaining phases of SDLC (Finsterwalder, 2001, Saleh, 2011). Customer role is considered as one of the main factor that affect the customer involvement in developing a system (Fraser et al., 2004;Kautz, 2009; Lowery & Evans, 2007; Mohammadi et al., 2008). Extensive interviews were conducted with experts members of Agile methods to elicit their opinions on customer role. The result highlighted that even knowledgeable customers who themselves prepared well to be committed with the developers are facing a serious and exhausting job which is difficult to be accomplished. This is due to the scarcity of delivering and teaching the customer role in a good manner especially when considering that customer must replace the end-users of all the organization level (Fraser et al., 2004). Another appealing result has mentioned that when the customers provided the story cards, they cannot remember their decision and most of the time they will have a doubt in providing a decision of what they wants. Hence, there is a need to provide a new tools or new

16

techniques which helps the customer to remember what they desires exactly (Fraser et al, 2004).

Problem Identification The factors that determine the success or failure of a software project are changing over time based on the implementation scenarios (Misra et al., 2009). Hence, there is an urge need for a software developer to have better understanding on how Agile methods could be applied and improved accordingly. Customer involvement is considered to be one of the main success factors given that the customer collaborates following what the Agile team demands (Paulk, 2002). To date, the failure rate of newly developed system is reported very high (Dominguez, 2009).Therefore, it is desirable to conduct numerous studies on regular basis in order to identify the factors that determine the success or failure of a software project. Hence, these factors have to be considered when applying Agile methods. One of the most appealing is customers factor. IT executive managers have identified that the educate customer involvement as the main reason that contribute to the project success (Rubinstein, 2007). Moreover, it is considered to be the most important feature of an Agile method and the greatest problem the developers faced in regards to customer involvement (Hoda et al., 2009; Saleh, 2011). However, considering 63 countries that have been involved in Agile methods research, very few researches have been done in regards to this factor (Dings et al., 2012; Kautz, 2009). Even though, it is well-known that customer involvement factor is the most crucial factor that determine the success of a software project (Paulk, 2002), there is some of underlying factors that have impact/affecting on it remained untested. Therefore, a thorough study is on-demand to determine the factors that facilitates customer involvement in Agile methods. From the literature, customer involvement can be classified as customer collaboration, customer commitment and customer satisfaction (Misra et al., 2009).
17

The following are the identified possible factors that may have direct impact on customer involvement: Customer location, customer social culture, customer communication and negotiation, number of customer, customer competency, customer fearfulness, customer role and characteristics, customer knowledge, contract method and customer understandability of functions or use cases. However, among the abovementioned factors, the most prominent factors that highly affect the customer involvement and affect each others are customer fearfulness, customer location, customer knowledge, customer role and characteristics, customer competency, customer decision making. Specifying the exact problems considering the prominent factors can be as the following: a) Customer role, customer knowledge, customer location, customer decision making, customer fearfulness and customer competency are not isolated factors since they are not affecting the customer involvement only but affecting each other. For instance, knowledge and decision making are not exist in isolation but strongly related; without customer knowledge the customer decision making will have no value and without customer decision making the knowledge will have no value as well. b) The root of around 60 percent of projects faults were caused by not having wellorganized customer communication especially when the customer location is not on-site (Morkala et al., 2006; Williams et al., 2007). Moreover, even if the customer is available on-site, one of his/her roles is to keep regular communication and contact with the end-user to be able to accomplish their requirements (Deursen, 2001; Mohammadi, 2008; Hoda et al., 2011). Therefore, appropriate communication method using new technologies is an important research area that should be considered when the customer is not on-site or when it is necessary for the customer to communicate with the end-users or the top management while he/she is available on-site. Adding altogether, since Agile manifesto insisted on satisfying the customer through early and continuous delivery of valuable software and the customer must be involved in developing the project, the factors that has a direct

18

impact which are customer satisfaction, customer collaboration and customer commitment must be understood well to be solved accordingly (Chow & Cao, 2008; Grisham and Perry, 2005; Misra et al., 2009). c) End-users are not providing the requirements or played the customers role, while they can be the best in providing the requirements (Martin et al., 2004; Robinson & Sharp, 2003; Robinson & Sharp, 2005). However, following Agile method, the customer must have the ability to replace the end-users of the organization considering the operational level, management level and executive level. This is absolutely difficult especially when one customer provides all the story cards, they cannot remember their decision and most of the time they will be full of doubt in providing a decision of what they wants (Fraser et al., 2004; Martin et al., 2004). Moreover, for large projects, one customer is insufficient to provide all the story cards plan the product backlog, plan the sprint, clarify the backlog items, direct the project, make fast decision and prioritize the product backlog (Lowery and Evans, 2007). d) Story cards which provided by the customer at the early stage of the development are insufficient especially when it comes to organize and manage complex and ambiguous stories and when developing a themes (Lowery and Evans, 2007). After implementing each and every sprint/iteration of the system, customer will not be satisfied and disagree almost 60 percent of how the iteration is implemented. However, once he/she explain and clarify the user stories, it will be understood that the developers did not understand the story cards as how the customer meant them (Lowery and Evans, 2007; Hoda et al., 2010). In conclusion, in order to get a tangible feedback, it is very important to contact the end users who can provide detailed information about the business value (Kautz, 2009). e) Customer role must be delivered and taught for the new customer in a professional manner since they will be the requirements providers, testers, salesperson, product manager and sometime a project manager. Customer cannot tolerate pair programming and programmers do not support the idea of having the customer on-

19

site all the time. It was found that having the customer on-site is disturbing the developers but the customers involvement is indeed needed in the project development (Lowery and Evans, 2007; Hoda et al., 2010). Referring to the Agile manifesto, customer involvement is a must in system development phase (Alliance, 2001). Applying Agile methods and referring to the abovementioned problems, there is a need to understand customers behaviors and actions especially when considering all the aforementioned factors in order to provide a suitable environment that help the customer providing the requirements and the feedback easily.

Research Objectives 1. To investigate the current factors and propose new factors that affecting customer involvement. 2. To develop a framework which consist of all the prominent factors 3. To investigate the available solutions of solving customer involvement problems. 4. To investigate the new technologies, techniques and tools that can enhance customersdevelopers communication. 5. To implement a standard prototype using appropriate technologies, tools and methods to solve the customer involvement problems

Research Questions 1. What are the crucial factors that will have an impact in customer involvement? 2. What are the identified factors that have direct and indirect impact on customer involvement? 3. How to enhance the most appropriate (available) solutions that been used in solving customer involvements problems?

20

4. Why social network using mobile applications and what are the suitable tools and techniques that enhance customers/developers communication using mobile application. 5. Is implementing a standard prototype to solve the customer involvement problem using mobile application value as a collaboration environment?

Research Methodology:

Enhance Based on Experts Feedback

4 1 Investigating the customer Involvement problems


Review Concepts

Hypotheses Testing

R
2 Suggested Model
Define Initial Research Problem Identifying Initial Research Model

Design the Interview Questions

3
Formulate Research Hypotheses Conducting Interview Collecting Data

Review Previous work

Analyzing Data

7 9
Conclusion

8
Evaluation

6
In-depth Literature

5
Research Model (Framework)

Empirical Study
(Observation & JAD)

R: Redefine the research problem based on the identified prominent factors from the experts.
21

Investigating the customer Involvement problems Investigating the customer involvement problem phase will be conducted in three steps. First step is to understand the concept of Agile methods focusing on the customer involvement factor since it is the most important factor that affects the system development. Following the first step, the researcher will review the previous work to obtain the available information on customer involvement so that the researcher could identify the gab and define the initial research problem accordingly. Suggested Model Based on the first phase and the initial research problem, the researcher will identify the prominent factors that affecting the customer involvement and based on them, the initial research model will be identified. Formulate Research Hypotheses Based on the initial research model, the researcher will formulate the hypotheses for each and every factor that affecting the customer involvement. Hypotheses Testing In this phase, the researcher is going to test the hypotheses. First of all, Agile experts interviewees (for instance, project managers, programmers, system analysts, SCRUM master and competent customer) will be selected and the interview questions will be designed based on the hypotheses (Combination of qualitative and quantitative approach). After that, the researcher is going to inform the interviewees about the main topics and factors that will be discussed, so they can prepare and structured their thoughts. Afterward, the researcher will conduct the interview starting by explaining the reasons of conducting the interview, the reasons behind selecting the interviewees and then start asking closed-ended and open-ended questions following the initial plan. The interview will be recorded, transcribed and probing questions will be asked in case the researcher does not understand anything. Moreover, enough time will be given for the interviewee to ask questions
22

or provide suggestions about other factors that he/she thinks are important but was not part of the interview. In addition, the researcher is going to ask the interviewee about other experts in the field. The interview report will be provided for the interviewee with a gentle request to read, clarify and update it. At the end, all the interviews reports will be analyzed using Atlas software. Based on the result of the analysis, the initial research model will be enhanced and the research problem will be modified. Moreover, the result will be anonymously sent for the same experts/interviewees. [The description on interview protocol and informed consent form will be included before the interview] Research Model (Framework) Based on the result of Agile experts about the prominent factors, the research framework will be identified. In-depth Literature Review At this stage, the researcher will analyze the literature on the latest development in Agile methods and check whether new factors arises and if there is available solutions for the elicited factors. So, they can be used in developing the social network prototype. Empirical Study At this stage, all the factors that were identified in the research framework will be used to develop social network using mobile application. Researcher will design and implement the prototype following XP methodology, SCRUM methodology or Hybrid methodology as required following the identified framework. Evaluation At this stage, the prototype will be provided for Agile users to ease the communication with customer, so they need to interact with it and fill a questionnaire which will be designed to test

23

the accepted hypotheses. Moreover, they need to check weather new features or tools can be added to enhance the social network. Conclusion: The result will be described and documented and there will be a direction for the future work based on the limitation of the researchers work.

24

Suggested Model/Framework: Organizational factors (Collaboration, Commitment and Satisfaction factors) that affect the project success directly were studied and approved to have direct impact on the success of the project (Misra et al., 2009). However, there are many factors that affect the abovementioned factors. Fig. 1.6 is the Initial framework based on the organizational and customers factors while the list of the factors is shown by the hypothesized customers project success factors in Fig. 1.7

Processes Using Mobile Social Network


Customer Selection Based on Experts priorities in regard to:
Customer Competence Customer Knowledge Customer decision making Customer role and characteristics Customer fearfulness Customer location

Customers Factors
Customer Competence Customer Knowledge Customer decision making Customer role and characteristics Customer fearfulness Customer location

Identifying the prominent factors


The prominent factors that customer does not have will be identified.

Final Product
Collaborative and committed customers must be satisfied

Tools, Strategies and/or Hybrid Method as needed


Use the suitable mobile tools, strategies or hybrid method based on customers lacks out of the prominent factors. So, appropriate solution will be provided for each and every prominent factor.

Fig.1.6 Initial framework

25

Customer Location Implementing a successful project by using Agile methods required customer presence (Agile Manifesto). Customer presence was understood to be 100 present on-site sitting with the developers but after conducting empirical study the result showed that customer must be involved but not necessarily all the time (Koskela&Abrahamsson, 2004). So, in both cases, customer must be involved. Moreover, to implement the system successfully using Agile methods, the customer must be very closed to the developer (Beck & Andres, 2004; Martin et al., 2003), but due to some circumstances customer will not be able to participate especially when there is distance Customer is not on-site, whereas the participants will not thoroughly participate as expected from Agile team and they will not be working with them in the same room which will delay delivering the iterations of the system particularly if the customers play the roles well (Beck, 1999; Beck, 2000; Martin, 2003). Customer Role and Characteristics Customer role refers to weather the customers understands the tasks of what they want now and what they want later. Moreover, be able to provide the requirements on behalf of other customers and users especially for those who cannot be presence. After that, provide the backlog and prioritize the requirements based on the business value of each one of them. At the end be able to test the delivered iteration following their anecdotes and provide a proper feedback to be followed for the second iteration. Therefore, the customer must have the ability to play the role very well (Beck, 2000; Beck & Fowler, 2001). Customer Decision Making Customer decision making refers to weather the customer having full authorization of taking decision about the requirements, each and every projects iteration and the final iteration of the project or not (Salo et al., 2004). Therefore, customer decision making is considered as an important factor which can affect the customer collaboration, commitments and satisfaction. Moreover, this factor might directly affect the customer role since without the having the ability to take decision, the customers will not have the ability to play their roles well.
26

Customer Competency In general, competency is the overall developers experience in developing similar systems in the past and having high capacity to testify excellent communication skills (Lindvall et al., 2002). One of the main principles of using Agile methods is that developers must be experts in developing projects (Dennis et al., 2010) and competency of the Agile team members meant to deliver the system following the customers requirements, not only in a short time (Misra et al., 2009). Customers or customer surrogates are not at the fringes of software development using Agile methods and they consider as being part of the team who guided the growth of the systems or the product (Dings et al., 2012). Therefore, Customer competency which refers to weather the customers has experience or involved in developing similar systems using Agile method is highly crucial and must be considered when selecting the customers or their surrogate. Customer fearfulness Customer fearfulness became very important factor that affect the customer collaboration and commitment. Moreover, most of the customer will have fear and will not be satisfied to be involved in developing a project using Agile. The main reason behind that is the sentence fail in a short time (Shore & Warden, 2007), which is really difficult to be accepted especially when the customer feels that they will be the main reason behind system failure. Therefore, Customer doesnt like to be involved and they cannot accept to be fully responsible when they provide their stories. On the other hand, Customer fearfulness are increasing while Agile teams fears are decreasing by getting experience from the previous projects, so they expects that customers will be the same and they will provide the requirements easily without fears. Customer Knowledge Knowledgeable customer refers to whether the customer understands the requirements of the end-users in the organization along with the information artifacts available within the corporation and outside the corporation.

27

Customer Collaboration Collaboration is a closed communication within development team, with the customer, with end-users and with business managers (Mishra et al., 2012). Therefore, throwing away the words Customers or end-users and considers them as a part of the development team is highly encouraged, this simply means that customer is not an individual but play the main important role once collaborating with the developers, so customers must be trusted as a part of the development team and all the team must listen for them carefully. Same goes for the customer especially when the development team requires their feedback on specific issues. Referring to the Agile manifesto, very high value was given for customer collaboration Customer collaboration over contract negotiation (Alliance, 2001). Face-to-face conversation is the most effective and efficient method of collaboration within the development team and with customers (Alliance, 2001). Thus, customer collaboration means that customer must be closed to the developers starting from the planning phase until delivering the project (Misra et al., 2009). Accordingly, customer collaboration is considered as a prominent factor which highly affects the success and the failure of any project. Customer Satisfaction First principle behind the Agile manifesto is to satisfy the customer through early and continuous delivery of valuable software (Alliance, 2001). Customer satisfaction is considered as one of the main essential requirements which for developing a project successfully (Misra et al., 2009). Delivering the system following the end-users functional and non-functional requirements, within expected budget, on time and without defects or minimum defects are the main necessities to make the customer satisfied (Grisham & Perry, 2005; Sommerville, 2010). Therefore, developers must focus on this centric factor to satisfy the customers as well as the end-users. Customer Commitment Customer satisfaction is making the customer satisfied when they collaborate with the developers while customer commitment is the opposite, which means the customer must make
28

the developers satisfied by being active, vigilant, motivated and responsible by considering themselves as one of the development team. So, if the customers are not committed, they will not collaborate well, even they will not be satisfied. Thus, customer commitment is considered one of the most important factors that affect the success of the system. The above initial framework showed how the problems would be identified and later on how they will be solved. Fig.1.7 showed the interrelated human factors which allied to the customers and have high direct impact on the organizational factors as well as influences and affects each other.

Interrelated Customer Factors


Customer Location
Has highly impact on

Customer Fearfulness H13

Organizational Factors Related to Customer

H01 H02 H03 Customer Decision Making H04 H05 H06 Customer Commitment H2 Customer Collaboration

Direct impact

H1 Project Success (Customer Involvement)

H16 H11 H14 H12 Customer Knowledge H10 H15 Customer Role and Characteristics

H3 H07 H08 H09 Customer Satisfaction

Customer Competency

Fig. 2. Hypothesized customers project success factors

29

H1: The highly customer satisfaction through early and continuous delivery of valuable software, the highly the success of the projectis. a) Do you give high priority to accomplish customer satisfaction b) When the customers are not satisfied, do they provide and prioritized the requirements as expected H2: The highly customer commitment through early and continuous delivery of valuable software, the highly the success of the projectis. a) Do you require committed customer, for instance, they are active, vigilant, motivated and responsible by considering themselves as one of the development team H3: The highly customer collaboration through early and continuous delivery of valuable software, the highly the success of the projectis. a) Is it important for you to have close communication with the customer, with end-users and with business managers,for instance, the customer is closed to you all the time. H01: The distance will have negative direct impact on customer collaboration H01: the more distantly the customers are, the more unlikely the customer would collaborate better. a) It is important for you to haveon-site customer (customer in the same room) to provide the requirements and the feedback. b) When the customers are far, is it difficult for you to get the feedback and the requirements as expected c) When the customers are far, is it difficult for youto contact them through available communication software such as yahoo messenger or Hotmail. d) Have you used any social network viamobile application to communicate with your customer when they are far

30

H02: The distance will have negative direct impact on customer commitment H02: the more distantly the customers are, the more unlikely the customer would be committed. a) During your experience developing any system using Agile method, do you find it important for the customer to be on-site in order to be committed to their project (for instance, they are vigilant, self-motivated and considering themselves to be responsible for the requirements they are providing) b) When the customers are far, getting enough time from them would be difficult. H03: The distance will have negative direct impact on customer satisfaction H03: the more distantly the customers are, the more unlikely the customer will be satisfied. a) When the customer is far, is it difficult for you make them satisfied b) When the customer is far,how will you know whetherhe/she satisfied or not

H04: Poor customer decision making will have negative direct impact on customer collaboration a) When the customer does not have strong decision making, is he/shecollaborate well, for instance, communicate sufficiently with you? Why. b) What techniques, tools or method you use to help the customer to communicate sufficiently. H05: Poor decision making will have negative direct impact on customer commitment a) When the customer does not have strong decision making, is he/she communicate actively, vigilantly, motivationally and responsible by considering him/herself as one of the development team? Why. b) What techniques, tools or method you use to help the customer to be committed. H06: Unknowledgeable customer will have negative direct impact on customer collaboration
31

1. When the customer is unknowledgeable, he/she collaborate well, for instance, communicate closely with you? Why? 2. What techniques, tools or method you use to help unknowledgeable customer to communicate sufficiently. H07: Ill-defined customer role and characteristics will have negative direct impact on customer collaboration 1. When the customer is not clear about his/her roles and characteristics, is he/she collaborating well? Why. 2. What techniques, tools or method you use to help the customer who does not have background about his/her role and characteristics to communicate sufficiently. H08: Ill-defined customer role and characteristics will have negative direct impact on customer commitment 1. When the customer is not clear about his/her roles and characteristics, is he/she going to be committed? Why. 2. What techniques, tools or method you use to help the customer who does not have background about his/her role and characteristics to be committed. H09: Ill-defined customer role and characteristics will have negative direct impact on customer satisfaction 1. When the customer is not clear about his/her roles and characteristics, is he/she going to be satisfied? Why. 2. What techniques, tools or method you use to help the customer who does not have background about his/her role and characteristics to be satisfied. H10: Unknowledgeable Customer will have negative direct impact oncustomer role and characteristics 1. Is it difficult for you to deliver the roles and the characteristics for unknowledgeable customer
32

2. When you deliver the roles for the customer, is he/she going to follow and apply what Agile methods required 3. What techniques, tools or method you use to help unknowledgeable customer to understand the roles and the characteristics well. H11: Unknowledgeable Customer will have negative direct impact on customer decision making 1. When the customer is not knowledgeablebut fully authorized, is he/she able to makefast decision? Why. 2. Is his/her decision helpful? 3. Is unknowledgeable customer having the ability to make fast decision? Why. 4. What techniques, tools or method you use to help unknowledgeable customer making fast decision. H12: Unauthorized customer will have negative direct impact on knowledgeable customer 1. When the customer is not fully authorized but knowledgeable, is he/she able to makefast decision? Why. 2. How the knowledgeable customer react when he/she is not authorized. 3. What techniques, tools or method you use to help unauthorized customer making fast decision. H13: High customer fearfulness will have negative direct impact on customer decision making 1. When the customer is afraid of being involved with you in developing the system, is it easy for him/her to make fast decision? Why. 2. What techniques, tools or method you use to help fearfulness customer making fast decision. H14: low customer competency will have negative direct impact on customer decision making 1. When the customer is not competent (Does not have experience on how to be involved using Agile method), is it easy for him/her to make fast decision? Why.

33

2. What techniques, tools or method you use to help incompetent customer making fast decision. H15: low customer competency will have negative direct impact on customer role and characteristics 1. When the customer is not competent (Does not have experience on how to be involved using Agile method), is it easy for him/her to follow the role and the characteristics as required? Why. 2. What techniques, tools or method you use to help incompetent customer understands the role and characteristics fast. H15: low customer competencywill increase the customer fearfulness 1. When the customer is not competent (Does not have experience on how to be involved using Agile method), is he/she always afraid? Why. 2. What techniques, tools or method you use to help incompetent customer decreasing his/her fear.

34

References Alliance, A. (2001). Agile manifesto.Online at http://www.Agilemanifesto.org Bartsch (2011), S. Practitioners' Perspectives on Security in Agile Development. Paper presented at the Availability, Reliability and Security (ARES), 2011 Sixth International Conference on. Beck, K. (2000).Extreme programming explained: embrace change: Addison-Wesley Professional. Beck, K., & Andres, C. (2004). Extreme programming explained: embrace change: AddisonWesley Professional. Beck, K., Beedle, M., van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., et al. (2001). The Agile manifesto. http://www. Agilemanifesto. org/principles. html. Acessoem, 7(08), 2009. Cerpa, N., & Verner, J. M. (2009). Why did your project fail?. Communications of the ACM, 52(12), 130-134. Chow, T., & Cao, D. B. (2008). A survey study of critical success factors in Agile software projects. Journal of Systems and Software, 81(6), 961-971. Cockburn, A., &Highsmith, J. (2001).Agile software development, the people factor.Computer, 34(11), 131-133. Coram, M., &Bohner, S. (2005). The impact of Agile methods on software project management. Paper presented at the Engineering of Computer-Based Systems, 2005. ECBS'05.12th IEEE International Conference and Workshops on the. Dennis, A., Wixom, B. H., & Roth, R. M. (2010).System analysis and design: Wiley. Dingsyr, T., Nerur, S., Balijepally, V. G., & Moe, N. B. (2012). A decade of Agile methodologies: Towards explaining Agile software development. Journal of Systems and Software. Dominguez, J. (2009). The Curious Case of the CHAOS Report 2009.Project Smart. Dyba, T., &Dingsoyr, T. (2008). Empirical studies of Agile software development: A systematic review. Information and Software Technology, 50(9-10), 833-859. Finsterwalder, M. (2001). Does XP need a professional Customer? Paper presented at the XP2001 Workshop on customer involvement. Fraser, S., Martin, A., Biddle, R., Hussman, D., Miller, G., Poppendieck, M., et al. (2004).The role of the customer in software development: the XP customer-fad or fashion? Paper presented at the Companion to the 19th annual ACM SIGPLAN conference on Objectoriented programming systems, languages, and applications. Hass, K. B. (2007). The blending of traditional and agile project management. PM world today, 9(5), 1-8. Hanssen, G. K., &Fgri, T. E. (2006).Agile customer engagement: a longitudinal qualitative case study.
35

Hoda, R., Noble, J., & Marshall, S. (2010). The impact of inadequate customer collaboration on self-organizing Agile teams. Information and Software Technology Hoda, R., Noble, J., & Marshall, S. Organizing self-organizing teams. Paper presented at the Proceedings of the 32nd ACM/IEEE International Conference on Software EngineeringVolume 1, New York, NY, USA. pp 285-294. Jeffries, R., Anderson, A., & Hendrickson, C. (2001). Extreme programming installed: AddisonWesley Professional. Kautz, K. (2009). Customer and user involvement in Agile software development. Agile Processes in Software Engineering and Extreme Programming, 168-173. Koskela, J., &Abrahamsson, P. (2004). On-site customer in an xp project: Empirical results from a case study. Software Process Improvement, 1-11. Lowery, M., & Evans, M. (2007).Scaling product ownership. Paper presented at the Agile Conference (AGILE), 2007. Mishra, D., Mishra, A., & Ostrovska, S. (2012). Impact of physical ambiance on communication, collaboration and coordination in Agile software development: An empirical evaluation. Information and Software Technology. Misra, S. C., Kumar, V., & Kumar, U. (2009).Identifying some important success factors in adopting Agile software development practices.Journal of Systems and Software, 82(11), 1869-1890. Nerur, S., Mahapatra, R. K., &Mangalaraj, G. (2005).Challenges of migrating to Agile methodologies.Communications of the ACM, 48(5), 72-78. Robinson, H., & Sharp, H. (2005).The social side of technical practices. Extreme Programming and Agile Processes in Software Engineering, 1342-1344. Rubinstein, D. (2007). Standish group report: Theres less development chaos today. Software Development Times, 1. Rumpe, B., & Schroder, A. (2002).Quantitative survey on extreme programming projects. Paper presented at the Third International Conference on Extreme Programming and Flexible Processes in Software Engineering, XP2002, May. Sommerville, I. (2007). Software engineering. Harlow: Addison-Wesley. Trilling, B., &Fadel, C. (2009).21st century skills: Learning for life in our times (Vol. 1): JosseyBass Inc Pub. Wang, X., Wu, Z., & Zhao, M. (2008).The Relationship between developers and customers in Agile methodology. Hoda, R., Noble, J., & Marshall, S. (2010). The impact of inadequate customer collaboration on self-organizing Agile teams. Information and Software Technology, pp 285-294. Martin, A., Noble, J., & Biddle, R. (2003).Being Jane Malkovich: A look into the world of an XP customer.Extreme Programming and Agile Processes in Software Engineering, 10121012.
36

Misra, S. C., Kumar, V., & Kumar, U. (2009).Identifying some important success factors in adopting Agile software development practices. Journal of Systems and Software, 82(11), 1869-1890. Paulk, M. C. (2002). Agile methodologies and process discipline. Institute for Software Research, 3. Williams, M., Packlick, J., Bellubbi, R., & Coburn, S. (2007). How We Made Onsite Customer Work-An Extreme Success Story. In Agile Conference (AGILE), 2007 (pp. 334-338). IEEE.

37

Appendix
These Questions will be added with the previous question. What is your role when implementing any project using Agile method? When did you start using Agile method? What was the method you were using before migrating to Agile method? What was the reason that convinced you to migrate to use Agile Method? After migrating to Agile Method, did you face a lot of disadvantages? What are the difficulties that you face with the customer when they involved? What are the main disadvantages that related to customer? Are you implementing any project using Agile method currently? When are you going to finish implementing it? May I join and observe? Do you advise other developers to migrate to use Agile method? Would you like to provide any suggestion or improvement that could help to improve the effectiveness of Agile method? Do you suggest anything specifically for improving customer involvement?

38

You might also like