Agile Methodology in Software development

29
AGILE SOFTWARE DEVELOPMENT By : Sapna Sood ( Management Consultant) [email protected]

description

Agility is the ability to both create and respond to change in order to profit in a turbulent business environment. Now, you need to determine the amount of agility you need to be competitive and stay in the market.

Transcript of Agile Methodology in Software development

Page 1: Agile Methodology in Software development

AGILE SOFTWARE DEVELOPMENT

By : Sapna Sood

( Management Consultant)

[email protected]

Page 2: Agile Methodology in Software development

ABSTRACT

When we speak about Agile methodology

there are number of them. Which one do

you follow? Are you one of them who are

using a single approach to all their clients?

A single approach to all clients!! For me it is

sounding more like a single shoe for all

clients, irrespective of their shoe size!!

Page 3: Agile Methodology in Software development

UNDERSTANDING SOME TERMS

Agile is the readiness for motion or dexterity in motion.

Agility is the ability to both create and respond to change in order to profit in a turbulent business environment.

Now, you need to determine the amount of agility you need to be competitive and stay in the market.

Page 4: Agile Methodology in Software development

HISTORY, SO FAR!

DESPITE OF THE FACT THAT WE HAVE AN END NUMBER OF METHODOLOGIES THAT WE CAN

USE, WE RATHER STICK TO A SINGLE APPROACH.

Extreme Programming (Kent Beck)

SCRUM (Ken Schwaber)

DSDM (DSDM-consortium)

Adaptive Software Development (Jim High smith)

Crystal (Alistair Cockburn)

Feature Driven Development

Pragmatic Programming

Snowbird ski resort in Utah mountains

17 ‟methodology‟ people

“Agile” in stead of “light”

“The Agile Alliance”

Not anti-methodology

Page 5: Agile Methodology in Software development

ARE YOU SUCCESSFULLY DEVELOPING

SOFTWARE'S? LET‟ SEE!

Only 10 % or less than that software projects are

successful today. (1)

Criteria's for success are timely delivery, in the

budget , covering all the features required by the

clients and finally a bug free solution.

Inspite of all the technology up gradation and all

big brains working on the project, why does it

fails? Is it that hard to accomplish? If yes, why?

Page 6: Agile Methodology in Software development

THE PROBLEM IS IN COMMUNICATING.

WRITE GOOD DOCUMENTS

DESCRIBING THE REQUIREMENTS AND

HAND IT TO THE DEVELOPERS.

KEEP IN MIND 3 POINTS:

1. WHAT IS BEING COMMUNICATED?

2. WHO IS COMMUNICATING THE

INFORMATION?

3. TO WHOM ARE YOU

COMMUNICATING THE INFORMATION?

Page 7: Agile Methodology in Software development

PRINCIPLES OF AGILE MANIFESTO

Customer satisfaction

Timely completion and delivery of the product.

Welcome changes in requirement at any stage of

development.

The team members need to communicate daily

and work together in a project.

All the developers should go for more and more

face to face conversation.

Simplicity

Self organizing teams

Page 8: Agile Methodology in Software development

METHODOLOGIES

eXtreme Programming (XP)

Scrum

Evolutionary Project Management (Evo)

Unified Process (UP)

Crystal

Lean Development (LD)

Adaptive Software Development (ASD)

Dynamic System Development Method

(DSDM)

Feature Driven Development (FDD)

Page 9: Agile Methodology in Software development
Page 10: Agile Methodology in Software development

EXTREME PROGRAMMING (XP)

Page 11: Agile Methodology in Software development

EXTREME PROGRAMMING

Extreme Programming 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.

Page 12: Agile Methodology in Software development

PRINCIPLES OF XP

•Refactoring

• Pair Programming

• Collective Ownership

• Continuous Integration

• 40-hour per Week

• On-site Customer

•Coding Standards

Page 13: Agile Methodology in Software development

SCRUM

Page 14: Agile Methodology in Software development

STEPS TO A SUCCESSFUL SCRUM

Sprint planning meeting.

Creating a sprint backlog.

Daily Scrum meeting.

Sprint review

Sprint retrospective

Page 15: Agile Methodology in Software development

SCRUM LIFE CYCLE

Planning

Staging

Development

Release

Page 16: Agile Methodology in Software development

EVOLUTIONARY PROJECT MANAGEMENT

(EVO)

Page 17: Agile Methodology in Software development

EVOLUTIONARY PROJECT

MANAGEMENT

A project management process delivering

evolutionary results ,„high-value-first‟ progress

towards the desired goals, and seeking to obtain,

and use, realistic, early feedback.

Page 18: Agile Methodology in Software development

PRINCIPLES

E1:Decompose by performance results and stakeholders;

E2: Do high-risk steps early, learn how „unknowns‟ really perform;

E3: Focus on improving your most valuable performance objectives first;

E4: Base your early evolution on existing frameworks and stakeholders;

E5: Design to cost dynamically;

E6: Design to performance dynamically;

E7: Invest in an open-ended architecture early on;

E8: Motivate your team by rewarding results;

E9: Prioritize changes by value, not place in queue;

E10: Learn fast, change fast, adapt to reality fast.

Page 19: Agile Methodology in Software development

UNIFIED PROCESS (UP)

Page 20: Agile Methodology in Software development

UNIFIED PROCESS (UP)

The Unified Software Development Process

or Unified Process is a popular iterative and

incremental software development process

framework. The best-known and extensively

documented refinement of the Unified Process is

the Rational Unified Process (RUP).

Page 21: Agile Methodology in Software development
Page 22: Agile Methodology in Software development

CRYSTAL

Page 23: Agile Methodology in Software development

LEAN DEVELOPMENT (LD)

Page 24: Agile Methodology in Software development

ADAPTIVE SOFTWARE DEVELOPMENT (ASD)

Page 25: Agile Methodology in Software development
Page 26: Agile Methodology in Software development

DYNAMIC SYSTEM DEVELOPMENT METHOD

(DSDM)

Page 27: Agile Methodology in Software development

FEATURE DRIVEN DEVELOPMENT (FDD)

Page 28: Agile Methodology in Software development

LOOK INTO THE REQUIREMENTS OF YOUR

CLIENT AND GO WITH AN APPROACH THAT

SUITS THEIR REQUIREMENT. AFTER ALL, IT

IS ALL ABOUT BUILDING RELATIONSHIPS.

Page 29: Agile Methodology in Software development