scaling agile

32
Scaling agile methods Software Engineering 10

Upload: sommerville-videos

Post on 14-Jul-2015

103 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Scaling agile

Scaling agile methods

Software Engineering 10

Page 2: Scaling agile

Agile methods have proved to be

successful for small and medium

sized projects that can be developed

by a small co-located team.

Page 3: Scaling agile

It is sometimes argued that the

success of these methods comes

because of improved

communications which is possible

when everyone is working together.

Page 4: Scaling agile

For large systems, different parts of

the system may be developed by

different teams. They may not all be

working in the same place or for the

same company.

Page 5: Scaling agile

Scaling up agile methods involves

changing these to cope with larger,

longer projects where there are

multiple development teams,

perhaps working in different

locations.

Page 6: Scaling agile

Agile fundamentals

Flexible planning, frequent system

releases, continuous integration,

test-driven development and good

team communications.

Page 7: Scaling agile

The informality of agile development

is incompatible with the legal

approach to contract definition that

is commonly used in large

companies.

Page 8: Scaling agile

Agile methods are most appropriate

for new software development rather

than software maintenance. Yet the

majority of software costs in large

companies come from maintaining

their existing software systems.

Page 9: Scaling agile

Agile methods are designed for small

co-located teams yet much software

development now involves

worldwide distributed teams.

Page 10: Scaling agile

Most software contracts for custom

systems are based around a

specification, which sets out what

has to be implemented by the system

developer for the system customer.

Page 11: Scaling agile

It is not therefore possible to

interleave specification and

development as recommended in

agile development.

Page 12: Scaling agile

A contract that pays for developer

time rather than functionality is seen

as a high risk by many legal

departments because what has to be

delivered cannot be guaranteed.

Page 13: Scaling agile

Are systems that are developed

using an agile approach

maintainable, given the emphasis in

the development process of

minimizing formal documentation?

Page 14: Scaling agile

Can agile methods be used

effectively for evolving a system in

response to customer change

requests?

Page 15: Scaling agile

If agile methods are to be successful,

they have to support maintenance as

well as original development.

Page 16: Scaling agile

Agile development relies on the

development team knowing and

understanding what has to be done.

Page 17: Scaling agile

For long-lifetime systems, this is a

real problem as the original

developers will not always work on

the system.

Page 18: Scaling agile

Scaling agile requires a mix of agile

and plan-based development.

Page 19: Scaling agile

Is it important to have a very detailed

specification and design before

moving to implementation? If so, you

probably need to use a plan-driven

approach.

Page 20: Scaling agile

Are customer representatives

available and willing to work closely

with the development team?

Page 21: Scaling agile

How large is the system that is being

developed? Agile methods minimise

documentation but documentation

may be essential for distributed

teams.

Page 22: Scaling agile

Agile and plan-based factors

Chapter 3 Agile Software Development

2230/10/2014

Page 23: Scaling agile

Agile methods are most effective a

relatively small co-located team who

can communicate informally.

Page 24: Scaling agile

Systems that require a lot of analysis

before implementation need a fairly

detailed design to carry out this

analysis.

Page 25: Scaling agile

Long-lifetime systems require

documentation to communicate the

intentions of the system developers

to the support team.

Page 26: Scaling agile

If a system is regulated you will

probably be required to produce

detailed documentation as part of the

system safety case.

Page 27: Scaling agile

It is sometimes argued that agile

methods require higher skill levels

than plan-based approaches in

which programmers simply translate

a detailed design into code.

Page 28: Scaling agile

Design documents may be required

if the team is distributed.

Page 29: Scaling agile

IDE support for collaborative work is

essential for distributed teams.

Page 30: Scaling agile

Can the organisation adapt to

different kinds of development

contract or does the contracts

department insist on

standardisation?

Page 31: Scaling agile

Does the culture support individual

initiative which is an inherent part of

agile development?

Page 32: Scaling agile

Do customers want incremental

delivery and involvement in the

process?