Paper Title (use style: paper title)

2 downloads 3656 Views 571KB Size Report
paper will discuss the influence humans in collaborative software development teams, especially in construction phase. (coding & testing). The model proposed ...
Collaborative Model in Construction Phase of Software Tien Fabrianti Kusumasari

Husni Sastramiharja

Information System, School of Industrial Engineering Telkom University Bandung, Indonesia [email protected]

Informatics, School of Electrical Engineering and Informatics Bandung Institute of Technology (ITB) Bandung, Indonesia [email protected]

Kridanto Surendro Informatics, School of Electrical Engineering and Informatics Bandung Institute of Technology (ITB) Bandung, Indonesia [email protected] Abstract— The success of software development projects is still relatively small when compared to others in the field of project success. The quality and speed of software project is highly dependent on the human resource. Therefore in this paper will discuss the improvement of the collaboration model on construction phase of software development in order to obtain the quality of the product (software) better. The method of this collaborative model development is made with the SocioTechnical Systems (STS) approach, which divides a collaborative system into technical system and socio-technical systems that affect each other. The results of this research proposed a collaborative model in construction phase of software and their indicator. Keywords—collaborative software development model; programmer competencies; collaboration model; software collaborative dimension; human behavior; software development method.

I. INTRODUCTION Based on data from the Standish Group reports that the success of software projects is increasing, from 29% in 2004 to 39% in 2012 [1]. According to the Standish Group survey data in 2012 and 2013, the success factor of the project stated that the software is as follows (in order of the most influential): executive management support, user involvement, optimization, skilled resources, project management expertise, agile process, clear business objectives, emotional maturity, execution, tools and infrastructure [1]. [2] and [3] examined the risk of IT (Information Technology) project, each expressed sequence risk factors in software development projects. [2] stated that the first order of risk in software projects is a personnel issue (addressed to: staffing with top talent), job matching, team building, key personnel agreements, and crosstraining. While [3] states that the third factor in the risk of IT projects are "personnel and staffing", that is project or lacks enough staff with the right skill Reviews those. Observations that have been made by [4] stated that the greater number of

Iping Supriana Informatics, School of Electrical Engineering and Informatics Bandung Institute of Technology (ITB) Bandung, Indonesia [email protected] less capable team members, the project will increase the risk of failure. Software development activity such as analysis, design, testing, and coding may be Carried out by different combinations of individuals [5]. Software development usually be done in the team, that relies on the collective skills of its members is because of the scope of the effort, the inherent complexity of the effort, and number of tasks needed to develop [6]. Therefore, in their research, [6] stated the social processes of software development gives 25% contribution to product quality and team performance. The production method (such as software methodologies and automated development tools) did not contribute to the quality products and team performance. Based on the late research, it can be concluded that human factors and collaboration in the development team greatly contributed to the success of a software project. Therefore, this paper will discuss the influence humans in collaborative software development teams, especially in construction phase (coding & testing). The model proposed in this study is an improvement model that has been proposed in previous studies, were conducted by [7], [8], and [9]. II. RELATED WORK A. Collaborative Model Collaboration is a process in which several different people can be a constructive perspective to explore the differences and find a solution that allows to exceed the capabilities of each individual [10]. Collaboration is not just working together but it should give results [11]. Model of collaboration in software development that is proposed in this paper is the result of a series of improvements that have been made of the research in 2011 the first model proposed in this study is a collaboration series of models of software development [7]. The model is the result of collaboration and technology mapping method in each phase of software development. The model was tested with the

observation of software project, the results of the rule of compliance at the source code generated 87.8% (with measurement sonar version 2.5). Collaborative development of software is illustrated in Fig. 1. Communication/Requirement : · Face to face communication · Understanding comprehension · Story card

Deployment : · Communication : face to face · Collaboration tool · Expert : platform and infrastructure

Collaboration of Software Development

Construction : · Collaboration tool · Software configuration management tool · Face to face and virtual communication · Understanding comprehension · Expert : programmer and tester · Automatic testing

Planning : · Face to face communication · Collaboration tool · Understanding comprehension · Expert : domain system, software architecture

Modelling : · User interface design tool · Face to face communication · Virtual communication : chat and email · Coordination tool

Fig. 1 Collaboration Model of Software Development [7]

[12] suggested a proposed a framework for classification and evaluation process in the field of Distributed Software Development and Collaborative Software Development, stated in Collaborative Software Development Framework Analysis. In that collaborative framework classified into 6 dimensions, namely organization distribution, temporal distribution, spatial distribution, process direction, intensity process, and process discipline. Collaboration between programmers in software development consists of four dimensions, namely the spatial distribution, temporal distribution intensity, and process direction [13]. While Collaborative model in the virtual world, covering 5 dimensions of technology, people, processes the information, and leadership [14]. [15] proposed a model of collaboration in software development using the principles of axiomatic design (partnership strategy, collaboration strategy, and software development strategy). Based on research of collaborative model that has been conducted, it can be concluded that the model of collaboration composed of elements of the method / process, technology, and human. Therefore [8] mapped the human behavior in a team of developers to collaborate. They proposed mapping properties of human behavior in a collaborative team of developers, the mastery of technology, communication, interaction, potential, competence, physical and psychological conditions, and the dynamic changes in humans. Then the property is improved based on the behavior of the data some cases, making it the ability to use tools, mastery of symbols, communication skills, ability to interact, potential, competence, physical state, physiological traits / states, and experiences [8]. Then [9] proposed a model of collaboration for the construction phase of software development (coding and testing) associated with software product quality (Fig. 2). Dimensions of collaboration processes in the model include the spatial distribution, temporal distribution, process direction, and intensity. The product quality of software included complexity, documentation, duplications, sizes, and rules of compliance.

Fig. 2 Conceptual Model of Relationship between Human Behavior and Software Quality [9]

[16] conducted a study on the relationship of collaboration in software development teams (called the block, with teamwork quality) with team performance (effectiveness and efficiency-quality-schedule and budget). The study stated that there is a positive correlation between teamwork quality and team performance. While research conducted by [17] stated that mature group development (cohesion, conflict minimum, equilibrium between task and socio-emotional needs, good communication, involvement) positive effect on satisfaction (interaction process and solution). However, mature group had no impact on software quality (functional system, Graphical User Interface, maintenance, cost and benefit). The research conducted by [9] states that there is a positive relationship between human behavior in the process of collaboration in the development team and the quality of the product (source code quality). B. Individual Performance and Teamwork Process of Software Development Human behavior is purposive human reaction to certain situations meaningful [18]. Human behavior has three components that influence each other, that are cognitive, psycho-motor, and socio-affective [18]. The three main approaches in human behavior is human (person), environment, and time [19]. Human behavior in this environment is human behavior in the physical and social environment. One of human behavior in the social environment is human behavior in a group / team. Members of a team must engage in both task work and teamwork processes to achieve reviews their common goal [20]. Individual task work is defined as the components of a team member's performance that do not require interaction with other interdependent team members [21]. In contrast, teamwork is defined as the interdependent components of performance required to effectively coordinate the performance of multiple individuals [21]. Individual performance includes self-knowledge, trust, commitment, and flexibility [20]. Component of team process includes coordination, communication, cohesion, decision making, and conflict management [20]. Process by way of full collocated teams and full distributed a positive influence on the quality of the software (source code quality) generated [9].

Based on research [16], there is a positive correlation between team process on a software team to team performance. Collaboration in a team of developers will provide better project performance compared to the competition in the team [22]. Research of individual performance in software development was conducted by [13]. [13] modeled of the developer performance that can be measured in source code quality, productivity during the development process, and the distribution of competence within the development team. Programmer experience in previous projects contributed positively to the quality of the source code [8].

technologies that assist / facilitate the collaboration process in accordance with the method specified collaboration.

III. METHOD The research method in this study adopted from research framework proposed by [23], which is building the IT artifact. IT artefact in this study is a model of collaboration, which is build based on knowledge is-existing knowledge (knowledge base) that have relation with quality of software development. This collaborative model development based on studies that have been done before, that publish in [7], [8] and improvement of the models on [9]. The collaborative model in this paper is constructed by adopting the SI research framework proposed by [23] and the concept of socio-technical systems. The process of model construction conducted by decomposing the problem (which is the focus) in this study into the social sub-system (human behavior in the team) and sub-systems engineering (technology and methods). Then do the decomposition of each subsystem into variables and determining the relationship between these variables. After defined variables and their relationship, the model which based on the literature and past research has formulated. The result of model is a collaborative model in construction phase of software development. In the early stages of research has been conducted properties mapping of human behavior. That mapping is strong enough to contribute in collaborative software development process, especially in the construction phase. Variables in the subsystem techniques drawn from previous studies that adapted to the problem domain that are the focus of this research. The next process is determining of the relationship and linkages between the variables that have been set and the primary goal of obtaining the source code quality. IV. COLLABORATIVE MODEL IN CONSTRUCTION PHASE OF SOFTWARE

The collaborative system of development team in a fairly complex concept is analyzed with STSD, which divides the team collaboration systems into two subsystems, namely the social and technical [24]; [25]; [26]. Social subsystem is the human interaction with machines and environmental aspects of the development team [27]. The technical subsystem is a set of tools within the organization, which is identified with the process that is responsible for the conversion of the system inputs into system outputs [25]. Based on the understanding of this collaborative model, a social sub-system is expressed as a component of human behavior in interaction with its environment (objects and people). The technical subsystem, expressed as the methods used in conducting and collaboration

Fig. 3 Collaborative model in construction phase of software

Mapping properties of human behavior have been improved in this research from research result of the [8] and [9]. This model has nine properties of human behavior in collaboration of software development. The human behavior properties are ability to use the technology, the capability to master programming language, ability of used the communication media, interaction, knowledge and processing information, age, gender, psychological condition, and human experience. Dimensions of collaboration in software development teams are classified into four layer [12], [13]. The dimension are spatial distribution [12], temporal distribution [13], process direction, intensity [12]. Process direction of collaboration in the construction phase of this research is called the collaborative process, includes pair programming, formal inspection, informal technical review, and code reading [28]. Technology is a means to simplify and accelerate the process of collaboration. Selection of collaborative technologies depends on the dimensions of collaboration that is selected. The quality of software can be viewed from various perspectives, but in this study in terms of the perspective of the product or the source code. The quality of the source code used is cyclomatic complexity, software size (Lines of Code - LOC, classes, methods), duplication, and percent of comments. In this study proposed a model of collaborative team of developers in the construction phase of software called Collaborative models in the construction phase of the software (Fig. 2). V. DISCUSION Person's ability to use the technology (software tool) in the software development process have an impact on the process of collaboration [29], [8]. Individual's expertise in selecting and using tools can accelerate and streamline the process of collaborative development team. The ability of a person to a programming language and a better modeling system will also contribute to the distribution of information within the team

[30], [8]. A person's ability to communicate and interact in a team will contribute to the success of collaboration [16], [31], [32], [33]. Individual performance in a team (such as skills, attitude, and personal characteristic) will determine performance of work team [34]. Individual performance includes selfknowledge, trust, commitment, and flexibility [20]. Individual performance in a team can be a positive and negative effect on the development team collaboration [16]. Individual performance in work teams can be measured from job satisfaction and learning [16]. The Knowledge and skills of software engineers are perhaps the most important factors in determining success of software development [35], [36]. Therefore, individual characteristic in this model are person's ability to interact, skills, and knowledge, that is an important factor in doing all the tasks and to collaborate in a team of developers. Age and gender may affect the person who produced the software, because the resistance will affect a physical ability to work. Particular age range will have a positive impact on the process of collaboration [31]. The gender also contributed to the process of collaboration. Based on research conducted by [31], women tend to have a good ability in listening to others, self-management and tactfulness of men. These three components are very important as a collaborator. However anaesthetized male and forthright bolder than in women, and it is also very important as a collaborator. Dimension of collaboration for construction phase (coding and testing) in software development consists of spatial distribution, temporal distribution, collaboration process, and intensity. The dimensions of this collaboration was adopted from the Collaborative Software Development Analysis Framework [12], which consists of 6 dimensions of collaboration (spatial distribution, temporal distribution, organizational distribution, process direction, process discipline, and process intensity). Collaborative model in construction phase of software development is a model of collaboration in a team that does not take into account dimensions of distribution organization. This model is also only applies to the construction phase of software development (coding and testing), that process of collaboration that occurs in horizontal process (within phase). The success of the collaboration process as measured by mature group development [17] gives a positive impact on improving the quality of the project. Media of communication and interaction method called the spatial distribution and temporal distribution affects the quality of the project development [16], [22], [37], [29]. High intensity will improve the quality of the products result from the collaboration team, because the more frequent exchange of information would give an understanding of the resulting product [38]. Individual performance during the collaboration in the development team is measured by the quality of the work in the form of source code. [13] modeled developer performance that can be measured in source code quality, productivity during the development process, and the distribution of competence within the development team. Source code quality is used as standard in this model, including cyclomatic complexity,

software size (Lines of Code - LOC, classes, methods), duplication, and% comment. If Cyclomatic complexity is excessively high, it leads to Impenetrable code, which is higher risk due to difficulty in comprehension and testing [39]. Software size is measured with a line of code. Counting lines is used for estimating the amount of maintenance required and it can be used to normalize other software metrics [40]. When the code is duplicated it can become harder to change the make changes because one must also be made in all copies [41]. VI. CONCLUTIONS & FUTURE WORK The results of this study is a model of collaboration in the construction phase of software development is “Collaborative Model in construction phase of software development”. The model consists of three components of collaboration (human behavior, methods, and technology) and is built on the basis of the approach STSD. In this model, human behavior components become driver of collaborative process to produce the desired quality of the source code. While technology is a component that depends on the dimensions and technical collaboration set. This model aims to determine the composition of the team in accordance with the methods and technologies are used in order to improve the intrinsic quality of the software (source code quality). At a later stage, Collaborative models in construction phase of the software development must be evaluated to obtain the optimum model. This model can be made a strategy for selecting team members and suitable technology and collaboration dimension for this team. The strategy can be implemented in application software. This strategy software can help to choose the team members on IT project. ACKNOWLEDGMENT The authors thank to the Director General of Higher Education, Ministry of National Education of the Republic of Indonesia for a research grant which has funded this research. The author also would like to thank the Institute of Technology Bandung, which has helped facilitating laboratory space and access to literature. REFERENCES [1]

Standish Group, "The Chaos Manifesto 2013 :Think Big, Act Small," Standish Group International, 2013.

[2]

B. W. Boehm, "Software Risk Management : Principles and Practices," IEEE Software, vol. 8, no. 1, pp. 32-41, 1991.

[3]

D. Tesch, T. J. Kloppenborg and M. N. Frolick, "IT Project Risk Factors : The Project Management Professionals Perspective," Journal of Computer Information Systems, vol. 47, no. 4, pp. 61-69, 2007.

[4]

V. Lalsing, S. Kishnah and S. Puduruth, "People Factors in Agile Software Develpment and Project Management," International Journal of Software Engineering & Aplications (IJSEA), vol. 3, no. 1, pp. 117137, 2012.

[5]

C. Cook and N. Churcher, "Modeling and measuring collaborative software engineering," Darlinghurst, Australia, 2005.

[6]

S. Sawyer and P. Guinan, "Software Development : Processes and Performance," IBM Systems Journal, vol. 37, no. 4, pp. 552-568, 1998.

[7]

T. Kusumasari, I. Supriana, H. Sastramiharja and K. Surendro, "Collaboration Model of Software Developemnt," in Electrical Engineering and Informatics (ICEEI), Bandung, 2011.

[8]

T. Kusumasari, H. Sastramiharja and K. S. I. Surendro, "Human Behavior Factor of Collaborative Software Development (Faktor Perilaku Manusia dalam Kolaborasi Pengembangan Perangkat Lunak)," Mataram, 2013.

[9]

T. F. Kusumasari, I. Supriana, H. Sastramiharja and K. Surendro, "Human Behavior Conceptual Model in Collaborative Software Development Product Quality," in International Conference on Advanced Computer Science and Information Systems (ICACSIS), Bali, 2013.

[26] G. Baxter and I. Sommerville, "Socio-technical systems: From design methods to systems engineering," Journal Interacting with Computers, Vol. 23, Issue 1, pp. 4-17, 2011 . [27] J. Becker, B. Niehaves and C. Janiesch, "Socio-Technical Perspectives on Design Science in IS Research," Information Systems and eBusiness Management, Vol.9, issue 1, pp. 109-131, 2010. [28] S. McConnel, Code Complete : A Practical Handbook of Software Construction, Ed 2, Microsoft Press, 2004.

[10] S. Callahan, M. Schenk and N. White, Building a Collaborative Workspace, Anecdot White Paper, 2008.

[29] J. Tommarello, S. Hiltz, C. Perez, F. Deek and J. Keen, "Collaborative software development : experimental result," in Proc. HICSS’03, 2002.

[11] M. Hansen, "Collaboration - How Leaders Avoid the Traps, Create Unity, and Reap Big Results," 2009. [Online]. Available: http://www.summaries.com/Platinum/Collaboration.pdf. [Accessed 9 January 2013].

[30] P. Abrahamsson, "ITEA homepage on Innovation Report modeling," 2007. [Online]. Available: www.itea2.org/project/result/download/result/5583. [Accessed 16 October 2010].

[12] T. Hildenbrand, R. Rothlauf, M. Geisser, A. Heinzl and T. Kude, "Approach to Collaborative Software Development," in International Conference on Complex, Intelligent and Software Intensive Systems, 2008.

[31] M. Ditkoff, C. Allen and D. Pollard, "The ideal collaborative team," 2005. [Online]. Available: http://www.ideachampions.com/downloads/collaborationresults.pdf.

[13] M. Schwind, A. Schenk and M. Schneider, "A Tool for the Analysis of Social Networks in Collaborative Software Development," Hawaii, 2010. [14] I. Boughzala, G.-J. de Vreede and M. Limayem, "eam Collaboration in Virtual Worlds: Editorial to the Special Issue," Journal of the Association for Information Systems, vol. 13, no. 10, pp. 714-734, 2012. [15] Arsenyan and Büyüközkan, "Modelling Collaborative Software Development Using Axiomatic Design Principles," IAENG International Journal of Computer Science, vol. 36, no. 3, 2009. [16] M. Hoegl and H. G. Gemuenden, "Teamwork Quality and the Success of Innovative Projects: A Theoretical Concept and Empirical Evidence," Organization Science, Vol.12, No.12, pp. 435-449, 2010. [17] R. J. Ocker, "The relationship between interaction, group development, and outcome : a study of virtual communication," in Proc.IEEE HICSS’01, 2001. [18] U. Dompke, "Human Behavior Representation : Definition, Presentasi pada RTO SAS Lecture Series on Simulation of and for Military Decision Making, II-1 –II-12," 2001. [19] E. Hutchison, "Dimension of Human Behavior : Person and Environment, 4th ed, chapter 1, page 3-35," SAGE Publications, 2007. [20] L. Lo, "Teamwork and Communication in Healthcare a Literature Review," Canadian Patient Safety Institute, Ottawa, 2011.

[32] D. Mishra and A. MIshra, "Effective Communication, Collaboration, and Coordination in eXtreme Programming : Human-centric Perspective in Small Organization," Human Factors and Ergonomics in Manufacturing & Service Industries, Vol.10, Issue 5, pp. 438-456, 2009. [33] Abrahamsson, O. Salo, J. Rokainen and J. Warsta, "VTT homepage on Agile software development method (review and analysis)," 2002. [Online]. Available: http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf. [34] J. Hackman, "The Design of Work Teams," Handbook of Organization Behavior, vol. 1, no. 20, pp. 315-342, 1987. [35] R. T. Turley and J. M. Bieman, "Identifying essential competencies of software engineers," New York, 1994. [36] D. Duka and L. Hribar, "Implementation of software competence development process," Opatija , 2011. [37] H. P. Andres, "A comparison of face-to-face and virtual software development team," Team Performance Management International Journal, vol. 8, Number 1/2, p. 39–48, 2002. [38] Agile Alliance, "Agile Alliance website," 2011. [Online]. Available: http://www.agilealliance.org/the-alliance/the-agile-manifesto/thetwelve-principles-of-agile-software/. [Accessed 2011]. [39] McCabe Software, "McCabe Whitepaper," [Online]. Available: http://www.mccabe.com/pdf/McCabeCodeQualityMetricsOutsourcedDev.pdf. [Accessed 1 April 2014].

[21] E. Salas, N. J. Cooke and M. A. Rosen, "On Teams, Teamwork, and Team Performance: Discoveries and Developments," Human Factors: The Journal of the Human Factors and Ergonomics Society, vol. 50, no. 3, pp. 540-547, 2008.

[40] J. Rosenberg, "Some Misconceptions About Lines of Code," Albuquerque, 1997.

[22] B. Singh and M. Avital, "The Impact of Collaboration and Competition on Project Performance," Montreal, 2007.

[42] T. J. McCabe, "A Complexity Measure," Software Engineering, IEEE Transactions on, vol. 2, no. 4, pp. 308 - 320 , 1976.

[23] A. R. Hevner, S. Ram, S. T. March and J. Park, "Design Science in Information Systems Research," MIS Quarterly Vol. 28 No. 1, pp. 75105, 2004. [24] E. Mumford, "The story of socio-technical design: reflections on its successes, failures and potential," Information Systems Journal, Vol. 16, Issue 4, p. 317–342, 2006. [25] A. Cartelli, "Socio-Technical Theory and Knowledge Construction: Towards New Pedagogical Paradigms?," 2007.

[41] J. Rentrop, "Software Metrics as Benchmarks for Source Code Quality of Software Systems," Universiteit van Amsterdam, Amsterdam, 2006.