AGILE SOFTWARE DEVELOPMENT A TECHNIQUE



Similar documents
An Agile Methodology Based Model for Change- Oriented Software Engineering

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

A Study of the Agile Software Development Methods, Applicability and Implications in Industry

Comparative Analysis of Different Agile Methodologies

Akhil Kumar 1, Bindu Goel 2

Agile Processes and Methodologies: A Conceptual Study

Software processes that are:

How To Understand The Limitations Of An Agile Software Development

Software Requirements and Specification

Agile Methodologies and Its Processes

Agile Software Development Methodologies and Its Quality Assurance

Comparing Agile Software Processes Based on the Software Development Project Requirements

Software Development with Agile Methods

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

AGILE DEVELOPMENT WITH A CAPITAL A

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

SOFTWARE PROCESS MODELS

Generalizing Agile Software Development Life Cycle

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

CSE 435 Software Engineering. Sept 16, 2015

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

REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT

Role of Agile Methodology in Software Development

Agile Development Overview

Agile Software Development Methodologies & Correlation with Employability Skills

Software Development Life Cycle (SDLC)

Agile with XP and Scrum

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Comparative Analysis of Agile Software Development Methodologies-A Review

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

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

Multi-Dimensional Success Factors of Agile Software Development Projects

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS

Agile Projects 7. Agile Project Management 21

Applying Lean on Agile Scrum Development Methodology

How to manage agile development? Rose Pruyne Jack Reed

AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems

Introduction to Agile Software Development Process. Software Development Life Cycles

Case Study on Critical Success Factors of Running Scrum *

Agile and Secure: Can We Be Both?

Software Development Risk Aspects and Success Frequency on Spiral and Agile Model

A Quantitative Framework for the Evaluation of Agile Methodologies

Agile Software Project Management Methodologies

Large Scale Systems Design G52LSS

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

Agile Software Development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

A Capability Maturity Model (CMM)

Quality in an Agile World BY SCOTT AMBLER Ambysoft, Inc.

Software Development Methodologies

Software Development Methodologies in Industry. By: Ahmad Deeb

Agile in Financial Services A Framework in Focus

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

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

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

Applying Agile Methods in Rapidly Changing Environments

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Development: Agile vs. Traditional

The most suitable system methodology for the proposed system is drawn out.

Agile Software Development compliant to Safety Standards?

Software Development Life Cycle Models - Process Models. Week 2, Session 1

How To Understand The Perception Of Ancient Methodologies In Sri Lanka

AGILE vs. WATERFALL METHODOLOGIES

Extreme Programming: Strengths and Weaknesses

Software Development Process

Introduction to Agile Software Development. EECS 690 Agile Software Development

Introduction to Agile Software Development

Contribution of Agile Software Development Methods to Business-IT Alignment in Non-profit Organizations

The Role of Agile Methodology in Project Management

Agile project management: A magic bullet?

Agile & the Declaration of Interdependence: A new approach to Process Improvement

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

AGILE METHODOLOGIES, THEIR IMPACT ON SOFTWARE DEVELOPMENT AND IMPLEMENTATION: AN EVIDENCE FROM PAKISTAN

Becoming Agile: a getting started guide for Agile project management in Marketing, Customer Service, HR and other business teams.

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

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

AGILE BUSINESS SERVICES. Guiding and supporting your business. at any stage of your agile journey

Agile Requirements Best Practices

PMP vs. Scrum Master

software studio software development processes Daniel Jackson

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

How To Plan A Project

AGILE SOFTWARE DEVELOPMENT AND CHALLENGES

A Comparative study of Agile Software Development Methodology and traditional waterfall model

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Quality Assurance in an Agile Environment

Becoming Agile: a getting started guide for Agile management in Marketing and their partners in IT, Sales, Customer Service and other business teams.

Transcription:

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE Saurav Tiwari 1,Aasheesh Goel 2,Rajeev Sharma 3 1,2 Research Scholar,MCADept.,SRM University,NCRCampus,Modinagar 3 Asst. Prof.,MCADept.,SRM University,NCR Campus ABSTRACT There has been a tremendous importance in the field of agile software development approaches in the recent past. This is because of the fastness that agile approaches bring in the life cycle of software development. This interest in the field shows that there are benefits to reap through successful implementation of agile methods. The field is relatively nascent and research is in its initial stages. The paper has been carried with the distinct objectives of examine and gain insights into the current agile methods and practices, understanding the strengths and weaknesses of agile methods and various issues of their applicability. To meet the set goals and objectives, we used both qualitative and quantitative research methodologies. Apart from a systematized literature survey and review, we performed a case study of four software companies in India. The data collection methods included questionnaires, interviews and analysis of the companies web-sites. Keywords: Agile software, Agile methods, Applications of agile methods, Extreme programming (XP) 1.INTRODUCTION Software development is an organized thrives to deliver products in faster, better and cheaper ways. There have been many studies and suggestion in improving the development process. Software development is an organized process that thrives to deliver products in faster, better and cheaper ways. There have been many studies and suggestion in improving the development process. Recently, this interest has paved way to a new software development method called Agile Software Development. To overcome the fast changing organizational business needs using traditional methods agile methods were introduced. Agile methods aid in and focus on developing solutions more quickly and efficiently. Agile methods highlight customer satisfaction by structuring the development process into iterations where in each iteration produces sizeable amount of working code and artifacts of interest to customers. Agile software development (ASD) is a relative new term within software engineering. Agile processes, or development methods, represent an apparently new approach for planning and managing software development projects.agile programming is design for change, without refactoring and rebuilding. Its objective is to design programs that are receptive to change. Ideally, agile programming lets 31

changes be applied in a simple, localized way to avoid or substantially reduce major refactoring, retesting, and system. 2.THE AGILE TECHNIQUES Some of the most commonly used agile techniques are discussed in this section. There are several parameters associated with the choice of these agile techniques, some of them are team size, iteration length and support for distributed environment. These parameters are also discussed for these most commonly used agile techniques here: A. Extreme Programming (XP) Five key principles of extreme Programming (XP) are communication, simplicity, feedback, courage, and quality work. Extreme programming is a good agile methodology when the team size is generally small i.e. from 2 to 10. Iteration length is generally short around 2 weeks. XP is not suitable for distributed teams. B. Scrum Scrum, along with XP, is one of the more widely used Agile Methods. Scrum projects are split into iterations (sprints). Development team is divided up to 7 persons team. Iteration length varies from 1 week to 6 weeks. Project may consist of multiple teams that could be distributed. C. Crystal family of Methodology Crystal methods are based on the principle that how to achieve a maximum extent by which a written communication or documents communication can be reduced to a verbal communication for faster development. All Crystal methods begin with a core set of roles, work products, techniques, and notations. There is no limit on team size in crystal methods. 3.BACKGROUND AND RELATED WORK Agile Software Development is presently an emerging discipline in the field of Software Engineering. It is presently advocated by many software professionals. The Agile software development principles that are followed and advocated emerged from the traditional software development principles and various experiences based on the successes and failures in software projects. According to [1], customers found it difficult to define their needs because of the fast changing technology and the companies using them in products. New methods, now called agile methods are were designed to define the changing requirements in software environments. Traditional methods refer to the older and commonly used methods like the waterfall methods. These traditional methods have often been criticized to be far from the real ways software engineers functioning in developing the software. Agile Software Development emerged in February 2001 when a group of software consultants 32

signed the Agile Software Development Manifesto. Agile methods focus on the challenges of unpredictability of the real world by relying on people and their creativity rather than processes [2]. The main theme in agile methods is to promote and speed up responses to changing environments, requirements and meeting the deadlines. The agile manifesto [1] states the main focus of the agile development as the following: 1)Individuals and interactions over processes and tools 2)Working software over comprehensive documentation. 3)Customer collaboration over contract negotiation. 4)Responding to change over following a plan. There are a number of agile software development methods. Methods for agile software development represent a set of practices for software development that have been created by experienced people [3]. The most common methods are extreme Programming (XP) [8], Dynamic Software Development Method (DSDM) [9], Scrum [6], and Crystal [7]. The highest criterion of these methods is development of the software and customer satisfaction through continues delivery of software. This is achieved by having short iterations in the development process. The iterations focus on timely delivery of working code that provides substantial value to the customer. More importantly, is a very limited work that has been produced to assess the applicability of agile methods. This is an indication is a need for investigation. 4.RESEARCH DESIGN In this section the research design in answering the above mentioned research questions are explained. We conducted research using both the qualitative and quantitative methodologies. As part of the qualitative method, data was collected through interviews and questionnaires. The quantitative data was collected by conducting a survey. We identified ten software companies in India. Company 1 is relatively a young company and it has incorporated agile philosophy in the year 2004. The company has a team of 60 software developers. The main focus of the company is building Java applications. The company s expertise is its rapid delivery of enterprise applications against a complex set of fast changing requirements. Company 2 is focused on helping customers with their business goals by providing best technology combined with highly skilled team efforts. It builds information technology services. Company 3 is a provider of integrated business, technology and process solutions. It is globally spread. It has 5 branches. It is a business and information technology consulting company.the pros and cons of the agile methods have been identified. In answering the second research questions, case study has proven to be useful. Case study helped in identifying the agile methods that the companies have incorporated and reaped benefits by doing so. Questionnaires were developed and were forwarded to the companies. Based on the filled questionnaires, we had conducted interviews on phone, or through e-mail. The answer to the third research question was done through interviews. The main focus was to know the 33

change that agile methods brought. The purpose was to know the perspective of the employees, the change in the work they experienced and to know the change from the customer s point of view. The questionnaires and interviews were aimed at the project managers. 5.PROPOSED MODEL New change request can come at any point of development i.e. at the start of any project or at the middle of development or during the bug fixing for a project or once the project is released and due to market standards and any other associated parameter change, changes in the product. So the model should be enough flexible to support the new change request at any moment of time.it could be database change related request or it could be in terms of a bug or defect in the system or it could be change due to any other reason i.e. change in specifications etc. Once the newly change request is classified it will enter into the second phase where it is fitted to a suitable agile model and technique for this. Here model storming is also done so that in next time same type of change request can be handled faster. The priority of the change request is also decided in terms of execution. In the last phase this change request is sent to the SDLC cycle for the execution. Any project is developed in stages hence the incremental software models are very popular because of its simplicity of executing the requirements in stages. And most of 34

the designers prefer this model because of its properties of executing in steps. Since most of time all the requirements are not clear to the development team and requirements generally changes at time to time and are clear to the team at middle of the development.the incremental model can be integrated with the agile methodology to get benefit of both of the techniques. Figure 3 represents the agile incremental model for the change request handling. Figure 3 represents an N iteration agile incremental diagram block diagram. Iteration 0 is the basic model preparation stage, where actually the model is evaluated against the execution environment. 6.CONCLUSION Agile approaches are meant to increase flexibility, agility and to be more adjusted to the environment where software development projects are present and working today. This is a contradiction to large global project organizations with no overview and multiple interdependencies that cannot be effectively monitored. However, nothing speaks against incorporating ideas and practices from agile methods in order to increase agility even in large projects though keeping in mind that the fundamental conditions are different and that that needs to be fully understood. The ideal approach would likely be to break large projects into smaller projects which would become more flexible. This idea is brought up both by the interviewees, respondents of the survey as well as recommended by the agile methodologists. Agile approaches are meant to increase fastness and flexibility in the software projects. We have done a case study of three software companies in India. An interesting fact we noticed is that a company mostly developing small project is enjoying a good amount success in using agile methods. We have also observed that the companies are not really encouraging in terms of using a variety of agile methods. This is because of lack of sound proficiency in this field. We also observed not very substantial amount of work has been published so far. It is therefore important that empirical research and investigation should be carried in this field. We understood that agile methods are a highly practical oriented field. The application of different practices of XP and Scrum differ from company to company. So to say, sound judgment on agile methods can be done by doing rigorous case studies, using the historical record of the companies and their projects. The developers involved in the study mainly stressed the following four reasons for adopting agile methods: adaptability to change, short time frames of releases, continuous feedback from customers, high-quality and bug free software. In this paper benefit of agile development is adopted to simplify the change-oriented software engineering. An agile methodology based change oriented software engineering model is proposed. Various model execution environments are also discussed for the proposed model. 35

7.REFERENCES 1. Peter Ebraert, Jorge Vallejos, Pascal Costanza, Ellen Van Paesschen, Theo D Hondt,, Change-Oriented Software Engineering, ACM International Conference Proceeding Series; Vol. 286, Pages 3-24, 2007. 2. Scott W. Ambler, Agile Model Driven Development (AMDD), XOOTIC MAGAZINE, February 2007. 3. Jeffrey A. Livermore, Factors that Significantly Impact the Implementation of an Agile Software Development Methodology, ACADEMY PUBLISHER, 2008 4. Par Emanuelson, An agile modeling environment for partial models, agile alliance publications, pp 223-224, 2002. 5. Dave Thomas, Agile Programming: Design to Accommodate Change, IEEE, Vol. 22, No. 3, May/June 2005. 6. Dave Thomas, Agile Programming: Design to Accommodate Change, IEEE, Vol. 22, No. 3, May/June 2005. 7. John W. Creswell, Research Design: Qualitative, Quantitative and Mixed Methods Approaches, Sage Publications, Second Edition. 8. C. Larman, V.R. Basili, Iterative and incremental development: a brief history, IEEE Computer 36 (6) (2003)47 56. 9. J. Stapleton, DSDM: Business Focused Development, second ed.pearson Education, 2003, ISBN978-0321112248. 10. K. Beck, Extreme Programming Explained: Embrace Change, Addison-Wesley, 2000, ISBN 0-201-61641-6. 36