Anda di halaman 1dari 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


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

Prateek Shrivastava 2013 2


Definitions
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.

Prateek Shrivastava 2013 3


Different methodologies of the
world
There are multiple ways to build a software
Ad hoc
Waterfall
Prototyping
Spiral
Iterative
Agile

Prateek Shrivastava 2013 4


Waterfall model
Requirements

Analysis

Design

Development

Testing

Delivery

Prateek Shrivastava 2013 5


Agile framework
its an umbrella

SCRUM SCRUMBAN
KANBAN SCRUM/XP HYBRID
XP AGILE UNIFIED PROCESS

Prateek Shrivastava 2013 6


Agile Manifesto
Manifesto
Manifesto for
for Agile
Agile Software
Software Development
Development

We are uncovering better ways of developing


software by doing it and helping others do it.
Through this work we have come to value: Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Individuals and interactions over processes and tools Martin Fowler
James Grenning
Working software over comprehensive documentation Jim Highsmith
Customer collaboration over contract negotiation Andrew Hunt
Ron Jeffries
Responding to change over following a plan Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
That is, while there is value in the items on Ken Schwaber
Jeff Sutherland
the right, we value the items on the left more. Dave Thomas

http://agilemanifesto.org/

Prateek Shrivastava 2013 7


Principles behind Agile Manifesto
We follow these principles

1. Our highest priority is to satisfy the


customer through early and 7. Working software is the primary
continuous delivery of valuable measure of progress.
software.
8. Agile processes promote sustainable
2. Welcome changing requirements, development. The sponsors,
even late in development. Agile developers, and users should be able
processes harness change for the to maintain a constant pace
customer's competitive advantage. indefinitely.
3. Deliver working software frequently, 9. Continuous attention to technical
from a couple of weeks to a couple of excellence and good design
months, with a preference to the enhances agility.
shorter timescale.
10. Simplicity--the art of maximizing the
4. Business people and developers must amount of work not done--is
work together daily throughout the essential.
project.
11. The best architectures, requirements,
5. Build projects around motivated and designs emerge from self-
individuals. Give them the organizing teams.
environment and support they need,
12. At regular intervals, the team reflects
and trust them to get the job done.
on how to become more effective,
6. The most efficient and effective then tunes and adjusts its behavior
method of conveying information to accordingly. 8
and within a development team is Prateek Shrivastava 2013
SCRUM process
in a nutshell

Prateek Shrivastava 2013 9


Project Management- Triple
Constraint
Fixed

Scope Cost Scope

Quality
Quality

Time Cost Time

Fixed

Traditional Iron Agile Inverted Triangle


Triangle

Prateek Shrivastava 2013 10


Role of Project Manager
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

Prateek Shrivastava 2013 11


Role of QA
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 Part of single Agile team reporting
manager to same manager
No focus on automation Focuses primarily on automation

Prateek Shrivastava 2013 12


Role of Developer
Waterfall Agile
Very skilled developer focusing on Highly motivated individual
only one module working on all modules
No collective code ownership Collective code ownership
Lot of design documents (HLD, Light-weight design and working
LLD) code
No interaction with QA team QA and Dev work together
Part of separate team reporting to QA and Development part of same
development manager Agile team

Prateek Shrivastava 2013 13


What is right for your
project?
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)

Prateek Shrivastava 2013 14


Reference Materials
http://
www.cs.umd.edu/class/spring2003/cmsc838p/
Process/waterfall.pdf
http://www.scrumalliance.org/

http://www.mountaingoatsoftware.com/topic
s/agile-project-management

Prateek Shrivastava 2013 15


Prateek Shrivastava 2013 16

Anda mungkin juga menyukai