given to small and medium sized companies. The present study addresses this limitation, identifies process tailoring operations, key processes of agile based ...
Software Development Process Tailoring For Small and Medium Sized Companies Rehan Akbar, Sohail Safdar
Mohd Fadzil Hassan, *Azrai Abdullah
Faculty of Information and Communication Technology Universiti Tunku Abdul Rahman, Perak campus Kampar, Perak Malaysia
Computer and Information Sciences Department *Management and Humanities Department Universiti Teknologi PETRONAS, Malaysia
Abstract—Software development process tailoring is an emerging practice in today’s IT industry. A limited number of research works have been published in this area. The existing process tailoring approaches describe similar set of operations and do not provide proper guidelines on performing process tailoring. These tailoring approaches mainly focus on large companies and tailor only one or two agile methods instead of providing specific guidelines on tailoring agile based methodologies. Unlike large companies, attention has not been given to small and medium sized companies. The present study addresses this limitation, identifies process tailoring operations, key processes of agile based methodologies and uses them for tailoring processes for small and medium sized companies. Qualitative research methods are used to identify and validate tailoring operations and key processes of agile based methodologies. The results show that performing these tailoring operations to tailor key agile based processes is an effective and applicable process tailoring approach for small and medium sized companies. The outcome of the present study would provide basis for formulating process tailoring framework for small and medium sized companies. Keywords—Agile; Client; Processes; Process tailoring
I.
INTRODUCTION
The process of constructing a new software development process has high risk factor, requires a large number of resources and involves many overheads [1], [2], [3]. Tailoring a software development process improves its performance that ultimately leads to the better quality of the software product with less effort [2]. It also minimizes the risks factor involved in the software development process whereas a good software development process brings stability in the progress of the project. Therefore, process tailoring is an important practice to regenerate, reshape and reuse an existing software development processes for process improvement, smooth progress of the projects and good quality software. Since the beginning of IT globalization, software development practices have been massively shifted from traditional approaches to the lightweight agile based methodologies [4]. On contrary to large software development companies, small and medium sized companies have adopted this process shift rapidly and completely due to the limitations of their resources and suitability to their projects. The
978-1-4799-0059-6/13/$31.00© 2014 IEEE
resources limitations are big hindrance for these small and medium sized companies to follow traditional heavyweight approaches of software development, improvement and standardization such as CMMI [5], ISO [6], Six Sigma [7] and Lean Development [8]. The characteristics of agile methodologies such as shorter iterations, quick releases, adopting changes, less number of processes, no documentation, close team and client interactions [9], [10], [11], [12] have made these methodologies more suitable for the software development environments of small and medium sized companies. Normally these companies use tailored versions of the software development processes. Software development process tailoring is carried out at organizational and project levels [13]. Understanding of organizational standards, processes and projects are necessary for tailoring a software development process at both levels. At project level, process tailoring requires complete understanding of the whole software project, its scope, requirements, project status as well as process or activities to be tailored and expected tailored version of the process. As compared to the benefits of process tailoring, the consequences of bad process tailoring have been found more drastic such as [13]: • The project cost, development time, and software product quality are greatly affected. • Bad tailored process may consist of unnecessary activities eliminating necessary activities leading to an increase in project cost and time wastage. • A version of bad tailored process may not meet the organizational standards. The major effect of bad tailored process may appear on the quality of the process and software product. Therefore, process tailoring is a challenging task for the higher management, project managers and software development companies. A common problem with existing process tailoring approaches is that these provide very shallow guidelines to tailor a software development process. No detailed guidelines on process tailoring have been provided. Limited work has
been presented on tailoring agile based processes [14] where existing work tailors only one or two agile processes instead of providing a specific guideline for tailoring the agile methodologies. The existing process tailoring approaches mostly present similar practices which are inapplicable to varying software development environments of various companies. The existing tailoring approaches tailor a process just at the beginning of the project and use that tailored version of process throughout the project lifecycle [3]. Due to the rapidly changing software development environments, this tailored process may not fulfill the requirements of the project at some later stage during the development. There is the need to tailor a processes at the beginning as well as during the progress of project where required to accommodate the changes in the processes [3], [13]. Another problem with existing tailoring approaches is the focus on large software development companies as compared to the small and medium sized software development companies [13] such that the existing tailoring methodologies do not fulfill the requirements of small and medium sized companies that follow agile based methodologies. The important issues about software process tailoring have been reported in [3] such as: • The existing approaches do not consider project characteristics when process tailoring is carried out. • The limited work presented on process tailoring is of very surface level and does not address agile methodologies properly. • Existing work does not provide guidelines on process tailoring strategies like how to perform tailoring but presents general principles for selected software development methodologies. • No proper guidelines have been provided to the software development team members including project management people to tailor a software development process. Such circumstances show that there is need of a systematic process tailoring framework which is suitable for tailoring agile based software development processes of small and medium sized software development companies [3], [13]. The present study addresses this issue and identifies the process tailoring operations which have been more commonly performed during process tailoring in existing approaches. Moreover, based on the principles of agile methodologies, three key processes of agile methodologies are identified on which more emphasis is given by agile methodologies, client as well as small and medium sized companies. At initial levels, the selected tailoring operations would be performed on the selected three key processes of agile methodologies. The outcome of the present study would help in formulation of the process tailoring framework for small and medium sized companies. The framework formulation is out of scope of this paper.
Qualitative research methodology [17] is followed Xu [3] Add Downsize Drop/Skip Expand Redefine Replace
Welzel et. al [15] Delete Modify
Dai [2]
Yoon [1]
Xu [16]
Adding Deleting Splitting Merging
Addition Deletion Splitting Merging
Addition Deletion Modification
throughout the study to identify and validate the research findings. The outcome of the study presented in this paper is the set of process tailoring activities or operations and three TABLE 1.
PROCESS TAILORING OPERATIONS
key agile based processes that would be tailored through the identified tailoring operations. These two elements are the basic elements that provide basis for tailoring process and formulation of process tailoring framework for small and medium sized companies following agile methodologies. II.
METHODOLOGY
Qualitative research methodology techniques such as study of existing work, structured interviews and open coding techniques [17], [18] are used for the present research work. Tailoring operations are identified from the existing literature, whereas, key process areas of agile based methodologies are identified from the literature as well as derived from the principles of agile manifesto using open coding technique. In open coding technique, common text strings representing same rule or activity were identified among the twelve principles of agile manifesto and specific keywords representing the key process or activity were assigned to those strings. The keywords from each string were then combined to form a string representing the name of the key process such as requirement gathering and resource management. To validate these key processes findings, structured interviews are conducted. The interviews are conducted both from the industry professionals and academic researchers. Qualitative research methodologies are used due to findings based on more realistic data and analysis. Qualitative methodologies provide better understanding of real processes, scenarios and situations to produce more authenticated research findings. III.
PROCESS TAILORING OPERATIONS
Regardless of the importance of the process tailoring approach in software development, limited research work has been presented on this important area of software engineering [13]. Existing work on process tailoring mostly focus on tailoring the software process based on the analysis of past projects as well as tailors mainly selected one or two of the agile methods such as XP. No specific framework has been presented to tailor agile based methodologies especially for small and medium sized companies where projects are based on the agile principles.
Besides, the existing approaches presents similar tailoring operations such as addition, deletion, modification, skip, and downsizing [3], [19], [2]. Table 1 summarizes the prominent process tailoring operations described in the existing work in this area. Add, delete and modify operations have been commonly used in the existing approaches. However, delete and modify operations have been modified in some works as well as replace and downsize have also been used [3]. Furthermore, splitting and merging operations have also been used in different approaches as required. It shows that process tailoring operations can be modified to use according to the requirements of the project and company. In the present study, the existing tailoring operations are used whereas, a few have been modified to use. Mathematical symbols are used to define the legends for these operations. The tailoring operations derived for the present study and their definitions are described as: A. Add(+) Adding one or more processes and/or activities to an existing process. Delete/Skip(-) Deleting one or more forgo processes and/or activities from an existing process. B.
C. Modify(Δ) Updating one or more existing processes and/or activities. D. Split & Select(¬) Dividing a process or activity to one or more smaller processes and/or activities and selecting the suitable and required one. E. Merge(⊻) Joining two or more processes and/or activities into a process based on their definition and application. F. Shrink(⋈) Reducing the number of steps to perform a process and/or activity. G. Wrap up(⊕) Closing the processes and/or activities in progress at the time of project closure. IV.
KEY PROCESSES OF AGILE METHODS
Agile based methodologies being considered as lightweight approaches for software development emphasize on a few key processes during software development. On the other hand, client being directly involved in agile based development projects, is also concerned with processes such as resource management, requirement management, communication & interaction, and tasks management. These
processes are very important for project success [20], [3], [21], [22], [23], [24] and are challenging tasks for project managers. These key processes are selected being the challenging process areas for small and medium sized software development companies. Their selection is made based on focus on these areas in principles of agile methodologies [11], [25]. The same processes are also derived from agile principles using open coding technique [17], [26] as described in section II. It shows that requirement management, resources management, communication & interaction, and tasks management are the key process in agile methodologies that need to be focused during software development. Due to this reason, these processes have been selected to perform tailoring in these process areas. The objective to refine these key processes through process tailoring is to achieve the satisfaction of client which is emphasized in the first principle of agile manifesto and is important for small and medium sized companies. In agile methodologies, the communication between client and project team is an informal process [4]. Essentially, a properly managed communication channel is important to be established. Unambiguous requirements, smooth communication and project resources have also been considered important for project success such that their frequency in literature has been reported as 60.5%, 46.5% and 25.6% respectively which are relatively higher than other factors [21]. It has also been reported that communication and coordination between client and project team affects the progress of the project therefore, emphasis has been given on further investigations on this important process [20]. As derived from the agile principles, adapted from [3] and identified from existing literatures, following are the key processes on which agile based methodologies emphasize more and are part of proposed process tailoring approach: a) Resource management b) Communication c) Requirement management i. Requirement gathering & tracking ii. Tasks allocation Tasks allocation is an important part of team management process which is directly related to the requirement management process. Therefore, it has been placed as subcategory under requirement management process. These processes are very important for the progress of the projects following agile based methodologies. Good and strong processes can ensure satisfaction of client and smooth progress of the project in small and medium sized companies. These processes have significant role in fulfilling the client’s expectations, requirements, and understanding client’s perspective. As these processes are directly associated with client’s perspective therefore, are very important for small and medium sized companies following agile based methodologies. Process tailoring operations and key processes identified in the present study and presented in this paper are the two main
Categories
Elements/Components Yes
Key Processes
Process Tailoring
Resource management, Communication, and Requirement management Requirement management - Tasks allocation, requirement gathering and tracking. Small and medium sized companies Project’s requirements, and client requirements and expectations
7
7
Answer (n=9) No Agreed Percentage 2 77.8%
2
77.8%
Average: 9 0
77.8% 100%
9
0
100%
Average:
100%
elements of the forthcoming proposed process tailoring framework. The present study recommends tailoring these key processes according to the requirements of the project and project client. What tailoring operations should be carried out is the outcome of the present study. V.
TABLE 2.
Table 2 shows the summary of the results of structured interviews. The result show that 77.8% respondents have agreed that resource management process, communication process and requirement management process are the most important and key processes of agile based methodologies on which process tailoring should be carried out. A project client is also concerned about these processes because of these processes being directly related to him/her. An overwhelming 100% response of the experts shows that process tailoring should be performed based on the project requirements and client factor. Similarly 100% experts have fully agreed on tailoring process for small and medium sized companies. The results show that software development process tailoring is an important process for small and medium sized companies. Processes should be tailored based on the project requirements and client requirements. In case of agile based methodologies, it is necessary to tailor the three key processes instead of all the processes. CONCLUSION
Software process tailoring is an important and necessary process for small and medium sized companies. These
FINDINGS OF INTERVIEWS
For small and medium sized companies, process tailoring is the solution of their issues related to the processes. The process tailoring operations and key processes presented in this paper provide more realistic approach for tailoring agile based processes for small and medium sized companies. Tailoring only three key processes make this approach more realistic, smart and efficient. The findings of the present study provide guidelines on tailoring agile based processes. The present study recommends tailoring agile based processes based on the principles of agile manifesto and agile characteristics. This makes this approach more applicable and suitable for the software development environments of small and medium sized companies following agile methodologies. The proposed approach of performing tailoring operations on three key process areas make it more specific and applicable for agile based methodologies.
RESULTS
Structured interviews are conducted to validate the findings of the present study. Total 9 interviews are conducted from different small and medium sized companies following agile based methodologies. The respondents include team members such as senior software engineer, principal software engineer, product manager, developers as well as from academics. The responses during the interviews were recorded on scale of yes or no. This approach has been used due to the time constraints, deadlines and busy schedules of the respondents as well as to get fast response.
VI.
companies can improve their processes or reuse existing processes according to their requirements after modifying them with less effort.
References [1]
[2]
[3] [4] [5]
[6] [7]
[8] [9]
I.-C. Yoon, et al., "Tailoring and Verifying Software Process," Proceedings of the 8th Asia-Pacific Software Engineering Conference, pp. 202-209, 2001. F. Dai and T. Li, "Tailoring Software Evolution Process," 8th ACIS International Conference on Software Engineering, Artifical Intelligence, Networking and Parallel/Distributing Computing, pp. 782-787, 2007. P. Xu and B. Ramesh, "Using Process Tailoring to Manage Software Development Challenges," IEEE Computer Society ITPro, 2008. S. Nerur, et al., "Challenges of Migrating to Agile Methodologies," Communications of the ACM, vol. 48, pp. 73-78, 2005. "CMMI Development Team, Capability Maturity Model - Integrated Version 1.1, Software Engineering Institue " Available: http://www.sei.cmu.edu/cmmi/, 2001. "International Organization for Standardization, ISO Standard 9001: Quality Management Systems," 2000. M. J. Harry and R. Schroeder, "Six Sigma: The Breakthrough Management Strategy Revolutionizing the World’s Top Corporations," Crown Publishing Group, 2006. M. Poppendieck and T. Poppendieck, "Lean Software Development An Agile Toolkit," Addison-Wesley., 2003. J. Highsmith and A. Cockburn, "Agile Software Development: The Business of Innovation," IEEE Computer, vol. 34, pp. 120-127, 2001.
[10] [11] [12]
[13] [14]
[15]
[16]
B. Boehm, "Get Ready for Agile Methods, with Care," Computer, vol. 35, pp. 64-69, 2002. "Principles Behind the Agile Manifesto Agile Alliance," Available: http://agilemanifesto.org/principles.html, 2001. C. Ferreira and J. Cohen, "Agile Systems Development and Stakeholder Satisfaction: A South African Empirical Study," Proceedings of SAICSIT'08, pp. 48-55, 2008. O. Pedreira, et al., "A Systematic Review of Software Process Tailoring " ACM SIGSOFT Software Engineering Notes, vol. 32, 2007. E. Hossain, et al., "Towards an Understanding of Tailoring Scrum in Global Software Development: A Multi-case Study," 2011 International Conference on Software and System Process, pp. 110-119, 2011. D. Welzel, et al., "Tailoring and Conformance Testing of Software Processes: The ProcePT Approach," presented at the Proceedings of the 2nd IEEE Software Engineering Standards Symposium, 1995. P. Xu and B. Ramesh, "A Tool For the Capture and Use of Process Knowledge in Process Tailoring," Proceedings of the 36th Hawaii International Conference on System Sciences (HICSS’03), 2003.
[17]
[18]
[19] [20]
[21]
[22] [23]
[24] [25]
C. B. Seaman, "Qualitative Methods in Empirical Studies of Software Engineering," IEEE Transactions on Software Engineering, vol. 25, pp. 557-572, July/August 1999. P. Runeson and M. Host, "Guideline for Conducting and Reporting Case Study Research in Software Engineering," Empirical Software Engineering, vol. 14, pp. 131-164, 2009. M. Mirakhorli, et al., "RDP Technique: a Practice to Customize XP," APSO'08, Leipzig, Germany, 2008. A. Gopal, et al., "The Role of Software Processes and Communication in Offshore Software Development," Communications of the ACM, vol. 45 pp. 193-199, 2002. M. H. N. Nasir and S. Sahibuddin, "Critical Success Factors for Software Projects: A Comaprative Study," Scientific Research and Essays, vol. 6, pp. 21742186, 18 May 2011. J. S. Reel, "Critical Success Factors in Software Projects," IEEE Software, vol. 16, pp. 18-23, 1999. N. Ramasubbu and R. K. Balan, "Towards Governance Schemes for Distributed Software Development Projects," SDG’08, May 12, 2008, Leipzig, Germany., 2008. J. Aiken, "Technical and Human Perspective on Pair Programming," ACM SIGSOFT Software Engineering Notes, vol. Volume 29 Number 5, 2004. D. Turk, et al., "Limitations of Agile Software Processes," Proceedings of 3rd International Conference on eXtreme Programming and Agile Processes in Software Engineering, ACM, USA, 2002.
[26]
U. Flick, "An Introduction to Qualitative Research," Sage Publications Ltd. London, vol. 4th Ed., 2009.