Introduction to software development methodologies- Agile vs Waterfall

16
Introduction to Software Development Methodologies -Prateek Shrivastava 14 years of s/w development experience PMI-PMP, PMI-ACP, CSM, CSP © Prateek Shrivastava 2013 1

description

Introduction to software development methodologies- Agile vs Waterfall

Transcript of Introduction to software development methodologies- Agile vs Waterfall

Page 1: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 1

Introduction to Software Development

Methodologies-Prateek Shrivastava

14 years of s/w development experiencePMI-PMP, PMI-ACP, CSM, CSP

Page 2: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 2

Some important definitions Different methodologies/processes Waterfall Agile Role and Responsibilities What is right for your project?

Course content

Page 3: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 3

Project:◦ Is a temporary endeavor with a beginning and an

end.◦ Creates a unique product, service or a result

Software development methodology:◦ Software development methodology is the set of

activities and processes (what) that will eventually result in a software product.

◦ It also describes tools and techniques (how) and important role (who) in the development process.

Definitions

Page 4: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 4

There are multiple ways to build a software… Ad hoc Waterfall Prototyping Spiral Iterative Agile

Different methodologies of the world

Page 5: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 5

Waterfall model

Analysis

Design

Requirements

Development

Testing

Delivery

Page 6: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 6

Agile frameworkits an umbrella

SCRUMKANBANXP

SCRUMBANSCRUM/XP HYBRIDAGILE UNIFIED PROCESS

Page 7: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 7

Agile ManifestoManifesto for Agile Software Development

Individuals 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 onthe right, we value the items on the left more.

http://agilemanifesto.org/

We are uncovering better ways of developingsoftware by doing it and helping others do it.Through this work we have come to value: Kent Beck

Mike BeedleArie van BennekumAlistair Cockburn

Ward CunninghamMartin Fowler

James GrenningJim HighsmithAndrew HuntRon Jeffries

Jon KernBrian Marick

Robert C. MartinSteve Mellor

Ken SchwaberJeff SutherlandDave Thomas

Page 8: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 8

Principles behind Agile ManifestoWe follow these 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. Agile processes harness change for the customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

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.

7. Working software is the primary measure of progress.

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

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

10. Simplicity--the art of maximizing the amount of work not done--is essential.

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

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

Page 9: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 9

SCRUM processin a nutshell

Page 10: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 10

Project Management- Triple Constraint

Scope

CostTime

Quality

Time

CostScop

e

Quality

Fixed

Fixed

Traditional Iron Triangle

Agile Inverted Triangle

Page 11: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 11

Waterfall Agile

Focuses on resource utilization Focuses on value generated

Dictates process to team Facilitate the team defining the process. Helps Scrum Master

Manager Coach

Determines project schedule Helps team understand estimation process and team does the estimation/scheduling

Command and Control Servant Leadership

Role of Project Manager

Page 12: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 12

Waterfall Agile

Black-box testing Black-box and white-box testing

Testing starts post development Works alongside development team. Development and testing goes hand-in-hand.

Separate team reporting to QA manager

Part of single Agile team reporting to same manager

No focus on automation Focuses primarily on automation

Role of QA

Page 13: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 13

Waterfall Agile

Very skilled developer focusing on only one module

Highly motivated individual working on all modules

No collective code ownership Collective code ownership

Lot of design documents (HLD, LLD)

Light-weight design and working code

No interaction with QA team QA and Dev work together

Part of separate team reporting to development manager

QA and Development part of same Agile team

Role of Developer

Page 14: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 14

Apply these criterias..◦ Requirements

Stable or Changing?◦ Experience

How comfortable team is to Technology and Process to be used?◦ Scale of project

Large scale project distributed in multiple geographies?◦ Customer involvement

Do they work closely with team?◦ Regulatory requirement:

Can we reduce documentation at each stage?◦ Contract types:

Fixed Price/Fixed Scope Time and Material (T&M) Money for Nothing, Change for Free (Agile)

What is right for your project?

Page 16: Introduction to software development methodologies- Agile vs Waterfall

© Prateek Shrivastava 2013 16