Download - Documentation in the agile software development process

Transcript
Page 1: Documentation in the agile software development process

Fabian KissSep 2011

Scrum User Group Lake Constance

Page 2: Documentation in the agile software development process

DO AGILISTES NEED DOCUMENTATION?

Page 3: Documentation in the agile software development process

Manifesto for Agile Software Development

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

Individuals and interactions over processes and toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding 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.

THE MANIFESTO ON DOCUMENTATION

Page 4: Documentation in the agile software development process

Manifesto for Agile Software Development

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

Individuals and interactions over processes and toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding 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.

THE MANIFESTO ON DOCUMENTATION

Page 5: Documentation in the agile software development process

LET'S HAVE A CLOSER LOOK AT SOME DEFINITIONS

Page 6: Documentation in the agile software development process

AGILE PROCESS

Definition by values and practices (Manifesto & beyond)

Page 7: Documentation in the agile software development process

AGILE PROCESS

Agile Software Development Poster by VersionOne, Inc., 2011, licensed under the CC BY-SA 3.0

Page 8: Documentation in the agile software development process

AGILE PROCESS

Definition by values and practices (Manifesto & beyond)

Definition by “SDLC coverage”

Page 9: Documentation in the agile software development process

AGILE PROCESS

From Agile Software Development Methods: Review and Analysis by Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J., 2002, licensed under the CC BY-SA 3.0

Page 10: Documentation in the agile software development process

AGILE PROCESS

Definition by values and practices (Manifesto & beyond)

Definition by “SDLC coverage”

Definition by ...

There is a common understanding of what an agile software development process is

Page 11: Documentation in the agile software development process

DOCUMENTATION

Virtually no definition of documentation (in respect of software development)

Page 12: Documentation in the agile software development process

DOCUMENTATION

From the developer's perspective: source code documentation

From the project stakeholder's perspective: system documentation

Virtually no definition of documentation (in respect of software development)

Page 13: Documentation in the agile software development process

DOCUMENTATION

From the developer's perspective: source code documentation

From the project stakeholder's perspective: system documentation

More general: software documentation

Umbrella term for any documentation related to a software product

Virtually no definition of documentation (in respect of software development)

Page 14: Documentation in the agile software development process

DOCUMENTATION

From the developer's perspective: source code documentation

From the project stakeholder's perspective: system documentation

More general: software documentation

Umbrella term for any documentation related to a software product

Virtually no definition of documentation (in respect of software development)

People think of different things when referring to documentation

Page 15: Documentation in the agile software development process
Page 16: Documentation in the agile software development process

DOCUMENTATION

... during its development

... after its completion

Proposal for an initial classification:

Documentation dealing with properties of a software product ...

Page 17: Documentation in the agile software development process

BOOKS ABOUT AGILE DOCUMENTATION

Pict

ure

by Je

rem

y N

elso

n, li

cens

ed u

nder

the

CC B

Y-N

C-SA

2.0

Page 18: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

Scott W. Ambler

Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process

Wiley2002

Page 19: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

Chapter about agile documentation(www.agilemodeling.com holds a more recent version of it)

Values, principles and practices for Agile Modeling adopted from XP/Agile values, principles and practices

Page 20: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

One of his values in the context of documentation:

“The fundamental issue is communication, not documentation.”From Agile/Lean Documentation: Strategies for Agile Software Development by Scott W. Ambler, http://www.agilemodeling.com/essays/agileDocumentation.htm#CriticalPoints

Page 21: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

One of his principles in the context of documentation:

“Travel Light. Every artifact that you create, and then decide to keep, will need to be maintained over time.”From Agile Modeling (AM) Principles v2 by Scott W. Ambler, http://www.agilemodeling.com/principles.htm#TravelLight

Page 22: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

Two of his practices in the context of documentation:

“Executable specifications, for example [...] a developer test-suite [...]. Because these artifacts add value there is a significantly greater chance that developers will keep them up-to-date.”From Agile/Lean Documentation: Strategies for Agile Software Development by Scott W. Ambler, http://www.agilemodeling.com/essays/agileDocumentation.htm#IssuesWithDocumentation

Page 23: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

Two of his practices in the context of documentation:

“Executable specifications, for example [...] a developer test-suite [...]. Because these artifacts add value there is a significantly greater chance that developers will keep them up-to-date.”From Agile/Lean Documentation: Strategies for Agile Software Development by Scott W. Ambler, http://www.agilemodeling.com/essays/agileDocumentation.htm#IssuesWithDocumentation

"Document stable concepts, not speculative concepts, and thereby document as late as possible in the life cycle."From Agile/Lean Documentation: Strategies for Agile Software Development by Scott W. Ambler, http://www.agilemodeling.com/essays/agileDocumentation.htm#WhenToCreateDocumentation

Page 24: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

Two of his practices in the context of documentation:

“Executable specifications, for example [...] a developer test-suite [...]. Because these artifacts add value there is a significantly greater chance that developers will keep them up-to-date.”From Agile/Lean Documentation: Strategies for Agile Software Development by Scott W. Ambler, http://www.agilemodeling.com/essays/agileDocumentation.htm#IssuesWithDocumentation

"Document stable concepts, not speculative concepts, and thereby document as late as possible in the life cycle."From Agile/Lean Documentation: Strategies for Agile Software Development by Scott W. Ambler, http://www.agilemodeling.com/essays/agileDocumentation.htm#WhenToCreateDocumentation

when to document

Page 25: Documentation in the agile software development process

THE DOWNSIDE...

Page 26: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

AM as a certain agile methodology

AMDD as a certain software development approach

Strongly influenced by Agile Modeling (the author's major interest)

Page 27: Documentation in the agile software development process

S.W. AMBLER: 'AGILE MODELING'

AM as a certain agile methodology

AMDD as a certain software development approach

Strongly influenced by Agile Modeling (the author's major interest)

Limits generality

Page 28: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

Andreas Rüping

Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects

Wiley2003

(It's a completely different book,

apparently the publisher simply

cannot afford designing a unique

front cover for each of its books)

Page 29: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

1. Finding the Right Topics2. Structuring Individual Documents3. Layout and Typography4. Infrastructure and Technical Organisation5. Management and Quality Assurance

Patterns as descriptions of solutions to certain documentation issues in agile software projects, divided into five categories:

Page 30: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

Examples (“Pattern Thumbnails”):

From Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects by Andreas Rüping, 2003, Wiley, p. 198

Page 31: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

Examples (“Pattern Thumbnails”):

From Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects by Andreas Rüping, 2003, Wiley, p. 198

From Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects by Andreas Rüping, 2003, Wiley, p. 201

Page 32: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

Furthermore...

“Different people grasp information at different speeds. […] Documents […] allow people to read at their own pace.”From Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects by Andreas Rüping, 2003, Wiley, p. 20

Page 33: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

Furthermore...

“Different people grasp information at different speeds. […] Documents […] allow people to read at their own pace.”From Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects by Andreas Rüping, 2003, Wiley, p. 20

agile principles' relation to individuals

Page 34: Documentation in the agile software development process

AGAIN, ADOWN-SIDE...

Page 35: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

Obviously the patterns are more or less specific to agile software development

Page 36: Documentation in the agile software development process

A. RÜPING: 'AGILE DOCUMENTATION'

Obviously the patterns are more or less specific to agile software development

Some problems unique for documentation in agile software development might not be addressed at all

Page 37: Documentation in the agile software development process

Pict

ure

by C

ésar

Ast

udill

o, li

cens

ed u

nder

the

CC B

Y-N

C 2.

0

Page 38: Documentation in the agile software development process

Documentation itself is simply a too broad topic ...

Page 39: Documentation in the agile software development process

Documentation itself is simply a too broad topic ...

… even agile documentation is still something very unspecific

Page 40: Documentation in the agile software development process

Pict

ure

by L

awPr

ieR,

lice

nsed

und

er th

e CC

BY-

NC

2.0

SOME OPTIMISM PLEASE!

Page 41: Documentation in the agile software development process

Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!

Page 42: Documentation in the agile software development process

Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!

Page 43: Documentation in the agile software development process

Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!

Documentation for during/after development

Page 44: Documentation in the agile software development process

Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!

✔ Documentation for during/after development

Who documents for whom?

Page 45: Documentation in the agile software development process

Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!

✔ Documentation for during/after development

Who documents for whom?

Documenting for what specific purpose?

Page 46: Documentation in the agile software development process

Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!

✔ Documentation for during/after development

Who documents for whom?

Documenting for what specific purpose?

...