Agile Methodology

Post on 07-Jan-2017

285 views 1 download

Transcript of Agile Methodology

Agile Methodology ISE Seminar

• A Short history of Software development processes

• Defining and Analyzing the Problem ...

• Agile Manifesto

• The Agile Values

• The Agile Principles

• Scrum

Agenda

Software Project Development

Software development processesA [really] short history of

Software Project Development

traditional approach to software development

REQUIREMENTS

DESIGN

DEVELOPMENT

TESTING

MAINTENANCE

Waterfall Development is another name for the more

Waterfall Development

Waterfall Development

You complete one phase (e.g. design) before moving

on to the next phase (e.g. development)

You rarely aim to re-visit a ‘phase’ once it’s completed. That means, you better get whatever

you’re doing right the first time!

• Is there any problem ?

Software Project Development

Waterfall Development

This approach is highly risky, costly and

generally less efficient

You don’t realize any value until the end of the project

You leave the testing until the end

You don’t seek approval from the stakeholders until late in the day

But…REQUIREMENTS

DESIGN

DEVELOPMENT

TESTING

MAINTENANCE

Takes too long

Changes

Skipped

Software Project Development

Software Project Development

Software Project Development

Software Project Development

Software Project Development

Software Project Development

AGILERapid

Cooperative

Quality-driven

Not a process, it's a philosophy or set of values

Iterative

Adaptable

XP

Scrum

Lean

Crystal

Adaptive

FDD

DSDM

Pragmatic

RUP (120+)

XP (13)

Scrum (9)

Kanban (3)

Do Whatever!! (0)

More Prescriptive

More Adaptive

RUP has over 30 roles, over 20 activities, and over 70 artifacts

AGILE

Software Project Development

Software Project Development

Software Project Development

Software Project Development

Software Project Development

the most important factors that you need to consider are the people and how they work together

A fool with a tool is still a fool.

Software Project Development

Software Project Development

Never forget that the primary goal of software development is to create software, not documents !

Otherwise it would be called documentation development wouldn’t it?

When you ask a user whether they would want ??

A fifty page document describing what you intend to build ?

orThe actual software itself, what do you think

they’ll pick?

Software Project Development

Software Project Development

Remember!!Only your customer can tell you what they want

Software Project Development

Software Project Development

Remember!!

Nothing ever goes entirely on plan

but instead of sticking with something that isn't working

It's much more effective to make adjustments as your situation changes

Software Project Development

Following the values isn't always easy

But when you build them is your team's processes

You will definitely get a better software project

Software Project Development

Hmm..

So , Is that It ?

Software Project Development

Sure No !!

Software Project Development

The four core values are illuminated by

12 principles of Agile software development.

Software Project Development

“ Our highest priority is tosatisfy the customer through early and continuous delivery of valuable software. ”

Principle

#1

Software Project Development

“ Welcome changing requirements, even late in development.Agile processes harness changefor the customer's competitive advantage.”

Principle

#2

Software Project Development

“ Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time scale. ”

Principle

#3

Software Project Development

“ Business people and developers must work together daily throughout the project. “

Principle

#4

Software Project Development

“ Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. “

Principle

#5

Software Project Development

“ The most efficient and effectivemethod of conveying information toand within a development team is face-to-face conversation.“

Principle

#6

Software Project Development

“Working software is the primary measure of progress. “

Principle

#7

Software Project Development

“ Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. “

Principle

#8

Software Project Development

“ Continuous attention to technical excellence and good design enhances agility. “

Principle

#9

Software Project Development

“ Simplicity – the art of maximizing the amount of work not done ,is essential. “

Principle

#10

Software Project Development

“ The best architectures, requirements, and designs emerge from self-organizing teams. “

Principle

#11

Software Project Development

“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.“

Principle

#12

Scrum

Scrum

• Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time.

• It allows us to rapidly and repeatedly check actual working software (2 – 4 weeks).

• The business sets the priorities.

Scrum characteristics

• Self organizing team to determine the best way to deliver the highest priorities features

• Product progresses in a series of month-long “sprints”

• Requirements are captured as items in a list “product backlog”

• Uses general rules to create an agile environment for delivering projects

Scrum sprint

Scrum sprint

• Scrum projects make progress in a series of “sprints”

• Typical duration is 2–4 weeks

• Product is designed, coded, and tested during the sprint

NO Changes During Sprint !

Scrum breaking down

Scrum artifacts

The scrum team uses artifacts to run scrum successfully

• Impediment backlog

• Product backlog

• Sprint backlog

• Burn down charts

Scrum ceremonies

• Sprint planning

• Sprint review

• Sprint retrospective

• Daily scrum

Scrum ceremonies

Sprint planning :

• Sprint planning meeting #1

• Sprint planning meeting #2

Scrum ceremonies

Sprint planning meeting #1:

• Purpose

• Basics

• Ingredients

• Output

Scrum ceremonies

Sprint planning meeting #2:

• Purpose

• Basics

• Ingredients

• Output

Scrum ceremonies

Sprint review:

• Purpose

• Basics

• Ingredients

• Output

Scrum ceremonies

Sprint retrospective:

• Purpose

• Basics

• Ingredients

• Output

Scrum ceremonies

Daily scrum

• Purpose

• Basics

• Ingredients

• Output

Scrum roles

• Scrum master

• Team

• Product owner

• Customer

• User

Scrum roles

Scrum Master:

• Represents management to the project

• Responsible for enacting Scrum values and practices

• Removes impediments (obstacles)

• Ensure that the team is fully functional and productive

• Enable close cooperation across all roles and functions

• Shield the team from external interferences

Scrum roles

Team:

• (5 - 9) people

• Cross functional (programmers – designers….)

• Full time

• Self organizing

Scrum roles

Team tasks:

• Delivers the product and is responsible for its quality

• Creating product backlog

• Analyses the backlog for information

• Works with product owner for strategic alignment

Scrum roles

Product owner:

• Define the features of the product

• Decide on release date and content

• Be responsible for the profitability of the product

• Prioritize features according to market value

• Adjust features and priority every iteration, as needed

• Accept or reject work results

Scrum roles

Customer:

• Executive managers

• Requests the product from Scrum team

• Budget

Scrum roles

User:

• Defines the product with his business knowledge

• Domain expert , end user , marketing department

Thanks For Listening