You are on page 1of 12

HEADSTRONG SERVICES PVT. LTD.

, NOIDA PRESENTS WHITE PAPER

IN

10th Annual International Software Testing Conference in India 2010


ON

Agile Methodology:
Using SCRUM
By Gautam Berry 10/06/2010 Gautam.Berry@headstrong.com

Page 2 of 12

Table of Contents
1 Introduction ............................................................................................................................. 3 2 Overview ................................................................................................................................. 3 3 Agile Methodology................................................................................................................... 5 3.1 Characteristics of Agile Methodologies........................................................................5 3.2 Agile Manifesto........................................................................................................... 6 4 Using SCRUM .......................................................................................................................... 6 4.1 Phases of an Agile Development Project using SCRUM .................................................6 4.2 SCRUMProcess........................................................................................................... 7 4.3 SCRUM Roles and Responsibilities............................................................................. 8 4.4 SCRUMand QA ............................................................................................................. 8 5 Agile Implementation ............................................................................................................... 9 6 Case Study: Implementing Agile Approach Using SCRUMin a Project:...................................10 7 challenges ............................................................................................................................ 1 1 8 Conclusion ............................................................................................................................ 12 9 References............................................................................................................................ 12 10 Biography .......................................................................................................................... 12

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 3 of 12

Abstract
In the ever-evolving Software Industry, there are many software models, which are implemented depending upon the characteristics of the project. Each project has its own parameters like objective, scope, requirements, resources, architecture, domain and size. Depending upon these parameters, it is decided whether Traditional Methodology or Agile Methodology is to be used. In this paper, an attempt has been made to give an overview on Agile (lightweight) technologies and SCRUM. An effort has been made to show that why projects in this software world should start thinking to use Agile. The aim of this paper is to analyze Agile Manifesto and its applicability using SCRUM methodology. We have tried to do it by doing a literature review and empirical case study. SCRUM methodology is one of the most famous project or program management methodologies. Agile Methodology is a new methodology of Software Development and has many advantages as compared to the classical methods.

1 I N TRODUCT ION
Agile Software Development is a methodology for undertaking software development projects in which incremental functionality is released in smaller cycles, and work is performed in a highly collaborative manner by self-organizing teams that embrace and adapt changes to ensure that customers needs are truly met. Agile Software Development was introduced as a way to reduce costs, minimize risks and ensure that the final product is truly, what customers requested. The idea behind the Agile approach is that instead of building a release that is huge in functionality (and often late to market), an organization would adapt to dynamic changing conditions by breaking a release into smaller shorter cycles of 1 to 6 weeks. Each cycle is called an iteration, or sprint, and it is almost like a miniature software project of its own, because it includes all of the tasks necessary to release the incremental new functionality. Agile methodology emphasizes real-time communication, preferably face-to-face, versus written documents and rigid processes. In addition, one of the most broadly applicable techniques introduced by the agile processes is to express product requirements in the form of user stories. Each user story has various fields including an actor, a goal or task that they need to perform, an explanation of why it is needed and the associated value, and a corresponding priority.

Scrum is an iterative, incremental framework for project management and agile software development. Scrum is a project management methodology to facilitate agile software development, and enable the creation of self-organizing agile teams. A ScrumMaster is like a traditional project manager in the sense that he/she oversees the centralization of team communication, requirements, schedules and progress. But it is also very different because his/her main responsibility is to facilitate team communications and provide guidance and coaching, while removing impediments to the ability of the team to deliver its goals. Unlike a traditional project manager, the ScrumMaster does not direct the team, because an agile team is based on the philosophy that a team member is committed to the other team members, not to a management authority.

2 O VER VI EW
Agile methods are made up of processes, principles, people and tools. The Agile process is a handful of iterative, incremental development approaches based on lean manufacturing practices. Popular Agile approaches include XP (Extreme Programming), SCRUM, Feature Driven Development (FDD) and Dynamic Systems Development Method (DSDM), the more popular of which are XP and SCRUM. The cornerstone of all Agile approaches is an iterative and incremental flow of what looks like a perpetual beta. Short iterations deliver new, fully implemented software functionality in tested, time-boxed increments every four to six weeks. Customers are considered part of the development team and are actively involved in driving application evolution. Development teams are empowered to execute on feedback given. With Agile processes, the customer and the team know exactly where they are at the close of each iteration resulting in more predictable project deliveries. In Agile projects, change is expected and embraced. Features and business requirements are expected to change and the project team constantly inspects, prioritizes and adapts in order to present the customer with working versions of incremental functionality. This approach results in applications that meet business needs with a dramatic reduction in delivery effort.

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 4 of 12

[High Level View of Agile]


Scrum is an agile framework for completing complex projects. Scrum originally was formalized for software development projects, but works well for any complex, innovative scope of work. The possibilities are endless. The Scrum framework is deceptively simple. Scrum is a process skeleton, which contains sets of practices and predefined roles. The main roles in Scrum are: 1. 2. 3. the ScrumMaster, who maintains the processes (typically in lieu of a project manager) the Product Owner, who represents the stakeholders and the business the Team, a cross-functional group of about 7 people who do the actual analysis, design, implementation, testing, etc.

During each sprint, typically a one to four week period (with the length being decided by the team), the team creates a potentially shippable product increment (for example, working and tested software). The set of features that go into a sprint come from the product backlog, which is a prioritized set of high level requirements of work to be done. Which backlog items go into the sprint is determined during the sprint-planning meeting. During this meeting, the Product Owner informs the team of the items in the product backlog that he or she wants completed. The team then determines how much of this they can commit to complete during the next sprint. During a sprint, no one is allowed to change the sprint backlog, which means that the requirements are frozen for that sprint. After a sprint is completed, the team demonstrates how to use the software. Scrum enables the creation of self-organizing teams by encouraging co-location of all team members, and verbal communication across all team members and disciplines that are involved in the project. A key principle of Scrum is its recognition that during a project, the customers can change their minds about what they want and need (often-called requirements churn), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. As such, Scrum adopts an empirical approachaccepting that the problem cannot be fully understood or defined, focusing instead on maximizing the teams ability to deliver quickly and respond to emerging requirements.

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 5 of 12

[High Level view of Scrum]

3 A GILE M E THOD OLOGY


Being agile is critical if you are to succeed in todays competitive world. More and more people are achieving greater productivity and success by applying agile methodology to their work. Organizations of all sizes are achieving greater success by adopting the Agile Method, replacing rigid and inflexible processes with this dynamic and iterative approach. Agile Methodologies aim at dividing the software into smaller convenient software parts, which can be delivered independently, and in an incremental manner. . The aim of any Agile project is to deliver a basic operational product as quickly as possible and then to go through a process of continuous enhancement.

3.1 Characteristics of Agile Methodologies

The Agile Methodology is driven by following focal values:

o o o o

Individuals and interactions over processes and tools The Agile movement emphasizes the relationship and communality of software developers and the human role reflected in contracts, as opposed to institutionalized processes and development tools. Working software over comprehensive documentation The objective of the software team is to continuously turn out tested working software. New releases are produced at frequent intervals. The developers are urged to keep the code simple, straightforward, and technically as advanced as possible, thus lessening the documentation burden. Customer collaboration over contract negotiation The relationship and cooperation between the developers and the clients is given preference over strict contracts. From a business point of view, agile development is focused on delivering business value immediately as the project starts, thus reducing the risks of non-fulfillment regarding the contact. Responding to change over following a plan The development group, comprising both software developers and customer representatives, should be well informed, competent and authorized to consider possible adjustment needs emerging during the development process life cycle.

The following are the characteristics of Agile Software Processes, which allow shortening the life cycle of projects:

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 6 of 12

o o o o o o o o o

Modularity on development process level Iterative with short cycles enabling fast verifications and corrections Time-bound with iteration cycles from one to six weeks Development process should remove all unnecessary activities Adapt to new emerging risks Incremental process approach to build functional application in small steps Incremental approach minimizes risks People-oriented, i.e. agile processes favor people over processes and technology Collaborative and communicative working style

3.2

Agile Manifesto

Following are the principles of the Agile Software development made by the Agile Manifesto:

o o
o o o o o o

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

o o o o

Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

Some of the most commonly used Agile Methods include Extreme Programming (XP), SCRUM, Feature Driven Development (FDD) and Rational Unified Process (RUP) to name a few.

4 U SIN G SCRUM
SCRUM methodology is one of the most famous project or program management methodologies. The SCRUM approach has been developed for managing the systems development process. The Scrum methodology is iterate (the product is produced during the small cycles called iterations), incremental (the functionality of the product increase during each iteration by adding new properties) and use its own terminology for working people and some procedural steps. Scrum methodologies have many elements but none of them is random and unnecessary. There is a project team consisted of the owner of the product, ScrumMaster and Scrum team. Each one has a different task to perform.

4.1

Phases of an Agile Development Project using SCRUM


Agile can be customized to fit each corporation in terms of size, iteration time, experience, etc, but typically, an Agile Project using SCRUM will have these phases and milestones:

Kickoff Meeting - Within an agile development project, this is a key element for getting the project launched. The goal of this meeting is to get everybody on the team together to review the product backlog (which is the master list of all requirements desired

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 7 of 12
in the product that the product owner has drafted in the form of user stories). A kickoff meeting usually lasts at least half a day with everybody together going over a story writing workshop -- in which stories are selected and then decomposed into programmable tasks and written in a white board together along with the time estimates for completion. Sometime real customers are invited to the kickoff meeting as well to review and clarify the product backlog with the agile team.

Sprint/ Iteration planning - the team collectively decides the sprint goal and sprint backlog (list of prioritized work to be done for that particular sprint). While the team is collectively creating the sprint backlog, stories need to be broken into either sub-stories or smaller tasks. Unlike a traditional project manager function, the ScrumMaster role in this meeting is to maintain the backlog list in the meeting based on team feedback and consensus, make sure that nobody is volunteering for too many tasks to the point of overload, and facilitate the process of building personal commitment to the team.

Scrum Meetings - The objective of this meeting is to go around so each team member can answer 3 questions: what have I accomplished since the last meeting (developed, tested, written, etc), what will I be working on next, and what are the problems, if any, preventing me from accomplishing my goals. These meetings are very important to make sure that the team moves towards achieving their sprint goal, or adapts/evolves and changes priorities and tasks as needed if new stories, impediments or new scenarios are encountered.

o o

Final Acceptance Meeting - At the end of the sprint or iteration, usually a final acceptance meeting takes place, which is typically done by presenting what the team has accomplished, and by delivering a demo to the customer or to a larger audience. Sprint Retro Meeting - At the end of iteration there is also a sprint retro meeting, similar to a postmortem meeting at the end of other traditional projects, so the team gets together to evaluate what worked well, and what needs to be improved during their next iteration.

4.2

SCRUM Process
The SCRUM process includes three phases: o o o Pre-game Development Post-game

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 8 of 12

[SCRUM Process]

Pre-Game Phase: The Pregame phase includes two sub phases: Planning and Architecture / High Level Design.

Planning phase includes the definition of the system being developed. A Product Backlog List is created containing all the requirements that are currently known. The requirements are prioritized and the effort needed for their implementation is estimated. The Product Backlog list is constantly updated with new and more detailed items. Planning also includes definition of project team, tools, resources, risk assessment and controlling issues. At every iteration, the updated Product Backlog is reviewed by Scrum Team(s) to gain commitment for next iteration. Architecture Phase includes planning of the high-level design of the system including the architecture based on the current items in the Product Backlog. A design review meeting is held to go over the proposals for the implementations and decisions are made based on review. The preliminary plans for the contents of releases are prepared.

Development Phase: This phase is the agile part of the SCRUM approach. The different environment and technical variables indentified in the SCRUM are observed and controlled using SCRUM practices (Sprint Planning Meeting / Daily Scrum Meeting). The SCRUM aims at controlling these variables constantly in order to be able to flexibly adapt to changes. In the development phase, the system is developed in Sprints. Sprints are iterative cycles where the functionality is developed or enhanced to produce new increments. Each Sprint includes the traditional phases of Software Development (Requirements / Analysis / Design / Evolution and Delivery). The architecture and design of the system evolve during Sprint Development.

Post Game Phase: This phase contains the closure of the release. This phase is entered when an agreement has been made that that the environment variables such as the requirements are completed. The system is now ready for the release and the preparation for this done during the post game phase, including the tasks such as integration, system testing and documentation.

4.3

SCRUM Roles and Responsibilities


Three major roles in SCRUM have different tasks and purposes during the process and their practices.

SCRUM Master: Scrum Master is the new role introduced by SCRUM. Scrum Master is responsible for ensuring that the project is carried through according to the practices, values and rules of Scrum and that it progresses as planned. Scrum Master interacts with the project team as well as the customer and the management during the project. He is also responsible for ensuring that all impediments are removed and changed in the process to keep the team working as productive as possible.

Product Owner: Product Owner is officially responsible for the project, managing, controlling and making visible the Product Backlog List. He makes the final decisions of the tasks related to the Product Backlog, participates in estimating the development effort for backlog items and turns the issues in the Backlog into features to be developed. Scrum Team: Scrum Team is the project team that has the authority to decide on the necessary actions and to organize itself in order to achieve goals of each sprint. The Scrum team is involved in effort estimation, creating the Sprint Backlog, reviewing the product backlog list and suggesting impediments that need to be removed from the project.

4.4

SCRUM and QA
Agile and Scrum are really changing the way testing is perceived throughout the project. Testing is not a phase at the end; it is integrated throughout the entire iteration cycle, and it goes hand in hand with programming tasks. A testing role performed within an agile project ensures:

Better communication and more collaboration among QA & development folks: In an Agile Project, the QA team is involved from the start along with their development counterparts. They have access to same information about product requirements and customer

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 9 of 12
needs at the same time. This collaboration from the onset, combined with the fact that development and QA are part now of the same agile team, that they get together on a daily basis, and that they have full visibility into the tasks that each other is performing towards the overall success of the sprint, means better and more frequent communication among themselves. In addition, because the entire team meets everyday (development, QA, product management, etc) there are more opportunities for collaboration and more viewpoints towards performing a particular task. In addition, the traditional rivalry that one may find among QA and development is eliminated because there is a single agile team now working to achieve a common goal.

A new peer to peer relationship between development and QA personnel: Agile methodologies are all about building selforganized teams, and the voice of a QA engineer/tester carries the same weight than a developer. In the daily scrum meeting, each team member is asked about their accomplishments (testing, developing, writing product documentation, etc), plans, and obstacles, treating all of the members as equal partners. On an agile team the question of how are we going to test it, is as important as how are going to build it. In addition, because testers tend to be exceptionally good at clarifying requirements and identifying alternative scenarios, they provide valuable input on design and architectural decisions throughout the project, right from the beginning.

Looking for ways to optimize testing efforts: In Agile Projects, we have to use automation, and planning and performing testing efforts very efficiently. With shorter development cycles of typically not more than 6 weeks, and with builds being released all the time, testing efforts need to be optimized as much as possible, because there is not separate test phase as such. One of the ways to achieve this is by leveraging both Exploratory Testing and Automated Testing throughout the project. Exploratory testing will come very handy when looking for bugs, opportunities to improve, and missing features. Therefore, we should plan on exploring the product at the beginning of each new sprint, or any time that there is a change done to a product feature within the sprint cycle. Similarly, we will need to plan and build scripts to perform automated functional and regression testing within the sprint, because there is not enough time for performing thorough manual testing. One of the things to remember is that there are no lengthy requirement documents or specifications apart from the stories encapsulated on the backlog files. So the only way to make sure that each feature is fully developed, tested, and accepted by the product owner before counting it as "DONE!", is by using the sprint backlog as a test plan (or writing a test case or script for every feature). Some teams treat test case scenarios as entries that need to be added to the product/sprint backlog files for planning and tracking purposes.

A GILE I M PLEM ENT AT ION

Agile development is consistently delivering meaningful and measurable business results. There have been significant improvements that have been realized by implementing Agile Methodologies. The key drivers to adopt agile methodology are to manage changing priorities and to accelerate time to market. According to Project Management Research Institute, 90% organizations reported improved productivity, 85% reported reduced software defects, 83% reported accelerated time to market and 66% reported reduced cost. The below graph represents the benefit of using Agile Methodology over Traditional Approach:

The use of Agile Methodology ensures that the expected target value for the business is achieved by adding more value as expected by business and adapting to changing requirements, whereas the Traditional Waterfall approach limits to delivering minimum accepted value as the cost of adapting to ever changing needs of business is very high. While implementing an Agile Methodology following key practices should be employed in the project:

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 10 of 12
o o o o o Iteration Planning Unit Testing Daily Standup Release Planning Continuous Integration

While implementing Agile, one will have to unlearn many of the conventional management practices in order to accept the culture imbibed on the agile values.

Agile Values: o o o o Commitment: Willing to commit to a goal. Focus: Focus all the efforts and skills on doing the work that have been committed. Openness: Everything about the project should be visible to everyone. Respect: Individuals are shaped by their background and experiences. It is important to respect the different people who comprise a team.

Courage: Have the courage to commit, to act, to be open, and to expect respect.

6 C ASE S TUD Y : I M PLEM ENT IN G A GI LE A P PROAC H U SI NG SCRUM


P R OJ ECT :

IN A

Let us discuss an example of one of the projects on which I have worked and I have seen the project grow from using Traditional Approach to Agile Methodology. After the implementation of Agile, there was a tremendous improvement in the quality of deliverables and the time to market was reduced. In our project, we used SCRUM to implement Agile. Traditional Approach: During the days when our project worked on traditional Waterfall Model, each phase of the project had a static timeline, the requirements were agreed before the actual planning, and design phase started. There were predecessors to each phase and only when the previous phase of SDLC was completed, then we used to move to the next phase. As a result, if there were design level bugs or design flaws identified in the Testing or Implementation phase of SDLC, the entire cost of rework increased exponentially. Moreover, there was an impact on the timeline of the deliverables. It was observed that more than 60% of our projects were delayed while using the traditional Waterfall Model.

Following were our observations that prompted us to use Agile:

o o o

When there were design flaws identified late in the SDLC, then things became very complicated in the Implementation The traditional model required all requirements explicitly, but it was often difficult for the customer to state all requirements explicitly. Any changes in requirements could not be accommodated once the design was finalized.

o Small errors or changes caused a lot of rework and extra effort for development and testing teams. The working model of the software was released to client only when all the phases of traditional Waterfall model were successfully completed.

Agile Implementation using SCRUM in our project: Due to the above-mentioned observations, and ever-growing nature of work and constantly changing requirements, the project team initiated and presented the clients and stakeholders with the idea of implementing Agile Methodology. SCRUM being the simplest of all agile implementation techniques was acquired and implemented. The implementation of SCRUM improved our Quality, RFT (Right First Time) and CSAT (Customer Satisfaction) figures based on the following parameters:

Customer Collaboration: Before the Agile Implementation, customers were only involved in the requirement identification and analysis phase.

Customers did not intend to take part in deciding the approach that the project team intended to follow to achieve the target. Customers were only interested in the final working software as the deliverable. However, after the implementation of Agile, customer stared taking part in preparing the Product Backlog. He also started taking part in estimating the development effort for Backlog items and turn issues in Backlog into features to be developed. Moreover, before the release of the project customers were presented with a demo to take the final acceptance on the deliverable. In case there were any suggestions or feedbacks, they were considered after appropriate prioritizing for the next sprint. This really helped in improving our RFT

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 11 of 12
(Right First Time) as the customer was aware of the status of deliverables at all stages of the product development. This further helped in gaining confidence of the customer and hence improved our CSAT (Customer Satisfaction).

Accept Changes: Before the Agile implementation, because of the traditional approach we followed, we were not able to accommodate the

change in requirements late in the product development phase. As a result, this reduced our customers confidence on the delivery, which further affected our CSAT and RFT, figures as the final product that we delivered was not what the customer actually wanted. However, after the implementation of Agile, we were able to accommodate the changes in requirements and prioritize them accordingly in the upcoming sprints of the delivery. Usually, our project had four Sprints of the delivery and even if the customer required a change in the requirement that was released in Sprint 1 could be accommodated in the upcoming Sprints (as late as Sprint 4). Hence, we were able to give our customer the flexibility to change the requirements even in the later stages of the product development. This further enhanced the confidence of our customer on the deliverables, which further improved our CSAT (Customer Satisfaction) and RFT (Right First Time).

Product Enhancements using iterative approach: Before the Agile implementation, the product was delivered at one go (usually at the end of

testing phase) comprising of all the requirements as requested by the customer, no matter how complex the product was. However, after the implementation of Agile, the set of requirements were broken down and a sprint plan was prepared. A Product Backlog was created containing the set of the entire requirements to be delivered. Then a Sprint Plan was prepared deciding upon the requirements to be included and delivered in each sprint. Usually, the entire set of requirements was divided in four sprints. In case the customer required any additions or modifications to the original set of requirements, they were then prioritized and taken into consideration in the upcoming sprints. This way we were able to adapt better to changing customer needs. Since the complete set of delivery was divided in four sprints and each sprint being a potentially working product, helped in RCT (Reduced Cycle Time). In addition, this improved the Quality of our deliverables as regression testing was carried out repeatedly in every sprint ensuring that the code of the current sprint has no impact on the functionality delivered in previous sprints.

Visibility: The implementation of Agile improved the visibility of the product being developed among teams. This way all the teams were equally

motivated to achieve the common goal. Unlike the tradition approach, testing teams also took part in providing input on design and architectural decisions. Testing teams were involved from the requirement analysis phase until the product release. This way a better channel of communication between design, development and testing teams prevailed which helped in resolution of issues at early stages. This further helped in achieving RCT (Reduced Cycle Time). This way after the implementation of Agile using SCRUM, we achieved:

o o o o

Reduced Cycle Time: 30% RCT Right First Time: Improved from 75% RFT to 95% RFT Customer Satisfaction (CSAT): Improved our CSAT from 3.5 to 5.0 (on a scale from 1.0 to 5.0) Quality: The improvement in RFT figures reflects the improvement in Quality. In addition, the test effectiveness improved from 80% to 95%.

CHALLE NGES

There were few challenges faced while transitioning from Traditional approach to Agile as follows:

o o o o o

The most significant challenge was to maintain close and effective customer collaboration at all times. Initially, it was difficult, but as the project progressed, customer himself started taking interest in the proceedings and took active participation in resolving the issues faced by the team. The deadline to deliver the build in each sprint was fixed; this sometimes added additional pressure to the design, development and testing teams to meet the deadline in case there was some high priority issues stuck. The team was initially reluctant to change the approach and adopt Agile. However, as the project progressed, the entire team was motivated, as the agile implementation improved the visibility from end to end perspective and team took active part in decision-making and suggesting improvements. The attitude to accept new changes even late in the development cycles was hard to maintain. It was initially hard for project managers and team members to work in a fully transparent mode.

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

Page 12 of 12

The Release Management was also a bit of challenge as the code kept on changing very frequently. In addition, the successive sprints were built on top of the code of the previous sprints, so it was a bit hard to maintain the versioning of the builds being delivered so frequently.

8 C ONCLUSI ON
In this dissertation, I described the Agile approach to software development using SCRUM. Even though agile methodologies may be compatible in principle with the discipline of models such as the CMM, the implementation of those methodologies must be aligned with the spirit of the agile philosophy and with the needs and interests of the customer and other stakeholders. Further, I discussed the implementation of agile method using SCRUM based on stories and anecdotal evidence of industrial teams experiencing success with agile methods. Agile development is not defined by a small set of practices and techniques. From the set of success stories and anecdotal evidence we have come to believe that agile development defines a strategic capability, a capability to create and respond to change, a capability to balance flexibility and structure, a capability to draw creativity and innovation out of a development team, and a capability to lead organizations through turbulence and uncertainty. In this volatile environment and increasing uncertainty of what the customer wants, agile methods seem to be the dominant methodology. As we learn empirically what works well in the agile methodologies and how far they can be extended into different environments, we should expect software engineering to adapt and adopt the useful ideas of the visionaries in the agile movement. As I mentioned earlier, the need for business to respond rapidly to the environment in an innovative, cost effective and efficient way is compelling the use of agile methods to developing software. Software development can be done in an agile way bringing delight to the customer as a result. Requirements changes late in the development cycles can also be incorporated with agile. The customer is fully aware of the product being delivered because they participate in building it. Agile transformation is a continuous and iterative process, together with the adoption of true agile testing into agile development to build agile delivery teams. Agility is more of perspective. It is really just a mindset. It is about adaptability to changing business requirements. Based on the points highlighted in this paper, and supporting points given, it could be very well stated that agile can be adopted in an organization whilst providing huge benefits and requiring few cultural changes that will greatly impact the implementation. I hope that after going through this paper, people will understands the benefits of being Agile and thus using the same to deliver complex projects successfully.

9 R E FE RE NCES
http://www.academypublisher.com/jsw/vol03/no04/jsw03043136.pdf http://agileintro.wordpress.com/2008/01/04/waterfall-vs-agile-methodology/ http://www.csse.monash.edu.au/~jonmc/CSE2305/Topics/07.13.SWEng1/html/waterfall.GIF http://www.csse.monash.edu.au/~jonmc/CSE2305/Topics/07.13.SWEng1/html/spiral.GIF http://www.shinetech.com/display/www/Extreme+success+with+Agile#attachments http://www.agilemanifesto.org/ http://www.dsdm.org

10 B I OGRAPHY
This Paper is written by Gautam Berry who is a tester and has 5 years of experience in the field of testing. He has completed B.Tech in IT. He has worked with Tech Mahindra Ltd. and presently he is working in HEADSTRONG. He has worked on various projects in testing and he has attended and given various seminars regarding testing. Gautam Berry can be contacted at Gautam.Berry@headstrong.com.

[Agile Methodology: Using SCRUM] [Headstrong Services Pvt. Ltd.]

You might also like