software development models & methodologiesneil.minkley.fr/pm/pm_sw_dvpt_methodologies.pdf ·...

31
Project Management Software development models & methodologies [email protected]

Upload: others

Post on 12-Jul-2020

11 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Project Management

Software development models & methodologies

[email protected]

Page 2: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Project life cycle

Business case

Advisability study

Feasibility study

Execution Closure Planning

Plan implementation

Product creation

Project supervision

Requirements

Charter

Scope

Schedule

Budget

Product launch

Project plan

Page 3: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Product creation phases

Business case

Advisability study

Feasibility study

Execution Closure Planning

Plan implementation

Product creation

Project supervision

Requirements

Charter

Scope

Schedule

Budget

Product launch

Project plan

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 4: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Software development phases

Business case

Advisability study

Feasibility study

Execution Closure Planning

Plan implementation

Product creation

Project supervision

Requirements

Charter

Scope

Schedule

Budget

Product launch

Project plan

Requirements Integration Design Testing &

Acceptance

Content creation Software coding

Deployment

Page 5: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Software development life cycle models

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Waterfall model

Incremental model

V model

Spiral model

Agile software development

XP (eXtreme Programming)

Page 6: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Waterfall model

Requirements

System design

Unit design

Implementation & Unit testing

Integration & System testing

Operation

Page 7: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Incremental model

Requirements

System design

Unit design

Implementation & Unit testing

Integration & System testing

Operation

Page 8: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

V model

Requirements

System design

Unit design

Implementation

Integration & System testing

Acceptance testing

Unit testing

Acceptance test plan

Integration test plan

Unit test plan

Page 9: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Spiral model

Requirements

Risk analysis

Prototyping

Coding

Testing

Customer evaluation

Page 10: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Questions?

Page 11: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Agile software development (1)

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Flexibility

Interactivity

10 key principles

Page 12: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Agile software development (2)

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Actively involve users

Empower development team to

make decisions

Page 13: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Agile software development (3)

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Allow requirements to evolve but

keep timescale fixed

Capture requirements at highest

level of description

Page 14: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Agile software development (4)

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Develop small incremental releases,

and iterate

Make frequent delivery of product

(to test…)

Complete a feature before moving

on to the next

Page 15: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Agile software development (5)

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Apply the “80/20 rule” (Pareto’s principle)

Integrate testing throughout the project

life cycle

Rely on collaborative approach between

stakeholders

Page 16: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Questions?

Page 17: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (1)

Communication

Simplicity

Feedback

Courage

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 18: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (2)

Whole team:

all contributors to the project form

a single team, including at least one

business/user representative

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 19: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (3)

Planning game:

steer the project rather than

exactly predict what needs to be

done and how long it will take:

Release planning:

due dates for deliverables

Iteration planning:

direction regularly adjusted

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 20: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (4)

Simple design:

always match required functionality

do not waste time on features not

really needed

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 21: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (5)

Metaphor:

describes in very simple and

evocative terms how the software

should work

requires agreed-upon vocabulary

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 22: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (6)

Refactoring:

continuous process of design

improvement

focuses on avoiding duplication and

achieving full “cohesion” of the

code

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 23: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (7)

Continuous integration:

system kept “fully integrated” at all

stages of development in order to

maintain its cohesion

system builds produced on a very

frequent basis

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 24: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (8)

Small releases:

working version of software

delivered to customer after each

iteration

may even be put into operation for

maximum feedback

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 25: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (9)

Customer tests:

performed for each “small release”

of software, preferably with

automatic acceptance programs

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 26: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (10)

Test-driven development:

systematic unit tests, with full

coverage of features developed

as the system grows, so does the

number of unit tests which need

to be run successfully

feedback from tests drives further

development work

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 27: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (11)

Coding standard:

code written by any member of

the development team complies

with a general, unique standard

ensures cohesion of the system

and facilitates code maintenance

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 28: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (12)

Pair programming:

each software unit is developed

by two programmers working

together, to produce better code

than would two programmers

working singly

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 29: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (13)

Collective ownership:

code produced by programmers is

owned by all members of the

development team

each person pays attention to code

written by others and contributes to

improving its quality

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 30: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

XP: eXtreme Programming (14)

Sustainable pace:

developers should work with

maximum productivity at a

sustainable pace, avoiding

“burn-out”...

easier said than done!

Requirements Integration Design Testing &

Acceptance Deployment

Content creation Software coding

Page 31: Software development models & methodologiesneil.minkley.fr/pm/PM_SW_DVPT_METHODOLOGIES.pdf · 2015-05-25 · Software development models & methodologies neil@minkley.fr. Project life

Questions?