A Collaborative-Interaction Model of Software Project Development An Extension to Agile Based Methodologies

Size: px
Start display at page:

Download "A Collaborative-Interaction Model of Software Project Development An Extension to Agile Based Methodologies"

Transcription

1 A Collaborative-Interaction Model of Software Project Development An Extension to Agile Based Methodologies Rehan Akbar #1, Mohd Fadzil Hassan #2 Department of Computer and Information Sciences Universiti Teknologi PETRONAS, Malaysia. 1 rehankb@yahoo.com, 2 mfadzil_hassan@petronas.com.my Abstract-Interaction among team resources during software development is an important aspect of a software project. The success and growth of a project mainly depends upon how effective interaction and coordination exists among all the team resources and client of a project. The importance of having a good interaction with client during software development process is acknowledged, however, very limited research work has been attempted to study this aspect. This paper presents the process of the development of an interaction overview model that describes all important aspects that should take place during the software development life cycle. A composite structure of client is also presented in the paper which becomes the basis for the interaction overview model. The research focuses on the proposed interaction model which is derived from the analysis of various projects outsourced to offshore teams. The interaction overview model suggests an extension to agile based methodologies. To the best of our knowledge, it is the first model of client-oriented interaction to be proposed within this context. Keywords-Agile; Collaboration; Client; Interaction. I. INTRODUCTION Interaction strategies among team resources become more important when light weight agile methodologies [13],[14],[16] are in practice. Project outsourcing to offshore teams has emerged as a latest trend in global IT industry with some benefits and limitations [2]. It has promoted the distributed team structure. Distributed teams, referred as virtual teams in literature, irrespective of their geographical location, present many complex challenges to their practitioners [11]. Unlike traditional approaches, characteristics of agile methodologies [16], provides more support for the development of outsourced projects. Inspite of its benefits, agile model has limitations for the distributed software development process [3]. Much debate has been going on the various aspects of agile based methodologies like requirement and analysis stages, people factor and process tailoring [4], [5], [20]. For the first time research works in [7], [8] have presented a client-based supportive model for distributed agile based practices along with requirement management procedure. Client is also considered a part of the team. Fast paced development, quick and short iterative cycles, collaborative decision making and feedback of agile methodologies demands the close interaction and coordination among the team resources [9]. In fact agile manifesto recommends early involvement of customer in the development process [13]. Popular agile methodologies like XP, Scrum, Pair Programming and TDD though incorporate client factors like interactive development and short iterations, but none describes the client based interaction mechanism. This paper addresses this limitation of agile methodologies for distributed software development environment and offshore teams. In our model client is considered as an important indicator that determines the project growth and success. Both composite client structure and interaction overview model presented in section II and III respectively are an extension to agile methodologies. The development processes must meet the requirements of the client otherwise it remains underutilized [1]. Our interaction overview model sketches the basic structure of interaction among key resources/roles of a software development team. Based on the composite structure, client based interaction sequence structure is described and an interaction overview model is derived. The models are derived from the analysis of real outsourced software projects and existing approaches. All the findings are based on real practices adopted by various teams working on real projects. True representation of client and interaction among team resources are made in this research. Client based modeling is a niche area related to IT industry and software projects. It would be a milestone achievement in overcoming IT industry dilemma. II. CLIENT S COMPOSITE STRUCTURE Client s composite structure diagram is a model based on client s roles. At the client side mainly, four entities labeled as CEO, project manager, technical manager and project team exist as described in figure 1. Roles of project manager and project team are not mandatory at the client side. CEO is the actual client and may have none or one technical manager and/or project manager as its subordinate. CEO might be technical or non-technical itself. The existence of project manager usually depends on the existence of project team. The existence of project team at the client side is purely on a need based and does not exist in all cases. One project usually has one team. Technical manager is not dependent on the existence of project team and interacts with offshore team on technical matters and with local team when there is one. This complexity is clarified through notes in model diagram as described in figure 1. Client as a single entity aggregating all the roles is represented through outer rectangle in figure 1. Irrespective of the nomenclature each role is considered as a client by team members and holds equal importance in its domain for them /10/$ IEEE

2 Figure 2. Interaction Overview Model Figure 1. Client Composite Structure III. INTERACTION OVERVIEW MODEL Business management group has already realized the importance of client as a critical success factor. Client needs to be understood and given foremost priority by the managers [12]. Unlike requirements of client, client based processes are rarely addressed and are not considered important for client s satisfaction. Besides functional, non-functional attributes like security, stability, usability and high performance are also important for customer s satisfaction and business success [21]. Client mainly interacts with four roles in an offshore project team. Figure 2 presents the basic structure of interaction between client and other roles in offshore team. In this model client is also considered an important part of the team due to its very close and frequent interaction. Client mainly interacts with the project manager (PM) of the team and secondly with technical lead/team lead (Tech lead) of the team. The interaction is accomplished as a two way communication. Project plan is discussed and updated both by project manager and tech lead in their respective capacity. Project manager leads the team and manages all of their technical, non technical issues and resources. There is a direct interaction between project manager, technical lead, team members and client. Tech lead more or less plays the same role but on technical aspects only. Interaction between client and other team members like developers, designers and QA engineers was minimal and indirect. Client s involvement in the software projects is maintained throughout the project in each phase and activities (Figure 3 & 4) [10]. In figure 3 incremental and iterative approach of software development is used. One complete round represent an iteration that consists of builds and each build contain software development phases and their respective activities. Each build is delivered when it is approved and accepted by the client. Processes and activities are managed according to the requirements of the client instead of following some standardized approach. Client s involvement throughout the project is considered necessary. Understanding of the client, behavior of the client and predicting the client are the fundamental elements of the model. Figure 3. The Spider Web Model [10] Figure 4. Cross Section View [10] These factors are identified as cognitive learning process [22]. Figure 4 describes the activities of figure 3 through vertical cross section for clearer and better understanding of each phase. For client based practices emphasis is given to the frequent communication in close collaboration with the client but interaction methodology is not described. The model presented in figure 2 is a primary structure of collaborative interaction among the main roles involved in a project team. The details are presented by sequence diagram and interaction overview diagram in figure 5 and figure 6 respectively. IV. INTERACTION OVERVIEW PARADIGM Interaction sequence diagram of figure 5 and interaction overview diagram of figure 6 both are elaborations of

3 figure 2. Each activity in the interaction overview structure of figure 6 is represented through separate fragments. Four objects namely CLIENT, PROJECT MANAGER (PM), TECHNICAL LEAD (Tech lead) and MEMBERS like developers (devs), designers and QA engineers as identified in figure 2 are identified. Developers are considered as one of the members of the offshore team. Client generates the initial request for a new project to the project manager along with initial requirements and requests for a meeting. Meeting request from project manager to the tech lead and to the devs is then made. The meeting is confirmed. During the meeting, complete project plan, schedule, functionality list and scope of the project are discussed and agreed upon. After the meeting is closed the functionality specifications, tasks for devs, and priorities of the tasks are decided between project manager and tech lead. In another session with the client, project manager and tech lead decide on the final plan of the project and an updated version is shared with the client. Final plan is approved by the client and tasks are allocated to the team members to start implementation. Modifications in requirements, schedule and plan are continuously made by the client as well as project manager and technical lead of the team based on the issues faced and client s revised requirements. Figure 5 Interaction Sequence

4 Figure 6. Client Interaction Overview Model

5 Updating plan and reprioritizations are made on regular basis. Modifications and plan updates are made untill the projects ended in parallel to the other activities represented by a box labeled par in figure 5. These are the compulsory part of the project life cycle. The roles of technical lead (TechLead) and project manager (PM) at client side are created after the approval of project plan and modifications in plan if necessary as described in figure 5. Their existence at the initial stages of a project is not necessary and is dependent on technical expertise of client, project scope and project type. In the interaction overview structure of figure 6, the guard condition messages of figure 5 are taken out to be connected with each fragment with small modifications. All the activities highlight the collaboration and interaction between client and software team at meta-level. Each interaction activity is described as a primary level activity. Each activity has several sub-activities that are mandatory part of the software development but are not elaborated in the model. The model is a meta-model of collaborative interaction scheme. V. CONCLUSION Successful progress and success of software projects are completely based on 1) organized collaboration and 2) effective interaction among all team resources (workers). Organized collaboration among all resources is mandatory. In the proposed model client is realized as the most important entity of a project and all interaction and communication methodologies must account client as the basic key role. Traditional and agile approaches of software engineering do not take care of this aspect of software development. Analysis on various agile methodologies reveals that though interactive processes have been proposed but no formal interaction methodology has been introduced. People factor and customer are considered as important roles but no clientbased model is described by either traditional approaches or agile methodologies. Collaboration, interaction and coordination are ignored as major importance is solely given on the results and completion of each phase. The interaction structure that we have presented in our model realizes the importance of collaborative interaction and is an extension to agile methodologies. VI. FUTURE WORK We have provided a foundation structure of client based interaction methodology. Besides main roles that we have identified other roles and sub-activities also exists. Identification of roles like QA engineer, Graphic designer, Product manager, QA manager and their interaction approaches would be future enhancements of this model. The interaction mechanism can also be modeled through alternative workflows as adopted in [15], [18]. Derivation of alternate interaction paths would also be possible through variations of shortest path algorithms [6], [17], [19]. Scaling the model to traditional software development approaches is another direction for extending these models. An unidentified and neglected aspect of software development has been focused in this research. It would open new realistic and industry related research directions both for academic researchers and industry practitioners. REFERENCES [1] J.M. Fernandes and F.J. Duarte, A Reference Framework for Process-oriented Software Development Organizations, Proceedings of OOPSLA 2003, Published in Software and System Models, 2005, Springer-Verlag. [2] N.M. Rao, Challenges in Execution of Outsourcing Contracts, Proceedings of ACM ISEC 09, 2009, Pune, India. [3] D. Turk, R. France and B. Rumpe, Limitations of Agile Software Processes, [4] G.B. Wills, N. Abbas, R. Chandrasekharan, R.M. Crowder, L, Gilbert, Y. Howard, D.E. Millard, S.C. Wong and R. J. Walters, An Agile Hypertext Design Methodology, Proceedings of HT 07, 2007, England, UK, ACM. [5] A.Cockburn and J. Highsmith, Agile Software Development: The Prople Factor, Article Published in IEEE Computer Magazine, [6] M.A.Qureshi and M. F. Hassan; Improvements Over Two Phase Shortest Path Algorithm, Internationa Symposium on Information Technology 2010 (ITSim 2010), Malaysia, in press. [7] R. Akbar, M. Haris, M. Naeem, Agile Framework for Globally Distributed Development Environment (The DAD Model), 2008, Proceedings of the 8 th Conference on Applied Informatics and Communications, Rhodes, Greece, pp , ISBN~ ISSN: , [8] R. Akbar, M. Haris and M. Naeem, Requirement Gathering and Tracking Process for Distributed Agile based Development, 2008, Proceedings of the 8th Conference on Recent Advances in Computer Engineering, Rhodes, Greece, pp , [9] C. Ferreira and J. Cohen, Agile System Development and Stakeholder Satisfaction: A South African Empirical Study, Proceedings of SAICSIT 2008, ACM, South Africa. [10] R. Akbar, M.F. Hassan, S. Safdar, M.A. Qureshi, Client s Perspective: Realization as a New Generation Process for Software Project Development and Management, Proceedings of ICCSN 2010, IEEE, Singapore. [11] A. Rusu, A. Rusu, R. Docimo, C. Santiago and M. Paglione, Academia-Academia-Industry Collaboration on Software Engineering Projects Using Local-Remote Teams, Proceedings of SIGCSE 2009, ACM, USA. [12] J. Hills, Putting yourself in the client s shoes: A littleappreciated skill that can boost the success of HR people, Human Resource Management International Digest, 2007, vol. 15, no.7, pp.35-38, Emerald Group Publishing Limited. [13] D.F. Rico, What is the ROI of Agile vs. Traditional Methods? An Analysis of XP,TDD, Pair Programming, and Scrum (Using Real Options). [14] Serena Software, Inc. An Introduction to Agile Software Development, 2007.USA. [15] S.Safdar and M.F.Hassan, Moving Towards Two Dimensional Password, International Symposium on Information Technology 2010, ITSIM 2010, June 2010, Malaysia. In press. [16] C. Ferreira and J. Cohen, Agile Systems Development and Stakeholder Satisfaction: A South African Empirical Study, Proceedings of SAICSIT 2008, South Africa, ACM /08/10. [17] M.A. Qureshi, M.F. Hassan, S. Safdar, R.Akbar, R. Sammi, 2009, An Edge-wise Linear Shortest Path Algorithm for Non- Negative Weighted Undirected Graphs, Frontiers of Information Technology December [18] S. Safdar, M.F. Hassan, M.A.Qureshi,and R. Akbar, Framework for Alternate Execution of workflows under threat, 2nd International Conference on Communication Software and Networks, ICCSN 2010, Feb 2010, Singapore. [19] M. A. Qureshi, M.F. Hassan,S.Safdar and R. Akbar; 2010, Two Phase Shortest Path Algorithm for Non-Negative Weighted Undirected Graphs, International Conference on Communication Software and Networks, Singapore, February 2010.

6 [20] F. Keenan, Agile Process Tailoring and problem analysia (APTLY), Proceedings of 26 th International Conference on Software Engineering (ICSE 04), 2004, IEEE. [21] A. Mushtaq, S. Sulaiman and J.Loviscach. Issues with Flexibility: A Reason for not Using Online Reservation Systems?, International Symposium on Information Technology 2010, IEEE, Kualalampur, Malaysia. in-press. [22] S.Riaz, D.R.A.Rambli, R.Salleh and A.Mushtaq. Integrating Media Psychology within Theoretical Framework of Instructional Designing for Web-based Learning Environments, 5 th International Conference on E-Learning 2010, Malaysia in-press.