Agile Development And Variation In SCRUM Sprint Information Technology Essay
In Agile development SCRUM is highly acceptable approach. And main body of SCRUM is driven by the sprint. Activities in the SCRUM sprint are sprint meeting, sprint review, sprint backlog, development, acceptance testing, scrum meeting, sprint retrospective, and final shippable work product. it is observed that there are still missing activities that can be accommodated to improve the sprint. The research suggests some more activities that can be accommodated from other agile methodologies such XP, DSDM, and RUP/EUP. The new approach will enhance the sprint capability.
KEYWORDS: Agile development, SCRUM, Extreme Programming, Rational Unified Process, Dynamic Systems Development Method
INTRODUCTION
Agile development is a group of methodologies where requirements and solutions develop through collaboration between self-organizing, cross-functional, cohesive teams.
The main focus is on creating working software that could be handed over to the customer quickly rather than spending a lot of time writing specifications up front. Agile focuses on rapid iteration, with continuous customer input throughout the development lifecycle.
In this paper we introduce a development process, in this process we have identified the missing activities in the SCRUM and collaborated the activities that are available in other Agile methodologies such as XP, DSM and RUP
RESEARCH METHODOLOGY
The methodology selected for this research is based on the qualitative analysis of the agile frameworks available in the industry.
AGILE
Agile has evolved as a light weight software development methodology against the legendary heavy weight software development methodologies such as waterfall, spiral, rapid prototyping, incremental.
Agile methodology is based on iterative and incremental development that break tasks into small increments with nominal planning called iteration. Iterations are short time frames that typically last from one to four weeks. Each iteration involves a team working through a full software development cycle.
AGILE ALLIANCE
In spring of 2001, 17 software developers met at UTAH to see whether there was anything in common between the various light methodologies such asAdaptive Software Development, XP, Scrum, Crystal, Feature driven Development, Dynamic System Development Method (DSDM).
AGILE MANIFESTO
We are uncovering better ways of developing
software by doing it and helping 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 plan
[Martin C. Robert , Agile Principles, Patterns, and Practices in C#, Martin Micah, 2006]
SCRUM
Scrum is an incremental iterative process. In Scrum, product development is done in iterative cycles called Sprints. Sprints are typically 1-4 weeks in length, and the time box is not extendable, i.e. the backlog items that could not be completed in one sprint are catered in the next sprint. Once a sprint date is committed it is never extended. At the start of a Sprint, there is a sprint meeting in which priority items of product backlog are selected and team calculates the efforts and commits to complete them in the Sprint. Every day there is a daily standup meeting in which team reports the progress to each other and update simple visual representations of work remaining in sprint burn down chart. [The Scrum Papers: Nuts, Bolts, and Origins of an Agile Process Jeff Sutherland, Ph.D. Ken Schwaber Co-Creators of Scrum, 2007]
[Deemer.P and Benefield.G, SCRUM PRIMER, 2006]
EXTREME PROGRAMMING
Extreme Programming is an agile development methodology that focuses on the critical activities required to build software. Like other agile methodologies it also supports the development in little iterations after a work product is available to be released.
Unlike traditional SDLC, extreme programming does not support different phases of requirement gathering , analysis, design and development rather it advocates a environment where the client is the part of the team and all the phases of SDLC are executed simultaneously in iterative incremental order.
DSDM
Dynamic Systems Development Method (DSDM) is a software development method originally based on the methodology for rapid application development.
DSDM is an incremental and iterative methodology that focuses on continuous user collaboration.
Its goal is to deliver software systems on schedule and according to the financial plans while adjusting for requirement changes along with the development process. Among all agile methodologies DSDM is a fundamental methodology of Agile Alliance.
[http://en.wikipedia.org/wiki/DSDM ]
RUP
The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003[http://www.eweek.com/c/a/Desktops-and-Notebooks/IBM-Acquires-Rational/]. The RUP is a four-phase (inception, elaboration, construction, transition), prescriptive process whose scope is software development. The EUP extends the RUP to make it a full-fledged IT process. The EUP adds two phases, production and retirement. Not only do you need to develop systems, you also need to run them in production and potentially even remove them from production at some point.
[The Object Primer, Third Edition,Scott W. Ambler 2004]
COMPARISON
Although there are many other agile methodologies such as Feature Driven Development, ICONIX, PRINCE2, Lean Software Development and Crysatal but for the comparison of the activities we have selected four most used agile methodologies which include Extreme Programming, SCRUM, DSDM and RUP.
eXtreme Programming is a revolutionary methodology which focuses on the cross functional software development process and addressing the core software engineering practices such as analysis, development and testing. It makes XP a substantial difference to the quality of the end product.
SCRUM is also an agile framework, which focuses mainly on how to manage tasks within a cross functional team environment.
Before “AGILE” there was a light weight methodology called DSDM. When Agile was devised many of the DSDM principles were integrated in the agile development methodology
[http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html]
Planning And Requirement Gathering
In extreme programming, in order to plan a project, we must know something about the requirements, but we don’t need to know very much. For planning purposes, we need to know only enough about a requirement to estimate it. In SCRUM same is being handled by Product Owner And Team mutually agreeing on the development of the planning of the items based on the product backlog.
In DSDM there is a separate Elaboration phase to gather the requirement and plan the phases accordingly.
RUP has an Inception Phase, Business process re-engineering is a very complex endeavor, and the RUP only provides techniques for business modeling, not for the supporting process. If, however, the business process is simple or well understood, it’s possible that work on it may be undertaken in the inception phase. If this is the case, a more complex inception phase
will be required. [www.scribd.com/doc/41162/Planning-a-project-with-RUP]
Specification & Artifacts
The test cases and code evolve together in extreme programming, with the test cases leading the code by a very small fraction as a result; a very complete body of test cases grows along with the code. These tests allow the programmers to check whether the program works. Major artifacts in SCRUM are Sprint backlog, Product Backlog, Sprint Burn down Charts. Product backlog contains [Deemer.P and Benefield.G, SCRUM PRIMER, 2006]
features (“enable all users to place book in shopping cart”),
development requirements (“rework the transaction processing module to make it scalable”),
exploratory work (“investigate solutions for speeding up credit card validation”),
and known bugs (“diagnose and fix the order processing script errors”).
DSDM has a number of artifacts that are created and evolves with the project. These artifacts include Feasibility Reports, Non-Functional Requirements, Business requirements, Review meeting records, Systems Architecture Definition, Development Plan, Functional Model, Implementation Plan, Test records, User documentation, Project Review Document.
In RUP Use case model, Supplementary requirements, Use case (Describes a service provided by the system), User interface prototype (Simulates the user interface, as defined and testable by users) Functional test (Tests the functionality needed to meet a particular requirement), Development environment (Sets up the development environment and manages changes to this environment)
Progress
To measure the team progress in extreme programming there is a steering team, record progress chart is used. SCRUM meeting, burn down chart in SCRUM, Big visible charts in DSDM and in RUP defined sources for project indicators. Defined thresholds for the project indicators.
coding
In extreme programming Code is written by pairs of programmers working together at the same workstation. One member of each pair drives the keyboard and types the code. The roles change frequently. In SCRUM same is done according to the willingness And Commitment Of Team. In DSDM initially a Design Prototype is created which is tested by the customer after the validation of Design the tested System is handed over to the next phase. In RUP Coding is done on the bases of the available use cases, lengthy use cases may be divided in to several iterations
[http://en.wikipedia.org/wiki/DSDM#Stage_3:_Design_and_Build_Iteration
http://en.wikipedia.org/wiki/RUP]
Testing
As discussed earlier in extreme programming All production code is written in order to make a failing unit test pass. Write the code that makes that test pass.
For SCRUM Acceptance testing is done at the end of each SPRINT. In DSDM, throughout project life-cycle Testing is done regressively. And same goes for RUP.
Review
The details about the user stories are captured in the form of acceptance tests specified by the customer. The acceptance tests for a story are written immediately preceding, or even concurrently with, the implementation of that story.
The review meeting in SCRUM is called Sprint Retrospectives. In DSDM test records are developed according to the user documentation and checks the correctness of the designed system. For review purpose testing and reviewing are the main techniques used. Reviews are not available in RUP
Iterations
In XP iteration is usually 2 weeks in length and represents a minor delivery that may or may not be put into production. The iteration plan is a collection of user stories selected by the customer according to a budget established by the developers. In Scrum it is called Sprint Cycle which is usually of the length of 4-6 weeks and does not vary. In DSDM there is only one iteration in which complete build is developed. In RUP iterations are not time oriented rather there are use cases that help in determining the timeframes of iteration.
Release Management
XP teams often create a release plan that maps out the next six or so iterations. That plan is known as a release plan. A release is usually three months’ worth of work. In SCRUM 2 -3 sprints and as decided by product owner. In DSDM there is a single release concept that is sent to the customer in the entire project as it is adept in SDLC. DSDM is also unique in that it categorizes time boxes depending on their function: Investigate, Refine, Consolidate. The activities of RUP include Release handover, training the end users and to facilitate in User acceptance testing of the system.
Customer Collaboration
In XP customer is the part of the team. Customer is virtually present in the vicinity and he is always present to facilitate or elicitation of the requirements. [Kent Beck, Extreme Programming Explained, First Edition September 29, 1999 ]. In SCRUM product Owner can be Customer, in DSDM Executive Sponsor is called the “Project Champion”. It is a vital position from the user organization since it has the responsibility to facilitate all the requirements in the requirements elicitation. In RUP Customer collaboration is done throughout the project phase
Project Management
In XP Project management is done through Inter team coordination, A pair has the right to check out any module and improve it. No programmers are individually responsible for any one particular module or technology. Everybody works on the graphical user interface. In SCRUM Product Owner and Scrum Master are the facilitators. In DSDM there is a project Manager who can be a in-house IT Staff or a client. In RUP the Project manager plans the phases of the entire project along with the iteration plan which describe the iterations.
Deployment:
In RUP the purpose of deployment is successful delivery of the working software to its end users. It includes packaging, distributing and producing external releases of the software,.
Support
In RUP: Software release installations and technical support to the client or end user
Architecture
DSDM makes an architecture phase compulsory. In Business Study RUP make it able to agree on development priorities and a SYSTEM ARCHITECTURE DEFINITION are developed
ACTIVITIES BENCHMARK
Following is the benchmark of all the above discussed agile development project lifecycle activities
PRACTICES
XP
SCRUM
DSDM
RUP
PLANNING/REQUIREMENTS
User stories
product owner Product Backlog
Elaboration Phase and feasibility studies
Inception Phase and Business modelling
ARTIFACTS
Test case Archives
Product Backlog, Sprint Backlog, burndown charts
Feasibility Report, Outline Plan, Business Area Definition
Use case model,
User interface prototype, Functional test
PROGRESS
steering team, record progress
scrum meeting, burn down chart
Big visible charts
Defined thresholds for the project indicators.
CODING
Pair Programming
commitment of team
Prototype designing and evolution
commitment of team
TESTING
write the code that makes that test pass.
Acceptance Testing
Throughout the project life-cycle.
Testing occurs throughout the project
REVIEW
acceptance tests for a User story
sprint restrospective
correctness of the designed system by review and testing
Not Available
ITERATION
2 weeks in length
4 -6 Weeks in length
Single Iteration
Iterations are not time based
RELEASE
Release consists of 6 Iterations
2 -3 sprints and as decided by product owner
Single release
Single release
CUSTOMER COLLABORATION
Part of the team
Product Owner can be a customer
Executive sponsor; This role has an ultimate power to make decisions
collaboration throughout the project phase
PROJECT MANAGEMENT
Project manager is Big Boss
Product Owner
Could be client or any one from the staff
Phase plan by the team
DEPLOYMENT
Not Available
Not Available
Not Available
Software Packaging and Distribution
SUPPORT
Not Available
Not Available
Not Available
Software release installations and technical support to the client or end user
ARCHITECTURE
Not Available
Not Available
Architecture phase compulsory
In Business Study architecture is defined
ACTIVITIES COVERED IN SPRINT
Sprint is a complete cycle of activities. This activity is time boxed, which means that the time allocated for a sprint cannot be varied and team has to provide a tested and working work product at the end of the sprint. The sprint backlog items that could not be completed in the sprint are catered in the next sprint.
The activities in SPRINT are as follows
Sprint burn down chart
Design
Development
Testing
Daily stand up meeting
WHAT COULD BE ACCOMODATED IN SPRINT
Things that could be added in sprint could be more customer collaboration, focus on the system architecture
Order Now