Assignment 1

farzadbigz
AgileDevelopmentMethodologies.pptx

Agile Development Methodologies

Three Communities

Project stakeholders (Customers)

Development organization management

Developers

The Agile Manifesto

Indivduals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

The Agile Principles

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agilel processes harness change for the customer’s competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of monthsm with a preference for the shorter time scale.

From the Agile Alliance: www.agilealliance.com

More Agile Principles

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

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

6. The most efficient and effective method of conveying information to, and within a development team is face-to-face conversation.

Still more Agile Principles

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development.

9. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

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

Even more Agile Principles

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

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

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

Major Agile Methodologies

Scrum

Extreme Programming

Version of the Unified Process

Evo

Crystal family of methodologies

Scrum

Single team of three to nine

Multiple teams each with three to nine members each.

Representatives from teams meet daily.

Common project room

Daily stand-up meeting

Iteration Is thirty calendar days

Emphasis on empirical rather than defined process.

May be easily combined with other methodologies to provide greater specification of specific activities.

The Scrum Lifecycle

Lifecycle has four phases:

Pre-game

Planning

Staging

The Game

Development

Release

Development may iterate, typically 3 to 8 times.

Called sprints lasting one month each

Scrum Planning

Purpose:

Establish vision

Set expectations

Secure funding and other needed resources

Activities

Write vision

Develop budget

Form initial Product Backlog

Estimate items

Exploratory design and prototypes

Scrum Staging

Purpose:

Identify more requirements

Prioritize for first iteration

Activities

Planning

Exploratory design and prototypes

Scrum Development

Purpose:

Implement a product ready for release

Series of thirty day iterations (Sprints)

Activities:

Sprint planning meeting

Define the Sprint Backlog

Do estimates

Daily Standup meetings

Sprint Review

Scrum Standup Meetings

Fifteen minutes

One team of developers and immediate manager

The manager is silent, but takes notes

Limited to fifteen minutes

Each developer answers three questions:

What did you do yesterday?

What will you do today?

What is limiting your progress?

Scrum Release

Purpose:

Operational deployment

Activities:

Documentation

Training

Preparation of deployment

Marketing & Sales

Scrum Work Products

Product Backlog

Features

Use cases

Enhancements

Defects

technologies

Release Backlog

Subset of product backlog

More Scrum Work Propducts

Backlog graph: estimate of work remaining versus days

Sprint backlog: tasks for the iteration

Each task expected to need 4 to 16 hours of work

Scrum Roles

Customer

One or more business stakeholders

Product Owner

Responsible for creating and prioritizing the Product Backlog

Selects the goals from the Product Backlog for the next Sprint

Along with other stakeholders, reviews the product at the end of each Sprint.

Developer

No specialists

Work on the Sprint Backlog

More Scrum Roles

Management

Scrum Master

Usually developer as well as manager

Reinforces the project and iteration vision and goals

Ensures Scrum values and practices are followed

Mediates between Developers and Management

Listens to progress

Works to remove or ameliorate impediments

Conducts the Daily Standup Meeting

Conducts the Sprint Review

Still More Scrum Roles

Upper management called the Chickens

May observe, but not speak during an iteration

Stand outside the Daily Standup meeting

Developers are called the Pigs,

Scrum Coach

Optional

Helps guide developers in Scrum practices, principles, and philosophy.

Extreme Programming

Four Values:

Communication

Simplicity

Feedback

Courage

Extreme Programming Core Practices

1. Planning Game

2. Small, frequent releases

3. System metaphors

4. Simple design

5. Test-Driven Development

6. Frequent refactoring

More Practices

7. Pair programming

8. Team code ownership

9. Continuous integration

10. Sustainable pace

11. Whole team together

12. Coding Standards

Extreme Programming Lifecycle

Five Phases

Exploration

Purpose:

Write enough well-estimated story cards for first release

Ensure feasibility

Activities

Prototyping

Exploratory proof of technology programming

Story card writing

estimating

More of the Lifecycle

Planning

Purpose:

Agree on date ad stories for first release

Activities

Release Planning Game

Story card writing

Estimating

More of the Lifecycle

Iterations to First Release

Purpose:

Implement a tested product ready for release

Activities

Test-directed development

Iteration Planning Game

Task writing and estimating

Still More of the Lifecycle

Productionizing

Purpose:

Operational deployment

Activities

Documentation

Training

Marketing

Maintenance

Purpose

Enhance, fix, and build major releases

Activities

Iterations of the previous four phases.

Extreme Programming Work Products

Story cards:

Feature requests

Should require 2 to 10 days to implement

More details from customer

CRC Cards:

Class responsibility and collaborator ideas

Sketches

Informal working out of ideas

More Work Products

Task list

Tasks within each story

Should take 1 – 2 days to implement

Vision Graphs

Visual representation of progress

Kept on the wall for all to see

Extreme Programming Roles

Customer

Writes stories

Writes acceptance tests

Selects stories for release and for iteration

Developer

Programmer

Writes unit tests, designs, code

Refactors

Identifies tasks

Estimates tasks

Tester

Helps customer write tests

More Roles

Management

Coach

Process conscience

process customizing

Intervention

Teaching

Tracker

Collect metrics

Inform on progress

Provide feedback on prior estimates

Another Role

Consultant

Coaching

Technical consulting

Lean Software Development Methodology

Some developers view Lean as a successor to Agile.

Others consider Lean an extension of Agile.

Lean Industrial Development was formulated by the Japsnese in the 1950’s.

Lean Software Development is the imperfect adaptation to software.

Lean Guiding Principles

1. Eliminate Waste

DOTWIMP

2. Build quality in

3. Create Knowledge

4. Defer commitment

5. Deliver fast

6. Respect People

7. Optimize the whole

Getting Started with Lean

Version control

Scripted Builds

1. Daily standup

2. Automated testing

3. Continuous integration

4. Short iterations

5. Customer participation

Summary

Agile is a family of methodologies for software development.

Key Aspects of Agile

Self-organizing teams

Informal rather than formal communications

Expects and accommodates change and discovery

Emphasizes self and team evaluation, learning, and improvemen.

Manager encourages and facilitates rather than directs.