Generalizing Agile Software Development Life Cycle
Generalizing Agile Software Development Life Cycle
Generalizing Agile Software Development Life Cycle
Abstract— In last decade, various agile methods have been agile approach to development [5]. Attempts have been made
introduced and used by software industry. It has been observed to reconcile the AMs with plan driven methods [6]. Still, there
that many practitioners are using hybrid of agile methods and is lack of a generalized Agile Software Development Life
traditional methods. The knowledge of agile software Cycle (ASDLC) for AMs that include complete agile
development process about the theoretical grounds, applicability principles and practices as whole. Therefore, in this paper, we
in large development settings and connections to establish
software engineering disciplines remain mostly in dark. It has
have proposed ASDLC and also discuss the documents or
been reported that it is difficult for average manager to artifacts required to produce in particular phase. It is highly
implement agile method in the organization. Further, every agile beneficial to identify the activities and practices associated
method has its own development cycle that brings technological, with particular phase of software development. Knowledge of
managerial and environmental changes in organization. A proper ASDLC is also useful to reduce the ratio of experienced
roadmap of agile software development in the form of agile member and inexperienced members in team. This will be
software development life cycle can be developed to address the highly useful for generating trust in industry about Agile
aforesaid issues of agile software development process. Thus, Software Development Process (ASDP).
there is strong need of agile software development life cycle that
clearly defines the phases included in any agile method and also
describes the artifacts of each phase. This generalization of agile
In this paper, firstly, we will discuss ASDP and research in
software development life cycle provides the guideline for this area with their pros and cons in Section 2. Secondly, we
average developers about usability, suitability, applicability of will propose the generalized ASDLC in Section 3. Section 3
agile methods. also includes the activities and document produced in various
phases. Lastly, conclusion and future scope is drawn in
Keywords-Agile software Development; extreme Programming; ASDLC in Section 4.
Adaptive software developmen; Scrum; Agile Method;story.
Agile Methods (AMs) have been adopted by many IT Many software development methods/ models have been
organizations and have generated many quality products of proposed since the evolution of software. Some development
software industry. These methods have gained higher edge on models had shown remarkable success in stable and
traditional software development by accommodating predictable environment. At the same time, these models have
frequently changing requirements in high tight schedules [1]. proven to be one of the major causes of failure in disruptive
AMs have promised higher customer satisfaction, low defect software development. In internet and mobile technology,
rates, higher usability and a solution to higher changing frequent changes in requirements, technology and staff have
requirements [2]. AMs include mainly; Extreme Programming been observed [7]. Thus, software development process has
(XP), Scrum, Feature Driven Development (FDD), Crystal become more cumbersome in such environment. Traditional
methodology, Dynamic System Driven Development Software Development Methods (TSDMs) are proven to be
(DSDM), Adaptive Software Development (ASD), Open unsuccessful and software success rate of TSDMs is less than
Source (OS), Agile Modeling (AM), and Pragmatic 40% in such environments [8]. A new way of software
Programming (PP) [3]. It has been observed that all aforesaid development i.e. agile software development is outcome of the
methods are based on agile manifesto and have their own frustration of many practitioners using TSDMs. In last decade,
software development life cycle for improving productivity a number of AMs have been evolved based on Agile
and quality of software [4]. It has been noticed that Manifesto established in 2001[www.agilemanifesto.org]. It
applicability of these methods is mainly in small software with has been observed that agile principles and practices ensure
low life critical systems. Many opponents have claimed that the customer satisfaction by involving the customer in all the
agile software development is set of ad-hoc practices and does phases of software development. It emphasizes mainly;
not have sound principles behind it. Further, it has been stated accommodating last minute changes, delivering working
by many software researchers that it is hard for average software, individual interactions etc.
software developer/ manager to understand and manage entire
Rigors
Requirement Feedback Testing
Early
Gathering
Scope Requirements
prioritization Code
Iterative
Estimates inspection
Pre-
release
Vision & Exploration
Approval phase
Iteration Plan
A D C T
Initial Acceptance
Architecture Unit Integration Testing
Testing Testing
inexperienced team members have been trained on agile one of aforesaid practices leads to just enough, simple and
process and technology used for training and enhance the ways understandable documents. System has been inherently
to improve quality of product being developed. Further, designed to change. For example, system can work for any
feedback of the last release is also accommodated in this phase database. This type of independency of code and design
and major changes in the last releases are defined as new provide lesser burden when changes are triggered. Thus,
requirements. ASDP use design patterns to maintain low coupling and high
cohesion among modules. Functionality testing and rigorous
C. Iteration Planning integration testing is performed by team of customer and
Iteration planning is most important phase of ASDLC and developers before release the product. Main activities of this
possesses many activities of software development required to phase are simple designing, maintaining coding standards and
schedule the project. First activity in this respect is review of rigors testing by Test Driven Development (TDD) and
the working software released in last iteration. Participants functional testing. Extra care is taken to design a code simply
assess the progress and increment of the work product and by code and data re-factoring.
discuss the future plan of the project. At the same time, Major artifacts in this phase are design documents and
requirement prioritization is performed to get maximum ROI codes of system.
from working software. In iteration planning, list of
D. Release Phase
requirements in stack is updated depending on the feedback
and requirements received from customers. This list is This phase can be decomposed in two sub-phases namely;
reviewed for prioritization of requirements. Prioritization is pre-release and production as shown in Fig 1. Pre-release
based on various factors mainly; value, knowledge, financial phase recommends extra testing (i.e. integration and
returns etc. For example, a feature that requires team to acceptance testing) and checking of functional and non-
improve their technical skills has been developed in later stage functional requirements of the system to be released. It has
but a feature that has higher financial returns must be kept at been advised to include some minor changes expected by the
higher priority. This prioritization stack is useful in increasing user in the release and major changes are expected to
ROI and producing working software in shorter time period. accommodate in next iteration. On the other hand, production
Prioritization has been done for only those features that are phase deals with releasing the product for customer use. At
clear and unambiguous. Project manager, customer this time, training for users of the system is provided for
representative and team members sit together to decide the operation ease. It has been observed that team handles two
priority of requirements. Moreover, iteration plan phase responsibilities after first release of the system. Firstly, team is
possesses iterative estimation activity to estimate size, cost involved in enhancing the functionalities of product. Secondly,
and duration of the project. It also re-estimates efforts team has to take responsibility of system in running state
depending on team velocity [13]. thereby providing customer helpdesk.
This phase also ensures the resource requirements of the We have attempted to define the ASDLC after reviewing
system. Artifacts produced in this phase are prioritized stack the all phases of software development of existing AMs. We
requirements and set of requirements from the stack is selected have also included the phases introduced by other researchers
for current iteration. thereby increasing the trust and faith on agile software
development.
C. ADCT Phase
This phase is an iterative phase that deals with Analysis, IV. CONCLUSION
Design, Coding, and Testing (ADCT). In this phase, ASDP is process to handle the disruptive software
functionality of the system is produced and enhanced in new environment by incorporating practices and principles
increments. It requires several iterations before releasing the established in 2001. It has been observed that agile practices
product. Decided schedule in iteration planning is decomposed such as delivering working software, short iterations and
in several small iterations of one to four weeks. First iteration feedback etc. increase the internal and external software
develops the architecture of whole system by enforcing the quality. Some practitioners stated that agile practices are
selection of stories that form the system. In successive collection of best practices of the software development.
iterations, designing and coding along with testing is Although, there are many success stories of ASDP in last
performed. In last iteration, product is ready to deploy at decade, but knowledge of implementing these practices in a
customer site. It incorporates designing and coding with unit particular project is very scared. Therefore, we have analyzed
testing using the concept of pair programming. ASDP always software development life cycle of all existing AMs and
possesses simple design to incorporate changes in the proposed a generalized ASDLC. Proposed ASDLC is essence
requirements. Design guidelines include metaphors, CRC of all existing AMs and represents all phases required in a
cards, Spike solution and re-factoring. CRC card is an index software development cycle in iterative and incremental
card that is used to represent responsibilities, relations of manner. It also encourages the practices of simple design, re-
classes used in designing a particular story. Spike solution is factoring to maintain the simplicity. Thus, proposed work is
small focused effort used to explore solution to the problem. It useful for adoption of AMs with following benefits:
has been observed that adding more functionality in early
stages of the software leads to a poor design document. Any
225 ISSN : 0975-3397
S. Bhalerao et al /International Journal on Computer Science and Engineering Vol.1(3), 2009, 222-226
• ASDLC is a step towards resolving the [11] Dingsøyr, T., Dybå, T., and Abrahamsson, P., ”A Preliminary Roadmap
for Empirical Research on Agile Software Development”, In Proceedings of
misconceptions about AMs that these methods are ad- Agile Conference 2008
hoc coding practices.
[12] Pressman, R., Software Engineering A Practitioner Guide, McGraw- Hill
• A systematic approach to define all the phases of 6th Edition.
ASDP that is useful to average project manager to [13] Bhalerao, S., and Ingle, M., A Comparative Study of Agile Projects
understand the principles and practices behind agility. Estimation using CAEA, In Proceedings of International Conference on
Computer Engineering and Application, June 2009, Philippines.
• ASDLC represents the activities and document
[14] Cao L. and Balasubramanium R., “ Agile Software Development: Ad-hoc
required in each phase thereby providing the Practices or Sound Principles ?”, IEEE ITPRO, March- April 2007, pp. 41-46.
developer and user view for better understanding of
AMs. [15] Iacovelli A. and Souveyer C., “Framework for Agile Method
Classification”, Proceedings of Model Driven Information System Driven
Engineering- Enterprise, User and System Model (MoDISE –EUS) 2008, pp.
• ASDLC provides flexibility to handle phases in 91-102.
concurrent and iterative manner.
AUTHORS PROFILE
• Feedback in ADCT phase improves internal quality
whereas feedback in iteration planning improves Prof. S. Bhalerao is MCA from Banasthali Viyapeeth, Rajasthan and persuing
her research in standardization of agile methods to increase trust and
external quality of the product. faith amongst practitioners under the guidance of Dr. M. Ingle
Professor, DAU, India. She has published more than 15 papers in
national and international confereces and journals. She got IT excellence
Thus, proposed ASDLC is a step towards improving agile award for improving education standards in central India
software development which will leads to fast accessibility of
AMs. However, this is preliminary work and needs Prof. D. Puntambekar is MCA from DAVV, Indore with about 20 years of
Industrial and Academic experience. He has published more than 25
verification on large projects. research papers in national and internation Conferences. He is also
consultant to many Govt. agencies for E-Governance implementation.
He is being appointed as Director on the board of M.P. State Electronics
Development Corporation (MPSEDC) a State Govt. Enterprise.
REFERENCES
Prof. M. Ingle is Ph. D in Computer Science. She is renowned Professor and
[1] Aoyamma, M., “Agile Software Process and its Experiences”, In IEEE Senior System Analyst in a prestigious Devi Ahilya University (DAU),
Transaction 1999. Indore, India. She has published more 70 research papers in national and
international confereces and journal in area of software engineering,
[2]Abrahamsson, P., Salo, O., Ronkainen, J., and Warsta, J., Agile Software Web Engineering, NLP and Usability Engineering etc. She has been
Methods Rreview and Analysis, Espoo, Finland: Technical Research Centre awarded for best teacher and imporving education standards in field of
of Finland, VTT publication 478 available IT in central India.
http://www.inf.vtt.fi/pdf/publications/2002/478.pdf.2002
[3] Abrahamsson, P., Salo, O., Ronkainen, J., and Warsta, J., “New
Directions on Agile Methods : A Comparative Analysis”, In Proceeding of
25th International conference on Software engineering 2003.
[4] Beck, K., Extreme Programming Explained, Pearson Education Low price
Edition Asia.
[5] Bergin, J., and Grossman, F., “Extreme Construction: Making Agile
Accessible”, In Proceedings of IEEE Agile 2006 Conference.
[7] Bhalerao, S., and Ingle, M., ”Mapping SDLC phase with Various Agile
Methods”, In Proceedings of International conference on Advances in
Computer Vision and information Technology, Nov. Aurangabad, pp. 318-
325.
[9] Cockburn, A., and Highsmith, J., “Agile Software Development: The
People Factor”, In Computer, Nov. 2001, pp. 131-133.
[10]Cockburn, A., Agile Software Development, Pearson Education,
Asia, Low Price Edition.