Agile Framework for Globally Distributed Development Environment (The DAD Model)



Similar documents
Agile Projects 7. Agile Project Management 21

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

AGILE vs. WATERFALL METHODOLOGIES

Web Application Development Processes: Requirements, Demands and Challenges

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

Agile Software Development. Mohsen Afsharchi

Agile Software Development Methodologies and Its Quality Assurance

Emergence Of Agile Software Development Methodologies: A Sri Lankan Software R & D Outlook

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Introduction to Agile Software Development Process. Software Development Life Cycles

How To Understand The Limitations Of An Agile Software Development

Introduction to Agile Software Development

Role of Agile Methodology in Software Development

Web Applications Development and Software Process Improvement in Small Software Firms: a Review

The traditional project management uses conventional methods in software project management process.

CSE 435 Software Engineering. Sept 16, 2015

Benefits of Test Automation for Agile Testing

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

An Agile Project Management Model

Agile Methodologies and Its Processes

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Case Study on Critical Success Factors of Running Scrum *

Agile Software Engineering, a proposed extension for in-house software development

Business Analysts in an Agile World. Christian Antoine

Software Development Methodology Development Process Aress

COMP 354 Introduction to Software Engineering

Software Development Process

Waterfall vs. Agile Methodology

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Advanced Software Engineering. Software Development Processes

How To Model Software Development Life Cycle Models

Comparing Agile Software Processes Based on the Software Development Project Requirements

Software Development with Agile Methods

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

Agile Processes and Methodologies: A Conceptual Study

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

A Comparative Study of Different Software Development Life Cycle Models in Different Scenarios

IT4304 Rapid Software Development (Optional)

Agile Software Development

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations

Secure Code Development

Umbrella: A New Component-Based Software Development Model

International Journal of Advance Research in Computer Science and Management Studies

CSSE 372 Software Project Management: Managing Agile Projects

Agile software development

Agile Project Management By Mark C. Layton

Standardized software development model for SME software houses in Pakistan

How To Plan A Project

Comparative Analysis of Different Agile Methodologies

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Agile Software Development: Novel Approaches For Software Engineering

A Survey of Software Development Process Models in Software Engineering

Agile Software Development

Development. Lecture 3

Evolving a Ultra-Flow Software Development Life Cycle Model

Software Process Models. Xin Feng

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS

Jukka Mannila KEY PERFORFORMANCE INDICATORS IN AGILE SOFTWARE DEVELOPMENT

An Appraisal of Agile Software Development Process

Introduction to Agile and Scrum

AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems

Publication I International Society of Agile Manufacturing (ISAM) Reprinted by permission of International Society of Agile Manufacturing.

What is a life cycle model?

Agile Development with Agile Business Suite

Agile Software Development Methodologies & Correlation with Employability Skills

Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Requirements Analysis (RA): An Analytical Approach for Selecting a Software Process Models ABSTRACT

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Neglecting Agile Principles and Practices: A Case Study

Agile Software Development compliant to Safety Standards?

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

Agile Offshore Development. with SOA

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

On the Agile Development of Virtual Reality Systems

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Agile Software Development in the Large

The Role of Agile Methodology in Project Management

Lifecycle Models: Waterfall / Spiral / EVO

A Review of Agile Software Development Methodologies

Software processes that are:

Processes in Software Development. Presented by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008

LEAN AGILE POCKET GUIDE

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Transcription:

Agile Framework for Globally Distributed Development Environment (The DAD Model) REHAN AKBAR, MUHAMMAD HARIS, MAJID NAEEM Department of Computer Science GC University, Lahore Pakistan. rehankb@yahoo.com Abstract: Fast pace development and quick iterations has changed the dimensions of web application development. Competition to launch their products first in the market has made clients so demanding. As compared to other traditional process models of Software Engineering Agile model in this context has proved its worth. Face to face communication between client and developers sitting at one place, quick iterations/builds has almost finished the requirement of proper structured documentation. Enormous growth in global IT industry has created offshore clients and development resources for many software companies. Many global clients and organizations are out sourcing their projects for better work on cheap rates with high demands. Agile model has certain limitations when development environment is globally distributed and as in most cases client is offshore. Existing agile principles do not support distributed development environment architecture. This paper focuses on the problems that arise when client is offshore and proposes an agile model for distributed development environment. Key-words: Requirement gathering, Process Model, Globally Distributed Development, QA, Extreme Programming, Agile development 1. Introduction The enormous growth in the global IT industry has opened doors for software companies with offshore clients involved in out sourcing their projects. Traditional web applications have been evolved into web Information Systems (IS). Globalisation have tremendously impacted IT industry and changes the IS development style dramatically [2]. Web applications vary from traditional software development in various terms like: 1. More technologies (HTML, XML, ASP, JSP, PHP, scripting etc.) 2. Large number of users 3. Fast development 4. Short and frequent iterations 5. Continuous maintenance 6. Scalability Web application development contributes 70% of the total development to the IT industry. But there is still a lack of some well defined and established process model typically suitable for developing web applications. Web engineering follows many conventional Software Engineering s fundamental concepts and principles [8]. In addition, it incorporates specialized processes models, software engineering methods adapted to the characteristics of this kind of application, and a set of enabling technologies [6]. Agile model hence is a process model adapted by most of the software companies for web application s development. The claims made by agile process proponents and critics lead to questions about what practices, techniques, and infrastructures are suitable for software development in today s rapidly changing development environment [11]. The true picture inside these companies is totally different. The principles of agile manifesto which were published by agile alliance during 2001 meeting are actually not the basis of agile development in these companies. ISSN: 1790-5109 423 ISBN: 978-960-6766-94-7

Agile model except some basic principles do not provide any concrete model and set of processes to be followed like Water fall model, Spiral model and Rapid Prototyping. Mostly agile practices are adaptive. Each organization modifies agile methods according to its requirements and development environment. This approach has produced many different development techniques each claiming to be an agile as in recent years a number of processes claiming to be agile have been proposed in the literature. This practice has left the standing principles of agile far behind [11]. Globally Distributed Development Environment is a new paradigm of agile development. Limitations of agile model as discussed above in this context have started new research directions in agile development. The distributed development in this respect is widely in practice and 60% - 70% development is focused on large web applications newly termed as web information systems. Shorter time to market, shorter product life cycles and continuous maintenance are much more pronounced in the case of web applications as compared to traditional ones [9]. According to agile manifesto agile method is best suitable for small scale, short duration projects where client and developers have face to face communication. Face to face communication is as important in distributed environments as non-distributed environment [11]. Documentation less development is another aspect of agile model but where client is offshore and project is a large web based IS this principle does not support the overall process. A lot of problems then arise in distributed environment. Requirement gathering and tracking is one of the main phases of process models responsible for 90% success of the projects. Requirement specification and analysis do not take the implementation platform into account, and, thus, are very similar to the corresponding activities in the conventional software engineering [8]. Light weight model and processes with high output are required to support this fast offshore development. This research proposes a solution to improve the overall development process and presents a light weight model termed as The Distributed Agile Development (DAD) model emphasizing on most required phases and respective documentation. This model would facilitate developers to synchronize their tasks and priorities with client requirements and expectations. The proposed model can be implemented in web based projects for a distributed development environment where client is at some other remote location. Some development resources can also be located at client site. With some modification in requirement document and phases this model can be adopted as well for software development (Desktop applications, utility software). For a software company, it is essential to understand how to link business management and software development and employ a solid, business oriented approach in its development decision making [12]. 2. Material & Methods 2.1 The Agile Manifesto To standardize the agile processes agile principles are developed by agile alliance in 2001 called agile manifesto (http://www.agilealliance.org/principles.html). Agile manifesto describes a set of twelve principles for a process to be qualified as agile. This research focuses on four principles of agile manifesto in context of distributed development environment. These principles are listed below: 1. Welcome changing requirements, even late in development 2. Deliver working software quickly 3. The best architectures, requirements and designs emerge from self-organizing teams 4. The most efficient and effective method of conveying information to and within ISSN: 1790-5109 424 ISBN: 978-960-6766-94-7

a development team is face-to-face 2.2 Limitations of Agile Principles in Distributed Development Environment In this section we discuss the limitations of above said agile principles identified in context of distributed development environment as unique role the client has in agile software processes is not reflected or supported by the existing metrics [7]. 1. Poor documentation 2. Communication gap between Client and Developers conversation 3. Improper Requirement Gathering and Tracking 4. Un synchronized code base 5. Live Demos and Technical reviews 6. No support for critical applications 7. Limited support for large software systems 8. Scalability & Transparency 2.3 The Distributed Agile Development (DAD) Model All the processes that claim to be an agile inherits the deficiency of agile manifesto for not supporting the distributed development environment. The model proposed in this research presents an agile framework for distributed development environment. The phases in the DAD model (Fig.1) are very light weight to complete a project with minimum necessary documentation. All the phases in the model are linear and a phase is dependent on the output of its previous phase. Main emphasis in this model is given to the communication between offshore client and developers. All the phases completes under the umbrella of communication which is shown as a big rectangle containing all the phases. Very fast development, quick releases/builds almost weekly needs very frequent discussions/meetings with the client for requirement verifications, queries to the clients and changes from the client. From requirement Fig.1 gathering to deployment of the project which is actually a delivery of a complete build all the phases require a close interaction with the client at each and every step. Requirements from client are gathered and a simple proper structured document is prepared. On the basis of the requirements a features list is prepared. Tasks are prioritised depending upon the client s requirements, functionality and are assigned to particular developers for Coding. All the possible features are implemented and complexities are continuously communicated to the client. After testing observations and bugs ISSN: 1790-5109 425 ISBN: 978-960-6766-94-7

are fixed. Bug list is then reprioritised depending upon their nature and complexity, bugs are assigned to respective developers and again their fixing is made, tested in second cycle of QA. After fixing all bugs final build is deployed at production server. The same procedure is then repeated for all next coming builds. 2.4 The Incremental Approach The DAD is used in incremental fashion in which a build is released in each iteration. At each increment, we determine what assets have been added, and what new attack paths might have been opened [4]. Each next build contains new features received from the client or changes in the previous build. In a week a build is released. So all the functionality, enhancements and bug fixing is released in each increment w.r.t. functionality enhancement and time. (Fig 2). In each Build a complete set of functionality is delivered to the client. All the phases for each build are repeated and this process tend to progress in incremental fashion till the project ends. Internal build numbers are fixed to track record of the functionality which can also be exposed to the client. Communication with the client is on going task throughout all the phases. The most important implication to managers working in the agile manner is that it places more emphasis on people factors in the project: amicability, talent, skill, and communication [3]. Regular communication and feedback daily or after a day or two from the client is a continuous part of the DAD model. ISSN: 1790-5109 426 ISBN: 978-960-6766-94-7

3. Results and Discussions In distributed development environment communication process becomes more critical. Unlike other agile processes the DAD model covers the problem of communication gap and documentation when development resources are distributed. Using multiple models and each model should present a different aspect of the system and only those models that provide value to their audience should be built [8]. Agile processes such as Extreme Programming are of increasing interest in software development [4]. Communication phase is an integral part of this model. Frequent and very regular communication with client enables the developers to implement all the functionality with 100% customer requirements and satisfaction. Almost daily communication on emails, conference calls, and chatting makes developers every thing clear and provides the scalability and transparency to distributed resources. The problems faced by client being at some other global location are highly overcome with maintaining minimum documentation. Unlike other agile techniques like XP, Scrum, Feature Driven development DAD model supports longer duration projects. While we believe that both agile and heavy weight processes, e.g. model driven development, have merits in different contexts, agile processes are particularly well suited for building web application, particularly because they aim to deal with changing requirements and rapid delivery [1]. Time constraint, communication gap and minimum documentation when development is incremental or evolutionary the documentation generation may also be incremental or evolutionary are part of this model in a realistic manner [10]. Using this model for distributed development environment for all kind of software gives complete customer satisfaction overcome the deficiency of agile manifesto in distributed development environment. If both client and suppliers use the common process, they can communicate better and reduce unnecessary problems arising in coordination and control of projects [2]. Also, clients should consider the level of expertise, available resources, technology, and infrastructure in the supplier site [5]. 4. Conclusion This model emphasizes on the communication as a full time activity between client and development team. Web application development requires demanding support infrastructures [13]. Light weight processes to make this model more efficient in terms of requirement gathering and tracking processes will be the future enhancements to more strengthen this model. Further improvements to make this model efficient are being investigated. Enhancements and modifications in its phases are expected to produce a more efficient model. References [1] A. McDonald and R. Welland. Agile web engineering (AWE) process. Technical report, Department of Computer Science, University of Glasgow, UK. 2001. [2] Cho. J. Globalization and Global Software development. ACM. USA. 2007. [3] Cockburn, A. and Jim, H. Agile Software Development: The People Factor. USA. 2001. [4] Ge. X., R.F. Paige, F.A.C. Polack, H. Chivers and P.J. Brooke. Agile development of Secure Web Applications. ICWE, ACM, California, USA. 2006 [5] Herbsleb. J., and Moitra. D. Global Software Development. IEEE software, March/April. 2001 ISSN: 1790-5109 427 ISBN: 978-960-6766-94-7

[6] Pressman. R.S. Software Engineering: A Practitioner s Approach, 6 th edition, Mc Graw Hill, 2005. [7] Racheva. Z., and M. Daneva. Using Measurements to Support Real-Option Thinking in Agile Software Development. ACM. 2008 [8] Souza. V.E.S. and R.A. Falbo. An Agile Approach for Web Systems Engineering. ACM. Pocos de Caldas, Minas Gerais, Brazil. 2005 [9] Tarawneh. H, A. Elsheikh and S. Lahawiah. Web based application development in small firms. Proceedings of 6 th Conference on Software Engineering, Greece. 2007 [11] Turk. D, R. France and B. Rumpe. Limitations of Agile Software Processes, ACM, USA. 2008 [12] Vahaniitty. J and K. Rautiainen. Towards a Conceptual Framework and Tool Support for Linking Long-term Product and Business Planning with Agile Software Development. ACM. 2008 [13] Yue. K. and Ding. W., Design and Evolution of an undergraduate course on web application Development, Proceedings of the 9 th Annual SIGCSE Conference on innovation and Technology in Computer Science Education (Leeds, United Kingdom, June 28 30, 2004), ITiCSE 04, ACM Press, New York. [10] Theunissen. W.H.M., D.G. Kourie and B.W. Watson. Standards and Agile Software Development. ACM. SAICIST. 2003 ISSN: 1790-5109 428 ISBN: 978-960-6766-94-7