AUP – Agile Unified Process XP – Extreme Programming FDD – Feature-Driven Development Scrum – Scrum and derivatives A-Scale – Agile at scale methods Hybrid – Mix of methodsLegend Small Project (567): project that delivers a product can be developed by a single agile team. Medium Projects (581): agile project that uses 2 to 5 teams at same locations to develop products. Large Projects (352): large project that uses 5 or more teams often at different locations to develop products.NotesFigure4 – Methodology Usage by No. of Organizations by Size of ProjectFig 3: Ref 9: Scrum PracticesB. Scrumis the Most Popular Agile Methodology As shown in Figure 4,the most popular agile method used today continues to be Scrum or a Scrum-basedderivative like Large Scale Scrum (LeSS). Other agile methods employed,but in much smaller percentages of one of survey population, include the AgileUnified Process (AUP), ExtremeProgramming (XP), and Feature-Driven Development (FDD).
As amplified insubsequent findings, methods used for agile-at-scale (AS) like the Scaled AgileFramework (SAFe) and hybrid (HYB) methods have increased in popularity as agilehas both been used in larger projects and adopted enterprise-wide. III. Difference Between Agile software developmentand Traditional software development Approach Traditional approaches follow sequence steps likerequirement gathering, planning, modelling, construction & development,testing and deployment. First, the client requirements are carefully documentedin the form of specification document. Then, the general architecture of thesoftware is visualized and the actual coding originates. Then comes the varioustypes of testing and the final deployment. The basic idea here is the detailedvisualization of the finished project before the building starts, and workingone’s way through to the visualized finished structure.
It freeze product functionality and disallow change.The approach to plan everything and then to follow theplan works smoothly for stable and less complex environment but for larger andmore complex environments, this technique would fall apart. Traditional methodologies treat people as predictablecomponents similar to what they treat their processes. All tasks and roles areassigned to individuals and it is expected that the individuals will performtheir tasks accordingly.
They put customer feedback and testing at the laststage of their project lifecycle.A predictive heavyweight project considers handing aproject that is on time and on-cost to be a success 4.Agilemethodologies develop software as an empirical (or nonlinear) process, considerpeople – customers, developers, stakeholders, and end users – as the mostimportant factor of software methodologies. An agile team is a self-organizingteam .Agilists welcome changes at all stages of the project. It valueconformance to the actual results as opposed to conformance to the detailedplan. Agile software development spreads out the decision making to thedevelopers, management recognizes the expertise of the technical team to maketechnical decisions without their permission. It involve customer feedback on a regular and frequent basis.
Agilistsmeasures project success by questioning if the customer got software that ismore valuable to them than the cost put into it. According to Martin Fowler, “Agood predictive project will go according to plan, a good agile project willbuild something different and better than the original plan foresaw” 5. IV. SCRUM MethodologyScrumis a dominant agile methodology. It is used exclusively by 42% of organizationswhile another 54% of the companies combine it with other techniques 8.
Firstdescribed in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka in the New ProductDevelopment Game, this approach is based upon the systematic interactionsbetween the three major roles: Scrum Master, Product Owner, and the Team8.Basically, Scrum is derived from activity that occurs during a rugby match. Fig 2: Roles of scrumScrumbelieves in empowering the development team and advocates working in smallteams (say- 7 to 9 members). It consists of three roles, and theirresponsibilities are explained as follows: Scrum Master: Master is responsible for setting up the team, sprint meeting and removes obstacles to progress Product owner: The Product Owner creates product backlog, prioritizes the backlog and is responsible for the delivery of the functionality at each iteration Scrum Team :Team manages its own work and organizes the work to complete the sprint or cycle A. ProductBacklog This is a repository where requirements aretracked with details on the no of requirements to be completed for eachrelease. It should be maintained and prioritized by Product Owner, and itshould be distributed to the scrum team. Team can also request for a newrequirement addition or modification or deletion A basic unit of workin scrum – sprint – is a short development cycle that is needed to produce ashippable product increment. A sprint usually is between 1 and 4 weeks long.
Practices are described in detailed 9: Agile model Requirements Role of customer XP User Stories as both written cards and conversations. Written cards are not mandatory for implementation and are only considered “promises for conversation”. Requirements are not supposed to be complete or clearly stated. User stories are destroyed after implementation is completed. On-site customer is required to participate in requirements definition, estimation and prioritize. Scrum User stories are used to represent requirements. The actual requirements are defied based on the discussion of user stories between software owner and software developers.
Software owner plays the lead role in defining the requirements. FDD Requirements are represented using UML diagrams. List of features are used to manage the functional requirements. Requirements are first represented in a high-level context. For each modeling area, the requirements are modeled per domain. After requirements are modeled, it should be peer reviewed. Not specified.
Lean Software Development Just-In-Time methodology is applied in requirements gathering. User stories (cards) are also used by the customer to specify initial requirements and sample screens by the developers. Developers then provide a time estimate for each card. Provide input on sample screens and initial user stories.
ASD Requirements gathering is part of the speculation phase. Not specified. Kanban User stories are used to define each sprint main goal. Each sprint handles a single user story. Each story is divided into server-side and client-side task. Each task is further divided into subtasks. Not specified.
AUP Requirement phase consists of the following activities: (1) identifying stakeholders, (2) understanding problem, (3) establishing a basis of estimation, and (4) Defining user interface. User stories are used in the construction phase. Requirements are presented as Business Use Case Model. Not specified.
DSDM Requirements are gathered and prioritized during the feasibility phase. Not specified. Table1. Comparison between the different requirements management techniques underagile methods.
II. Agile modelling TechniquesAgileprocesses are similar group of processes including Extreme Programming (XP),Scrum, Feature Driven Development (FDD), Lean Software Development (LSD),Adaptive Software Development (ASD), kanban, Agile Unified Process (AUP) andDynamic System Development Methods (DSDM), Baruahpresented in 3 a comparative study about the different ways each of the agilemethodologies manage requirements. Table 1 summarizes the differences betweenthe eight agile software development methods in terms of requirementsmanagement as presented in 3. Fig 1: Ref 6: Agile System Development LifecycleCustomer is the main focus of softwaredevelopment, customer satisfaction plays vital role in development anddeployment of software product so now a days companies are aiming to adoptcustomer centric methodologies which will help to produce valuable software inshort span of time within available budget.
Agile Software developmentmethodology is one of the software development approach which helps to bestmeet changing requirements of customers. This paper provides introduction ofagile methodology and different agile models thereby concentrating on Scrum.Keywords- Software developmentapproaches, agile methodology, agile modeling, scrum. I. IntroductionAgile software development methodology have been developed and evolved sinceearly 1990s.
Due to the short development life cycle through an iterative andincremental process, the agile methods have been used widely in businesssectors where requirements are relatively unstable 1. Agilepractices are based on a set of principles written by seventeen professionalsand are now in use of multiple companies around world 2.Themechanism which attracts me towards agile approach for development of softwareproduct is one of the characteristic of this methodology: “Drawing the customeronto the team; eliminating the “us and them” attitude & Rapid, incrementaldelivery of software product thereby including easy adaptation to changes.The “Manifestofor Agile Software development Ref: agilemanifesto.
org: We are uncovering better ways of developing software by doing it andhelping others do it” Through this work we have come to value:· Individuals and interactions over processes and tools· Working software over comprehensive documentation· Customer collaboration over contract negotiation· Responding to change over following a planSo the Manifesto for Agile Softwaredevelopment and the stated “Principles behind the Agile Manifesto” are generallyconsidered to be representative of agile values.