Comparative Study On Agile Software Development Methodologies

3y ago
49 Views
2 Downloads
2.38 MB
14 Pages
Last View : 9d ago
Last Download : 3m ago
Upload by : Victor Nelms
Transcription

Comparative Study on Agile SoftwareDevelopment MethodologiesKeywords : agile, traditional methods, agile adoption,SCRUM, XP.AI.Introductionlot of people have been asking the question "Whatis Agile Software Development?" and invariablythey get a different definition depending on whothey ask. Here's a definition that conforms to the valuesand principles of the Agile Manifesto[1]. An iterative andincremental (evolutionary) approach to softwaredevelopment which is performed in a highlycollaborative manner by self-organizing teams within aneffective governance framework with "just enough"ceremony that produces high quality solutions in a costeffective and timely manner which meets the changingAuthor α σ : E-mails : du.bdneeds of its stakeholders [6].Agile softwaredevelopment is actually a group of softwaredevelopment methods based on iterative andincremental development, where requirements andsolutions evolve through collaboration between selforganizing, cross-functional teams [4]. In 2001, the"agile manifesto” was written by the practitioners revealswhich items are considered valuable by ASDMs [1]. Asshown in Table 1.More Valuable ItemsIndividuals and InteractionsWorking softwareLess Valuable ItemsProcesses and toolsover Comprehensive DocumentationCustomer collaborationContract negotiationResponding to changeFollowing a planTable 1 : Agile Manifesto (Source: [1])a) Research ReviewAgile software development (ASD) is majorparadigm, in field of software engineering which hasbeen widely adopted by the industry, and muchresearch, publications have conducted on agiledevelopment methodologies over the past decade. Thetraditional way to develop software methodologies followthe generic engineering paradigm of requirements,design, build, and maintain. These methodologies arealso called waterfall–based taking from the classicalsoftware development paradigm. They are also knownby many other names like plan–driven, (Boehm andTurner, 2004), [39]; documentation driven, heavyweightmethodologies, and big design upfront, (Boehm, 2002),[16]. Boehm and Phillip [72] report that during theirproject development experience, requirements oftenchanged by 25% or more. Due to constant changes inthe technology and business environments, it is achallenge for TSDMs to create a complete set ofrequirements up front [26]. Williams and Cockburn, [18]also mentioned that one of problems of TSDMs is theinability to respond to change that often determines thesuccess or failure of a software product.The agile approach to software development isbased on the understanding that software requirementsare dynamic, where they are driven by market forces 2013 Global Journals Inc. (US)5Global Journal of Computer Science and Technology ( CD ) Volume XIII Issue VII Version IAbstract - Today‘s business environment is very muchdynamic, and organizations are constantly changing theirsoftware requirements to adjust with new environment. Theyalso demand for fast delivery of software products as well asfor accepting changing requirements. In this aspect, traditionalplan-driven developments fail to meet up these requirements.Though traditional software development methodologies, suchas life cycle-based structured and object oriented approaches,continue to dominate the systems development few decadesand much research has done in traditional methodologies,Agile software development brings its own set of novelchallenges that must be addressed to satisfy the customerthrough early and continuous delivery of the valuable software.It‘s a set of software development methods based on iterativeand incremental development process, where requirementsand development evolve through collaboration between selforganizing, cross-functional teams that allows rapid delivery ofhigh quality software to meet customer needs and alsoaccommodate changes in the requirements. In this paper, wesignificantly indentify and describe the major factors, that Agiledevelopment approach improves software developmentprocess to meet the rapid changing business environments.We also provide a brief comparison of agile developmentmethodologies with traditional systems developmentmethodologies, and discuss current state of adopting agilemethodologies. We speculate that from the need to satisfy thecustomer through early and continuous delivery of the valuablesoftware, Agile software development is emerged as analternative to traditional plan-based software developmentmethods. The purpose of this paper, is to provide an in-depthunderstanding, the major benefits of agile developmentapproach to software development industry, as well as providea comparison study report of ASDM over TSDM.Year 2 013A B M Moniruzzaman α & Dr. Syed Akhter Hossain σ

Year 2 013Comparative Study on Agile Software Development MethodologiesGlobal Journal of Computer Science and Technology ( CD ) Volume XIII Issue VII Version I6(Fowler, Title 2002; Cockburn & Highsmith, 2001); [16],[36]. Agile systems development methods emerged asa response to the inability of previous plan-drivenapproaches to handle rapidly changing environments(Highsmith 2002), [55]. Williams and Cockburn [18]state that agile development is "about feedback andchange" , that agile methodologies are developed to"embrace, rather than reject, higher rates of change".Agility is the ability to sense and response tobusiness prospects in order to stay inventive andaggressive in an unstable and rapidly shifting businessenvironment (Highsmith, 2002), [55]. The agileapproach to development is about agility of thedevelopment process, development teams and theirenvironment (Boehm & Turner, 2004), [39]. Thisapproach incorporates shared ideals of variousstakeholders, and a philosophy of regular providing thecustomers with product features in short time-frames(Southwell, 2002), [45]. This frequent and regular featuredelivery is achieved by team based approach (Coram &Bohner, 2005), [47]. Agile teams consist of multi-skilledindividuals (Fowler, 2002), [16]. The development teamsalso have on-site customers with substantial domainknowledge to help them better understand therequirements (Abrahamsson, Solo, Ronkainen, &Warsta, 2002), [37]. Multiple short development cyclesalso enable teams to accommodate request for changeand provide the opportunity to discover emergingrequirements (Highsmith, 2002), [55]. The agileapproach promotes micro-project plans to ents (Smits, 2006), [48].M Lindvall, V Basili, B Boehm, P Costa, (2002),[17] summarize the working definition of agilemethodologies as a group of software developmentprocesses that must be iterative (take several cycles tocomplete), incremental (not deliver the entire product atonce), self-organizing (teams determine the best way tohandle work), and emergent (processes, principles, andwork structures are recognized during the project ratherthan predetermined). In the paper by (Abrahamsson,Warsta, Siponen & Ronkainen, 2003), in general,characterized agile software development by aightforward, and adaptive [24]. Boehm, B., & Turner,R. (2005), generalize agile methods are lightweightprocesses that employ short iterative cycles, activelyinvolve users to establish, prioritize, and verifyrequirements, and rely on a team‘s tacit knowledge asopposed to documentation [30].II.Agile MethodsFor over a decade now, there has been an everincreasing variety of agile methods available includes anumber of specific techniques and practices of softwaredevelopment. Agile methods are a subset of “iterativeand evolutionary methods” [83, 84] and are “based oniterative enhancement” [85] and “opportunisticdevelopment processes” [86]. Most of , collaboration and process adaptabilitythroughout the life-cycle of the project [4].ThemajormethodsincludeeXtremeProgramming (Beck, 1999), [82], Scrum (K. Schwaber &Beedle, 2002), [53], Dynamic Systems Development (Highsmith, 2000), Crystal (Cockburn,2002), and Feature-Driven Development (Palmer &Felsing, 2002). [58], [59], [60], [61]. Figure 1 shows anagile software development methodology process flow(Scrum).Figure 1 : An example of agile software development methodology: Scrum (Source: [53]) 2013 Global Journals Inc. (US)

Figure 2 : State of Agile Survey Results 2011 by VersionOne Inc.differentiate traditional and agile development. Theirfundamental assumption of traditional development:“system are fully specifiable, predictable and are builtthrough meticulous and extensive planning”, whereasagile development: “high-quality adaptive software isdeveloped by small teams using the principles ofcontinuous design improvement and testing based onrapid feedback and change”.T. Dyba, & T. Dingsoyr, [74] summarize thedifferences between Agile development and traditionaldevelopment basis on the of an unpredictable world, aswell as emphasizing the value competent people andtheir relationships bring to software development. Agilemethods address the challenge of an unpredictableworld, emphasizing the value competent people andtheir relationships bring to software development [74].Different researchers compare traditional andagile approaches, in their different perspectives, aresummarized in Table 2 (All sources from additionalinformation).Source: http://www.versionone.com [10]Agile software development processes -- suchas the Rational Unified Process (RUP), ExtremeProgramming (XP), Agile Unified Process (AUP), Scrum,Open Unified Process (OpenUP), and even TeamSoftware Process (TSP) -- are all iterative andincremental (evolutionary) in nature [63]. Some thesemodern approaches, in particular XP and Scrum, areagile in nature. The agile methods are focused ondifferent aspects of the software development life cycle.Some focus on the practices (extreme programming,pragmatic programming, agile modeling), while othersfocus on managing the software projects (the scrumapproach) [12].Comparison Agile SoftwareDevelopment Methodologies overTraditional SDMsIII.There are many different characteristicsbetween ASDMs and TSDMs. Boehm [16], for example,reports nine agile and heavyweight discriminators. Hebelieves the primary objective of ASDMs is on rapidvalue whereas the primary objective of TSDMs is onhigh assurance.Study performed S. Nerur, R. Mahapatra, G.Mangalaraj [22] state a comparison of traditional andagile development, they report seven issues to 2013 Global Journals Inc. (US)7Global Journal of Computer Science and Technology ( CD ) Volume XIII Issue VII Version IThe Agile Manifesto articulates the commonprinciples and beliefs underlying these methods(Cockburn, 2002), [16]. Among the first and perhapsbest known agile methods are Scrum and XP (Salo, &Abrahamsson, 2008), [49]. See Figure 2 shows thecurrent rate of Agile methodologies used. Scrum isaimed at providing an agile approach for managingsoftware projects while increasing the probability ofsuccessful development of software, whereas XPfocuses more on the project level activities ofimplementing software. Both approaches, however,embody the central principles of agile softwaredevelopment [31].Year 2 013Comparative Study on Agile Software Development Methodologies

Comparative Study on Agile Software Development MethodologiesTable 2 : Traditional and agile perspectives on software development (Sources: from literature review)Year 2 013IssuesGlobal Journal of Computer Science and Technology ( CD ) Volume XIII Issue VII Version I8TraditionalApproachAgile ApproachDevelopment life cycle(Charvat, 2003); (Nerur, Mahapatra, &Mangalaraj,2005),[34],[22]Style of development(Leffingwell, 2007), [50]Linear; Life-cycle model(waterfall, spiral or somevariation)Requirements (Boehm, 2002);(Boehm and Turner, 2004), [16], [39]Knowable early, largelystable; Clearly definedand documentedEmergent, rapid change,unknown – Discoveredduring the projectHeavyweight architecturefor current and futurerequirementsProcess-centric;Command and controlYAGNI precept (―Youaren‘t going to need it‖)Documentation(Boehm and Turner, 2005) ,[30]Heavy / detailedExplicit knowledgeLight (replaced by face toface communication)Tacit knowledgeGoal(Dybå & Dingsøyr, 2009), [74]Predictability andoptimizationExploration or adaptationChange(Boehm and Turner, 2003), [19]Tend to be change averseArchitecture(Boehm, 2002); (Wysocki, 2009, 2011), [16], [56]Management(Boehm, & Turner, 2005), (Vinekar,Slinkman,& Nerur, 2006),[30], [51]Team members(Boehm, 2002) , (Sherehiy, Karwowski,& Layer, 2007), [16], [41]AdaptiveAnticipatoryDistributed teams ofspecialists; Plan-oriented,adequate skills access toexternal knowledgeTeam organization(Leffingwell, 2007), [52]Pre-structured teamsClient Involvement(Highsmith & Cockburn, 2001), [21]Low involvement;PassiveOrganization culture(Highsmith, 2002) , (Nerur, Mahapatra,Mangalaraj, 2005), [55], [22]Software development process (Salo,& Abrahamsson, 2007), [42]Command and ControlCultureMeasure of success(Highsmith, 2010), [1]Universal approach andsolution to providepredictability and highassuranceConformance to plana) Major agile benefits in comparison to the traditionalapproachIn this section, we presenting list and explainsome of agile benefits in comparison to the traditionalapproach which significantly improves softwaredevelopment in many ways. We try to provide an indepth understanding (in some cases with figures), ofthese merit issues:i. Evolutionary ApproachAgile software development is a highlycollaborative and evolutionary approach [101]. Agilemethods become more popular in the softwaredevelopment industry. In their different research papers,(Boehm, & Turner, 2005; Larman & Basili, 2003; Greer,& Ruhe, 2004; Dybå, & Dingsøyr, 2008; Paetsch,Eberlein, 2003; Abrahamsson, Warsta, 2003; Dagnino, 2013 Global Journals Inc. (US)Iterative; The evolutionarydelivery modelPeople-centric; Leadershipand collaborationEmbrace changeAgile, knowledgeable,collocated and collaborative;Co-location of generalistsenior technical staff;Self-organizing teamsClient onsite and consideredas a team member;Active/proactiveLeadership andCollaboration CultureFlexible approach adaptedwith collectiveunderstanding of contextualneeds to provide fasterdevelopmentBusiness value delivered2002), they believe, Agile methods are iterative,evolutionary, and incremental delivery model ofsoftware development [30], [79], [29], [20], [80], [24],[81].Entire application is distributed in incrementalunits called as iteration. Development time of eachiteration is small (couple of weeks), fixed and strictlyadhered to. Each iteration is a mini increment of thefunctionality and is build on top of previous iteration.Agile software development of short iterative cyclesoffers an opportunity for rapid, visible and motivatingsoftware process improvement [75]. Traditionalapproaches to the data-oriented aspects of softwaredevelopment; however, tend to be serial, notevolutionary and certainly not agile, in nature.

Year 2 013Comparative Study on Agile Software Development Methodologiesprocess (source: agile-development-tools.com)ii. Lightweight MethodsBoehm, B., & Turner, R. (2005), generalize agilemethods are lightweight processes that employ shortiterative cycles, actively involve users to establish,prioritize, and verify requirements, and rely on a team‘stacit knowledge as opposed to documentation [30]. GPerera, & MSD Fernando (2007), also describe Agilepractice is a customer oriented, light-weight softwaredevelopment paradigm, best suited for small sizedevelopment teams in projects under vague andchanging requirements [65]. A number of agile softwaredevelopment methods such as extreme programming(XP), feature-driven development, crystal clear method,scrum, dynamic systems development, and adaptivesoftware development, fall into this category [22].Traditional Software Development Methods (TSDMs)including waterfall and spiral models are often calledheavyweight development methods [26]. Thesemethods involves extensive planning, predefine processphases, heavy documentation and long term designprocess. Lightweight methodologies put extremeemphasis on delivering working code or product whiledownplayning the importance of formal process andcomprehensive documentation [23].iii. Rapid delivery of software productsAgile development methodologies emphasizerapid delivery of software products to the clients.According to (Boehm & Turner, 2005), Fast cycles,frequent delivery: Scheduling many releases with shorttime spans between them forces implementation of onlythe highest priority functions, delivers value to thecustomer quickly, and speeds requirements emergence[30]. ASD methods are iterative and incrementaldevelopment [4], and each successful completion ofdevelopment iteration, it delivers software productincrement to client, thus Agile software development issatisfying the customer through early and continuousdelivery of the valuable software [66]. Traditional,lifecycle based software development delivers thesoftware only after entire completion of developmentprocess and before that clients have no clear idea andview of software to be developed.Figure 4 : Iterative process and incremental deliverysoftware products (source: [4])iv. Highly tolerant of change requirementsThe main difference between heavyweight andagile methodologies is the acceptance of change. It isthe ability to respond to change that often determinesthe success or failure of a software project [18].Heavyweight methods freeze product functionality anddisallow change. Agile systems development methodsemerged as a response to the inability of previous plandriven approaches to handle rapidly changingenvironments (Highsmith, 2002). As second principle ofAgile Manifesto [1] - ―welcome changing requirements,even late in development‖, all agile method(s) is wellorganized, accommodate to change requirements.According to B. Boehm, (2002), organizations ―arecomplex adaptive systems in which requirements areemergent rather than pre-specifiable‖ and agileapproaches ―are most applicable to turbulent, highchange environments‖ [16]. Agile software developmentpromotes adaptive planning, evolutionary developmentand delivery, and encourages rapid and flexibleresponse to change [4].Figure 5 : Agile vs. traditional requirements changemanagement (Source: www.versionone.com) 2013 Global Journals Inc. (US)9Global Journal of Computer Science and Technology ( CD ) Volume XIII Issue VII Version IFigure 3 : Iterative and incremental agile development

Comparative Study on Agile Software Development MethodologiesYear 2 013developmentinherentlywelcomesAgilerequirement changes as well as inclusion or exclusion offeatures throughout the development lifecycle. It ispossible to accept requirement changes while indevelopment phases because of iterative developmentsinvolve with agile development approach. As a result ofthis iterative planning and feedback loop, teams areable to continuously align the delivered software withdesired business needs, easily adapting to changingrequirements throughout the process.v. Accept prioritizing requirementsIn agile software development, requirementsalways provided by client and these requirementfeatures are prioritized by client itself. Agile methodsbreak development tasks into small increments withminimal planning and do not directly involve long-termplanning. Iterations are short time phases that typicallylast from one to four weeks. Thus, top prioritizedfeatures can be delivered each of development iteration.Agile requirements prioritization techniques to supportand deal with frequent changes in priority lists whichhave been identified as success issue to accommodateover changes [73]. In traditional development, softwareproduct with all features will be delivered at a time onlyafter completion of software project.Global Journal of Computer

Figure 1 n: A example of agile software development methodology: Scrum (Source: [53]) 2013 Global Journals Inc. (US) Global Journal of Computer Science and Technology Volume XIII Issue VII Version I

Related Documents:

1. The need for an agile way of working 6 2. The need for an agile way of working 9 3. Agile Core Values - Agile Project Management Vs. 10 Agile Event Management 4. Agile principles 12 _Agile Principles of Agile Project Management 13 _Agile Principles of VOK DAMS Agile Event Management 14 5. Agile Methods 16 _Scrum in Short 16 _Kanban in Short 18

1.1 Purpose of the Agile Extension to the BABOK Guide1 1.2 What is Agile Business Analysis?2 1.3 Structure6 Chapter 2:The Agile Mindset 2.1 What is an Agile Mindset?7 2.2 The Agile Mindset, Methodologies, and Frameworks8 2.3 Applying the Agile Mindset9 2.4 Agile Extension and the Agile Ma

Agile Estimating and Planning by Mike Cohn Agile Game Development with Scrum by Clinton Keith Agile Product Ownership by Roman Pichler Agile Project Management with Scrum by Ken Schwaber Agile Retrospectives by Esther Derby and Diana Larsen Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and .

Agile World View "Agility" has manydimensions other than IT It ranges from leadership to technological agility Today's focus is on organizational & enterprise agility Agile Leaders Agile Organization Change Agile Acquisition & Contracting Agile Strategic Planning Agile Capability Analysis Agile Program Management Agile Tech.

The most popular agile methodologies include: extreme programming (XP), Scrum, Crystal, Dynamic Sys-tems Development (DSDM), Lean Development, and Feature Driven Development (FDD). All Agile methods share a common vision and core values of the Agile Manifesto. Agile Methods: Some well-known agile software development methods include: Agile .

AGILE TESTING For agile testers, test engineers, test managers, developers, technical leads. Ensure the production of effective and valuable software. Agile Fundamentals Agile Programming Agile Software Design Agile Fundamentals Agile Testing Agile Test Automation ICP CERTIFIED PROFESSIONAL ICP CERTIFIED PROFESSIONAL ICP-PRG CERTIFIED .

Agile Manifesto (Agile Principles) The Agile Manifesto is the foundation of most Agile Software Development methods. It has 4 core values supplemented by 12 Principles. The document was developed in 2001 by a group of 17 pioneer software engineers (www.agilemanifesto.org). Agile Software Development Methods Agile Software .

1. Agile methods are undisciplined and not measurable. 2. Agile methods have no project management. 3. Agile methods apply only to software development. 4. Agile methods have no documentation. 5. Agile methods have no requirements. 6. Agile methods only work with small colocated teams.-7. Agile methods do not include planning. 8.