0% found this document useful (0 votes)
192 views11 pages

Agile Methodolgy Guide: Ontents

The document provides an overview of agile methodology. It defines agile as focusing on iterative development, collaboration between cross-functional teams, and evolving requirements. The core values of agile methodology are outlined in the Agile Manifesto and include valuing individuals, working software, customer collaboration, and responding to change. An example of developing a customer address book using agile methodology in iterations is also provided.

Uploaded by

PACEROME
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
192 views11 pages

Agile Methodolgy Guide: Ontents

The document provides an overview of agile methodology. It defines agile as focusing on iterative development, collaboration between cross-functional teams, and evolving requirements. The core values of agile methodology are outlined in the Agile Manifesto and include valuing individuals, working software, customer collaboration, and responding to change. An example of developing a customer address book using agile methodology in iterations is also provided.

Uploaded by

PACEROME
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Agile Methodolgy Guide

CONTENTS
Agile term definition:...................................................................................................................................2

What is agile methodology?....................................................................................................................2


All agile methodologies keenly focus on these two factors:................................................................2
Agile methodology Example----Product development:........................................................................2
Why agile?...........................................................................................................................................3
Certain terms related to Agile:............................................................................................................3
Agile development life cycle vs. Software development life cycle:......................................................4
Agile Manifesto:...................................................................................................................................5
Difference of Agile from other working models:.................................................................................6
Agile association with other working models:.....................................................................................8
Define Roles within an Agile Sprint......................................................................................................8
Drawbacks of agile methodology:.......................................................................................................9
Conclusion:........................................................................................................................................10
References.........................................................................................................................................10
Agile term definition:
The term “Agile” is characterized by lightness, and ease of movement. It also possesses the other
meanings i.e. to be mentally quick or to be alert.

What is agile methodology?


Agile software development is a group of software development methods based on iterative and
incremental development, where requirements and solutions evolve through collaboration between
self-organizing, cross-functional teams.

All agile methodologies keenly focus on these two factors:

1. Client Communication
2. Programming Language

Agile methodology Example----Product development:

If a team were to develop a “Customer address book” using the agile methodology, the order of work
would be as follows (timeframes are for demonstration purposes only):

1. Requirements: Product manager creates requirements documents that include the following


requirements (in order of priority):

1. User should be able to create new contacts.


2. User should be able to view their contacts.
3. User should be able to import contacts from other programs.
4. User should be able to email their contacts from the address book.
5. User should be able to add pictures to represent their contacts.

These requirements documents will be simple, and will include user scenarios. As each item is worked
on, questions will arise, and there will be opportunities to discuss them as they occur. From this list, the
requirements for the first iteration are chosen (starting with the highest priority items).
Timeframe: 1 week

2. Iteration 1: 

The team works on the functionality to create new contacts and to view contacts. This includes the
design, development and testing for these items. At the end of the iteration, the team demonstrates the
functionality to the product manager, where he or she can provide feedback.
Timeframe: 2 weeks

3. Iteration 2: 

Team works on the functionality to import contacts, to email and to add pictures to the contacts. This
includes the design, development and testing for these items. At the end of the iteration, the team
demonstrates the functionality to the product manager, where he or she can provide feedback.
Timeframe: 2 weeks

4. Iteration 3: 

Team conducts a regression test and prepares to release the product.

Timeframe: 1 week

5. Release: 

The product functionality is released.

Total elapsed time: 6 weeks

Note that if any changes to the requirements occur during this project, then each iteration would be
adjusted accordingly.

Why agile?

1. This is achieved through regular measure of work, known as sprints (iterations) at the end of
which teams must present a potentially product increment. In agile we get multiple chances to
get each aspect of a project right. 
2. It greatly reduces both development costs and time to market because teams can develop
software at the same time while gathering requirements.

Certain terms related to Agile:

Product backlog:

Every release begins with a list called a “backlog,” which consists of a list of “prioritized
requirements”. It is a list of task to be done. The team will always adjust the scope of work to
ensure that the most important items are completed first.

Sprint backlog:

It is a list of tasks to be completed in one sprint. Sprint (also known as Iterations) they are
smaller amounts of delivered requirements, which are taken from the backlog in their order of
importance. 
During iteration, the team works through a full development cycle (from analysis to testing)
 At the end, they demonstrate a working product to stakeholders. Multiple iterations may be
required for a release and to complete all backlog items. Here each sprint will normally require
many tasks.
Agile development life cycle vs. Software development life cycle:

Explanation:

The agile approach is shown by the following image; where after each phase, developers have the
opportunity to cycle back and check their work. There is a flexibility to check for errors under any part of
the development stage which usually make this approach less receptive to bugs.

Agile Approaches:

The most widely used methodologies based on the agile are XP (Extreme Programming) and Scrum.
Iterative approach is common among them.

 Scrum:

It emphasizes on feedback; team self-management, and striving to build properly tested product
increments within short iterations. It focuses on agile management and on how to better organize the
development teams.

It is an agile process most commonly used for product development, especially software development.
Scrum is a project management framework that is applicable to any project with aggressive deadlines,
complex requirements and a degree of uniqueness. In Scrum, projects move forward via a series of
iterations called sprints. Each sprint is typically two to four weeks long.

Scrum team: 

A typical scrum team has between five and nine people, but Scrum projects can easily scale into the
hundreds. However, Scrum can easily be used by one-person teams and often is. This team does not
include any of the traditional software engineering roles such as programmer, designer, tester or
architect. Everyone on the project works together to complete the set of work they have collectively
committed to complete within a sprint. Scrum teams develop a deep form of fellowship and a feeling
that “we’re all in this together.”
 Extreme Programming:

It allows your developers to confidently respond to changing customer requirements, even late in the
life cycle. It includes some management elements but emphasizes technical practices more and is
therefore more of an agile approach.
It emphasizes teamwork. Managers, customers, and developers are all equal partners in a collaborative
team. Extreme Programming implements a simple, yet effective environment enabling teams to become
highly productive. The team self-organizes around the problem to solve it as efficiently as possible. 

Extreme Programming is successful because it stresses customer satisfaction. It improves a software


project in five essential ways; communication, simplicity, feedback, respect, and courage. Extreme
Programmers constantly communicate with their customers and fellow programmers. They keep their
design simple and clean. They get feedback by testing their software starting on day one. They deliver
the system to the customers as early as possible and implement changes as suggested. Every small
success deepens their respect for the unique contributions of each and every team member. With this
foundation Extreme Programmers are able to courageously respond to changing requirements and
technology.

Agile Manifesto:

The Agile Manifesto, also called the “Manifesto for Agile Software Development”, is a formal declaration
of four key values and 12 principles to guide an iterative and people-centric approach to software
development. 

The four core values of agile software development as stated by the Agile Manifesto are:

1. Individuals and interactions over processes and tools.


2. Working software over comprehensive documentation.
3. Customer collaboration over contract negotiation.
4. Responding to change over following a plan.

The Agile Manifesto is based on twelve principles:

1. Customer satisfaction by rapid delivery of useful software


2. Welcome changing requirements, even late in development
3. Working software is delivered frequently (weeks rather than months)
4. Working software is the principal measure of progress
5. Sustainable development, able to maintain a constant pace
6. Close, daily cooperation between business people and developers
7. Face-to-face conversation is the best form of communication (co-location)
8. Projects are built around motivated individuals, who should be trusted
9. Continuous attention to technical excellence and good design
10. Simplicity—the art of maximizing the amount of work not done—is essential
11. Self-organizing teams
12. Regular adaptation to changing circumstances

Difference of Agile from other working models:

Agile Model Spiral Model


More risk of sustainability and maintenance. Better risk management

Little or no planning required. Planning is required.

Easy to manage. Management is more complex.

Early delivery of partial working solutions. End of project may not be known.

Suitable for small projects. Not suitable for small or low risk projects.

Depends heavily on customer interaction Does not depend heavily on customer interaction

Agile Model Iterative Model


It is incremental and iterative model. It is iterative, all builds are developed and tested
So it can be used to build more complex project. Iteratively.

The main focus is on adaptability and customer The main focus is on producing new version
satisfaction with rapid development of project. of software at the end of each iteration to satisfy
customer needs.
It can be used to develop more complex projects. It cannot be used for more complex projects
as iterative practice will increase complexity, time
requirement.

Quick in development of application. Comparatively slower development

Various modules of the application can be Only 1 module is developed at a time


developed simultaneously

Constant monitoring is required Monitoring is required after every iteration

More flexible with customer requirements. Less flexible.

Evaluation is done more frequently resulting in Evaluation is after every iteration hence errors if
better error detection any are detected after a delay

Progress cannot be clearly measured. Progress can be clearly measured.


Agile Model Waterfall Model
Backward scalability in Agile We cannot change the decisions and
implementations that we had made under the
previous stages. If we want to make changes under
waterfall we will have to build the entire project
from the scratch once again.
The flexibility to error check under any part of the Can only test bugs at the end of the development
development stage makes Agile more bug free and
less erroneous.  module.
Since Agile provides flexibility to make changes as Doesn’t allow any modifications once the module
per customer requirements it is more inclined has been completed.
towards better client satisfaction
Agile approach focuses on adaptability and Waterfall approach is based in predictability and
processes.
response time to changing requirements.

Agile Model V-Model


Agile model delivers a working version of the Slower in delivering a product as compared to V-
product very early. Model.

Testing cycle time of Agile is relatively short Testing cycle time is relatively long for V-Model
because testing is done parallel to development.
Agile is a proactive model (due to its very short It is a reactive model.
cycles)
It is not rigid. V-Model is very rigid and relatively less flexible.

RAD (Rapid Application Development)


Agile Model
Model
Agile does not allow prototypes Based on designing prototypes and then
reengineering them into production quality code
(or not as was often the case).
Agile projects logically break down the solution The RAD approach did not do this; instead
into features. developers would focus on delivering all the
features of the application by first doing it badly
and then improving on the code base overtime.

Agile teams are democratic. The whole team has RAD solutions were not based around the concept
a say in the architecture of the solution, but the of a common architecture and thus individuals
team is still lead by an architect. worked in silos.
Agile association with other working models:

Incremental:

Agile model is also a type of incremental model. Software is developed in incremental, rapid cycles. This
results in small incremental releases with each release building on previous functionality. Each release is
thoroughly tested to ensure software quality is maintained.

Waterfall model

The common element to all of them being the basic phases of the waterfall approach and that Agile is
also another of its successors. Both processes are sequential while you can count agile as recursive too.

CMMI model:

 Make clear that the Capability Maturity Model Integration and Agile can co-exist. Modern CMMI-
compatible development processes are also iterative like agile attribute of being iterative.

Define Roles within an Agile Sprint

In a project using an agile management model, each part of


the scrum team, the development team, product owner,
and scrum master — has specific daily roles and
responsibilities. Such as:

The role of the development team during an agile sprint

The sprint day's focus for the development team is producing shippable functionality. If you're a
member of the development team, you also perform the following tasks during the sprint.
1. Select the tasks of highest need and complete them as quickly as possible.
2. Request clarification from the product owner when you are unclear about a user task.
3. Collaborate with other development team members to design the approach to a specific user
task, seek help when you need it, and provide help when another development team member
needs it.
4. Take on tasks beyond your normal role as the sprint demands.
5. Fully develop functionality as agreed to in the definition of done.
6. Report daily on your progress.
7. Alert the scrum master to any roadblocks you can't effectively remove on your own.
8. Achieve the sprint goal you committed to during sprint planning.

The role of the product owner during an agile sprint

For the product owner, the focus is on preparing the product backlog for future sprints while supporting
the development team with real-time clarifications. The product owner has the following responsibilities
during the sprint:
1. Make the investments required to keep development speed high.
2. Prioritize product functionality.
3. Represent the product stakeholders to the development team.
4. Report on cost and schedule status to product stakeholders.
5. Create detailed user stories with the development team so that the team clearly understands
what is being created.
6. Provide immediate clarification and decisions about requirements to keep the development
team developing and provide feedback to the development team.
7. Add new user tasks to the product backlog as necessary and ensure that new user tasks support
the product vision, the release goal, or the sprint goal.
8. Look forward to the next sprint and elaborate user task in readiness for the next sprint planning
meeting.

The role of the scrum master during an agile sprint

The scrum master is the agile coach and maximizes the development team's productivity by removing
roadblocks and protecting the development team from external distractions. If you're a scrum master,
your job during the sprint will be:
1. Uphold agile values and practices by coaching the product owner, development team, and the
organization when necessary.
2. Shield the development team from external distractions and remove roadblocks, both tactically
for immediate problems and strategically for potential long-term issues.
3. Scrum masters can get benefit from understanding body language to identify unspoken tensions
within the scrum team.

Drawbacks of agile methodology:

1. In case of some software deliverables, especially the large ones, it is difficult to assess the effort
required at the beginning of the software development life cycle.
2. There is lack of emphasis on necessary designing and documentation.
3. The project can easily get taken off track if the customer representative is not clear what final
outcome that they want.
4. Only senior programmers are capable of taking the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless combined with
experienced resources.

Conclusion:

Agile software development stresses rapid iterations, small and frequent releases, and evolving
requirements facilitated by direct user involvement in the development process. It empowers teams to
continuously re plan their release to optimize its value throughout development, allowing them to be as
competitive as possible in the marketplace. 

References

http://www.dummies.com/how-to/content/defining-roles-within-an-agile-sprint.html

http://www.dummies.com/how-to/content/defining-roles-within-an-agile-sprint.html

http://www.allaboutagile.com/agile-methodologies/

http://consultingblogs.emc.com/simonevans/archive/2006/04/18/10-Reasons-why-Agile-is-not-Rapid-
Application-Development-_2800_RAD_2900_.aspx

http://www.marsdd.com/articles/product-development-agile-methodology/

http://efficientprograms.blogspot.com/2013/07/spiral-model-vs-waterfall-model-agile.html

http://searchcio.techtarget.com/definition/Agile-Manifesto

http://covalentmarketing.com/blog/2013/02/25/software-development-lifecycle-waterfall-vs-agile/

http://www.sdlc.ws/agile-vs-waterfall/

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy