introduction agile software development is a movement within a software development community away...

37

Upload: gerard-james

Post on 24-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards
Page 2: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

AGILE METHODOLOGIES

GROUP MEMEBERS :-AYESHA AKBAR

SADAF IZAZSHARJEEL OWAIS

COUSE INSTRUCTOR :-DR.ZAHERRUDINASIF

Page 3: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards
Page 4: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

INTRODUCTION

Agile software development is a movement within a software development community away from the traditional methodologies and towards ‘relatively light, effective, human powered software development techniques’.

Some of the basic ideas that agile methods encompasses are

1. team work2. Collaboration3. Face-to-face communication4. Doing things in small increments with minimal planning

Page 5: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

history The concept of Agile methods evolved in mid 1990’s as a

reaction to the heavy-weight methods.

Initially Agile methods were known as “Light-weight methods”.

In 2001 the name Agile methods was adopted.

Later ‘The Agile Alliance’ was formed which is a non profit organization that promotes agile development.

Page 6: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

The word “Agile”The word agile literally means Active Easy moving flexible Energetic Fast

Agile methods have all the above mentioned characteristics and are called agile methods because they are light, effective, human powered software development techniques’.

Page 7: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

What Are Agile methods methodologies for the development of soft wares

In agile methodology development team focuses more on soft ware rather than on its design and its documentation.

Basically agile methods are iterative in nature.

each iteration is a self-contained, mini-project with activities that span requirements analysis, design, implementation, and test.

Each iteration leads to an iteration release (which may be only an internal release) that integrates all software across the team and is a growing and evolving subset of the final system.

Purpose of these iterations is to get feed back which helps in refinement of the project.

Page 8: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Principles behind use of agile methods

1. satisfy customers2. Welcome changing requirements3. business people and developers must work

together4. build projects around motivated individuals5. Have face to face conversations

Page 9: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Why use agile methods?

Improved return on investment (RIO) Early detection and cancellation of failing

products Higher quality software Improved control of a project Reduced dependence on individuals and

increased flexibility

Page 10: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

What is XP?

It is a deliberate and disciplined approach to software development.

When to use XP?

Risky projects with dynamic requirements are perfect for XP. These projects will experience greater success and developer productivity.

XP is a refreshing new approach. XP is successful because it emphasizes customer involvement and promotes team work.

Page 11: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Goal of XPExtreme Programming is described as being:1. An attempt to reconcile humanity and

productivity 2. A mechanism for social change 3. A path to improvement 4. A style of development 5. A software development discipline

The main aim of XP is to lower the cost of change.

Page 12: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

XP values

Communication Simplicity Feedback Courage Respect

Page 13: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Application of Extreme Programming

Extreme Programming remains a sensible choice for some projects. Projects suited to Extreme Programming are those that:

Involve new or prototype technology, where the requirements change rapidly, or some development is required to discover unforeseen implementation problems

Are research projects, where the resulting work is not the software product itself, but domain knowledge

Are small and more easily managed through informal methods

Page 14: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Projects suited for more traditional methodologies are those that:

Involve stable technology and have fixed requirements, where it is known that few changes will occur

Involve mission critical or safety critical systems, where formal methods must be employed for safety or insurance reasons

Are large projects which may overwhelm informal communication mechanisms

Have complex products which continue beyond the project scope to require frequent and significant alterations, where a recorded knowledge base, or documentation set, becomes a fundamental necessity to support the maintenance

Project Managers must weigh project aspects against available methodologies to make an appropriate selection.

Page 15: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Comparison with other methods

1. Agile methods are sometimes characterized as being at the opposite end of the spectrum from "plan-driven" or "disciplined" methods. This distinction is misleading, as it implies that agile methods are "unplanned" or "undisciplined".

2. A more accurate distinction is that methods exist on a continuum from "adaptive" to "predictive". Agile methods lie on the "adaptive" side of this continuum.

3. Agile methods have much in common with the “Rapid application development” techniques from the 1980/90s as espoused by James Martin and others.

Page 16: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Contrasted with other iterative development methods

Most agile methods share other iterative and incremental development methods' emphasis on building releasable software in short time periods.

Agile development differs from other

development models: In this model time periods are measured in weeks

rather than months and work is performed in a highly collaborative manner. Most agile methods also differ by treating their time period as a strict timebox.

Page 17: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Contrasted with the waterfall modelAgile development has little in common with the

waterfall model. As of 2009, the waterfall model is still in common use.

The main problem with the waterfall model is the inflexible division of a project into separate stages, so that commitments are made early on, and it is difficult to react to changes in requirements.

Iterations are expensive. This means that the waterfall model is likely to be unsuitable if requirements are not well understood or are likely to change in the course of the project.

Page 18: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Agile methods, in contrast, produce completely developed and tested features (but a very small subset of the whole) every few weeks.

The emphasis is on obtaining the smallest workable piece of functionality to deliver business value early, and continually improving it and adding further functionality throughout the life of the project.

Page 19: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Contrasted with "cowboy coding"

Cowboy coding is the absence of a defined method: team members do whatever they feel is right.

Agile development's frequent re-evaluation of plans, emphasis on face-to-face communication, and relatively sparse use of documents sometimes causes people to confuse it with cowboy coding.

Agile teams, however, do follow defined (and often very disciplined and rigorous) processes.

Page 20: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Extreme Programming - One of the most used Agile method

Extreme Programming (XP) is a software engineering methodology, the most prominent of several agile software development methodologies.

Like other agile methodologies, Extreme Programming differs from traditional methodologies primarily in placing a higher value on adaptability than on predictability.

Page 21: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

XP prescribes a set of day-to-day practices for managers and developers.

Proponents believe that the exercise of these practices leads to a development process that is more responsive to customer needs ("agile") than traditional methods, while creating software of similar or better quality.

Page 22: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

Environment (Team Dynamics, communication)

1. There are many specific agile development methods. Most promote development iterations teamwork, collaboration, and process adaptability throughout the life-cycle of the project.

2. Agile methods choose to do things in small increments with minimal planning, rather than long-term planning.

3. Team composition in an agile project is usually cross-functional and self-organizing without consideration for any existing corporate hierarchy or the corporate roles of team members.

4. Agile methods emphasize face-to-face communication over written documents, when working

Page 23: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

5. Team size is typically small (5-9 people) to help make team communication and team collaboration easier.

6. Each agile team will contain a customer representative. A person is appointed to act on behalf of stakeholders.

7. Agile methodologies include a routine and formal daily face-to-face communication among team members.

Page 24: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

HOW DOES DEVELOPERS SEE IT ?

1. Agile team is self-organizing.

2. Empowered team members’ reduce their dependency on management .

3. Rather than having a manager with responsibility for planning, managing and controlling the work, the team members share increasing responsibility for managing their own work .

4. Agile methods inherently drive the team in a self-organizing direction.

5. Managers become facilitators, liaisons . Team members’ roles change too

Page 25: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

BENEFITS OF AGILE METHODS

Page 26: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

BENEFITS:-

RAPID LEARNING

EARLY RETURN ON INVESTMENT

INCREASED CONTROL

RESPONSIVE TO CHANGE

Page 27: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

RAPID LEARNING 1. Rapid delivery of valuable results gives an

organization frequent opportunities to learn what it truly needs.

2. This process allows learning to take place at the level of the product or service.

3. Agile methods also allow you to learn about the process used to produce the product or service.

4. Ken's anecdote in the sidebar describes, the first cycles will almost certainly deliver incorrect or poor

Results.

Page 28: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

EARLY RETURN ON INVESTMENT

Improving ROI occurs in three ways

1. increase revenue,

2. costs or reduce

3. delivery time.

In cost-conscious environments, this mechanism enables a valuable control mechanism: measuring when to stop a project or work operation when the cost of doing the work is higher than the return for that work.

Page 29: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

INCREASED CONTROL1. The person responsible for prioritizing the work that is

being done in an agile method is the locus of value control in an agile environment.

2. First and foremost is through the constantly evolving queue of features or results to be delivered by the agile team.

3. Secondly Stakeholders can contribute ideas to the queue at any time.

4. Ideally there is close collaboration. However, if there is disagreement. The benefit is given to those who are doing the work by giving them full control which allow full run of creativity and problem-solving skills to come into play.

Page 30: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

RESPONSIVENESS TO CHANGE1. Change control is put in place because change becomes

very expensive in a phase-based process.

2. Agile methods turn this effect on it's head. By allowing change every cycle, well within the duration of the horizon of predictability, the team and the organization learn how to do their work in order to accommodate change.

3. Automated testing dramatically lowers defect rates and improves software design for better maintainability.

4. Frequent releases increase feedback, lower total risk, and mitigate risk of failure by front-loading potential problems

Page 31: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

LEADERS IN AGILE TEAMS:-

Good leaders know themselves well. Specifically, leaders know their position in an organization or system, as well as their strengths and weaknesses Leaders takes time regularly to reflect upon their lives and values.

This trait fits well with Agile teams, since reflection is a core Agile principles. The Agile leader values reflection and encourages team members to take time to reflect and evaluate themselves for the purpose of improvement.

Page 32: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

EVERYONE NEEDS TO UNDERSTAND THEIRRESPONSIBILITIES

Page 33: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

LIMITATIONS/DRAWBACKS:-

Agile development methods do not scale.

Agile management methods do not handle large teams well.

Agile development requires highly skilled and highly motivated individuals.

Page 34: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

ConclusionAgile Methods are a fundamentally new

paradigmAgile Methods are “not” lighter Traditional

MethodsThey should not be viewed through a

Traditional lens

· Contracts· Plans· Processes· Documents· Tools

User Stories forNext IterationUpdated

User Stories

Customer Feedback

(Collaboration)

Small Releases

Self OrganizingTeams

(Collaboration)

UnitTests

Release Planning (Collaboration)

Page 35: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards
Page 36: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

QUESTIONS ???????

IT’S NOT ABOUT AGILE, IT'S ABOUT SUCCESS! AGILE IS A TOOL. IT'S NOT A MEANS TO AN END.

“Life is really simple, but we insist on making it complicated”

Page 37: INTRODUCTION Agile software development is a movement within a software development community away from the traditional methodologies and towards

referenceshttp://c2.com/cgi/wiki?AgileSoftwareDevelopmenthttp://en.wikipedia.org/wiki/Agile_methodshttp://encyclopedia2.thefreedictionary.com/

Agile+methodologyhttp://agilemanifesto.org/principles.htmlhttp://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdfhttp://www.builderau.com.au/program/development/soa/

Why-use-Agile-Methods-/0,339024626,320275975,00.htm