documentation in the agile software development process
DESCRIPTION
Abandoning any documentation in agile software development is widespread due to a mistaken interpretation of the agile value "working software over comprehensive documentation". Aren't there any forms of documentation in practice which are actually agile?TRANSCRIPT
Fabian KissSep 2011
Scrum User Group Lake Constance
DO AGILISTES NEED DOCUMENTATION?
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
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
LET'S HAVE A CLOSER LOOK AT SOME DEFINITIONS
AGILE PROCESS
Definition by values and practices (Manifesto & beyond)
AGILE PROCESS
Agile Software Development Poster by VersionOne, Inc., 2011, licensed under the CC BY-SA 3.0
AGILE PROCESS
Definition by values and practices (Manifesto & beyond)
Definition by “SDLC coverage”
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
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
DOCUMENTATION
Virtually no definition of documentation (in respect of software development)
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)
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)
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
DOCUMENTATION
... during its development
... after its completion
Proposal for an initial classification:
Documentation dealing with properties of a software product ...
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
S.W. AMBLER: 'AGILE MODELING'
Scott W. Ambler
Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process
Wiley2002
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
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
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
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
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
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
THE DOWNSIDE...
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)
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
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)
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:
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
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
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
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
AGAIN, ADOWN-SIDE...
A. RÜPING: 'AGILE DOCUMENTATION'
Obviously the patterns are more or less specific to agile software development
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
Pict
ure
by C
ésar
Ast
udill
o, li
cens
ed u
nder
the
CC B
Y-N
C 2.
0
Documentation itself is simply a too broad topic ...
Documentation itself is simply a too broad topic ...
… even agile documentation is still something very unspecific
Pict
ure
by L
awPr
ieR,
lice
nsed
und
er th
e CC
BY-
NC
2.0
SOME OPTIMISM PLEASE!
Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!
Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!
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
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?
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?
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?
...