27

Incremental Development is a Staging and Scheduling Strategy in Which

Embed Size (px)

Citation preview

Page 1: Incremental Development is a Staging and Scheduling Strategy in Which
Page 2: Incremental Development is a Staging and Scheduling Strategy in Which

Incremental development is a staging and scheduling strategy in which various parts of the system are developedat different times or rates and integrated as they are completed.

Iterative development is a rework scheduling strategy in which time is set aside to revise and improve parts of the system.

Page 3: Incremental Development is a Staging and Scheduling Strategy in Which
Page 4: Incremental Development is a Staging and Scheduling Strategy in Which

Incremental development

Validateincrement

Develop systemincrement

Design systemarchitecture

Integrateincrement

Validatesystem

Define outline requirements

Assign requirements to increments

System incomplete

Finalsystem

Page 5: Incremental Development is a Staging and Scheduling Strategy in Which

Incremental development advantages

• Customer value can be delivered with each increment so system functionality is available earlier.

• Early increments act as a prototype to help elicit requirements for later increments.

• Lower risk of overall project failure.• The highest priority system services tend to

receive the most testing.

Page 6: Incremental Development is a Staging and Scheduling Strategy in Which
Page 7: Incremental Development is a Staging and Scheduling Strategy in Which
Page 8: Incremental Development is a Staging and Scheduling Strategy in Which

Spiral development

• Process is represented as a spiral rather than as a sequence of activities with backtracking.

• Each loop in the spiral represents a phase in the process.

• No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.

• Risks are explicitly assessed and resolved throughout the process.

Page 9: Incremental Development is a Staging and Scheduling Strategy in Which
Page 10: Incremental Development is a Staging and Scheduling Strategy in Which
Page 11: Incremental Development is a Staging and Scheduling Strategy in Which

Rational Unified Process

Page 12: Incremental Development is a Staging and Scheduling Strategy in Which

Agile Processes

• Dissatisfaction with the overheads involved in design methods led to the creation of agile methods. These methods:– Focus on the code rather than the design;– Are based on an iterative approach to software

development;– Are intended to deliver working software quickly and

evolve to meet changing requirements.• Agile methods are probably best suited to

small/medium-sized business systems12

Page 13: Incremental Development is a Staging and Scheduling Strategy in Which
Page 14: Incremental Development is a Staging and Scheduling Strategy in Which

14

Page 15: Incremental Development is a Staging and Scheduling Strategy in Which
Page 16: Incremental Development is a Staging and Scheduling Strategy in Which

Extreme programming

• Perhaps the best-known and most widely used agile method.

• Extreme Programming (XP) takes an ‘extreme’ approach to iterative development. – New versions may be built several times per day;– Increments are delivered to customers every 2

weeks;– All tests must be run for every build and the build

is only accepted if tests run successfully.

16

Page 17: Incremental Development is a Staging and Scheduling Strategy in Which
Page 18: Incremental Development is a Staging and Scheduling Strategy in Which

The XP release cycle

18

Select user stories for this

release

Break down stories to tasks

Plan release

Develop/integrate/test

software

Release software

Evaluate system

Page 19: Incremental Development is a Staging and Scheduling Strategy in Which

19

Page 20: Incremental Development is a Staging and Scheduling Strategy in Which

Extreme Programming Practices

Fine scale feedback

Pair programming

Planning game

Test driven development

Whole team

Continuous process

Continuous integration

Refactoring

Small releases

Shared understanding

Coding standards

Collective code ownership

Simple design

System metaphor

Programmer welfare

Sustainable pace

20

Page 21: Incremental Development is a Staging and Scheduling Strategy in Which
Page 22: Incremental Development is a Staging and Scheduling Strategy in Which
Page 23: Incremental Development is a Staging and Scheduling Strategy in Which
Page 24: Incremental Development is a Staging and Scheduling Strategy in Which
Page 25: Incremental Development is a Staging and Scheduling Strategy in Which

The word increment fundamentally means add onto.

The word iterate fundamentally means re-do.

Sadly, iterative development has come to mean either incremental or iterative, indiscriminately

Page 26: Incremental Development is a Staging and Scheduling Strategy in Which

Incremental development gives you opportunities to improve your development process.

Iterative development helps you improve your product quality.

Page 27: Incremental Development is a Staging and Scheduling Strategy in Which

(1) Development process(2) Feature set(3) Product quality

Use an incremental strategy to improve the first two.

Use an iterative strategy to improve the third.