Documentation in the agile software development process

26,691 views

Published on

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?

Published in: Technology, Business

Documentation in the agile software development process

  1. 1. Fabian Kiss Sep 2011Scrum User Group Lake Constance
  2. 2. DO AGILISTES NEED DOCUMENTATION?
  3. 3. THE MANIFESTO ON DOCUMENTATION Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  4. 4. THE MANIFESTO ON DOCUMENTATION Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  5. 5. LETS HAVE A CLOSERLOOK AT SOME DEFINITIONS
  6. 6. AGILE PROCESS Definition by values and practices (Manifesto & beyond)
  7. 7. AGILE PROCESS Agile Software Development Poster by VersionOne, Inc., 2011, licensed under the CC BY-SA 3.0
  8. 8. AGILE PROCESS Definition by values and practices (Manifesto & beyond) Definition by “SDLC coverage”
  9. 9. 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
  10. 10. 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
  11. 11. DOCUMENTATIONVirtually no definition of documentation(in respect of software development)
  12. 12. DOCUMENTATIONVirtually no definition of documentation(in respect of software development) From the developers perspective: source code documentation From the project stakeholders perspective: system documentation
  13. 13. DOCUMENTATIONVirtually no definition of documentation(in respect of software development) From the developers perspective: source code documentation From the project stakeholders perspective: system documentation More general: software documentation  Umbrella term for any documentation related to a software product
  14. 14. DOCUMENTATIONVirtually no definition of documentation(in respect of software development) From the developers perspective: source code documentation From the project stakeholders perspective: system documentation More general: software documentation  Umbrella term for any documentation related to a software product People think of different things when referring to documentation
  15. 15. DOCUMENTATIONProposal for an initial classification:Documentation dealing with properties of a software product ... ... during its development ... after its completion
  16. 16. BOOKS ABOUT AGILE DOCUMENTATIONPicture by Jeremy Nelson, licensed under the CC BY-NC-SA 2.0
  17. 17. S.W. AMBLER: AGILE MODELINGScott W. AmblerAgile Modeling: Effective Practices foreXtreme Programming and the Unified ProcessWiley2002
  18. 18. S.W. AMBLER: AGILE MODELINGChapter about agile documentation(www.agilemodeling.com holds a more recent version of it)Values, principles and practices for Agile Modeling adopted fromXP/Agile values, principles and practices
  19. 19. S.W. AMBLER: AGILE MODELINGOne 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
  20. 20. S.W. AMBLER: AGILE MODELINGOne of his principles in the context of documentation:“Travel Light. Every artifact that you create, and then decide to keep, willneed to be maintained over time.”From Agile Modeling (AM) Principles v2 by Scott W. Ambler, http://www.agilemodeling.com/principles.htm#TravelLight
  21. 21. S.W. AMBLER: AGILE MODELINGTwo 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 chancethat 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
  22. 22. S.W. AMBLER: AGILE MODELINGTwo 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 chancethat 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 documentas 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
  23. 23. S.W. AMBLER: AGILE MODELINGTwo 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 chancethat 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 documentas late as possible in the life cycle." tFrom Agile/Lean Documentation: Strategies for Agile Software Development by Scott W. Ambler, whe n to documenhttp://www.agilemodeling.com/essays/agileDocumentation.htm#WhenToCreateDocumentation
  24. 24. THE DOWNSIDE...
  25. 25. S.W. AMBLER: AGILE MODELINGStrongly influenced by Agile Modeling (the authors major interest) AM as a certain agile methodology AMDD as a certain software development approach
  26. 26. S.W. AMBLER: AGILE MODELINGStrongly influenced by Agile Modeling (the authors major interest) AM as a certain agile methodology AMDD as a certain software development approach Limits generality
  27. 27. A. RÜPING: AGILE DOCUMENTATIONAndreas RüpingAgile Documentation: A Pattern Guide to ProducingLightweight Documents for Software ProjectsWiley2003 (Its a app comple a can rently tely dif not t f fr o n affo he pub erent b rd d l t co v er esig isher s ook, fo r ning imp each a un l y of i t ique s bo oks)
  28. 28. A. RÜPING: AGILE DOCUMENTATIONPatterns as descriptions of solutions to certain documentation issues inagile software projects, divided into five categories:1. Finding the Right Topics2. Structuring Individual Documents3. Layout and Typography4. Infrastructure and Technical Organisation5. Management and Quality Assurance
  29. 29. A. RÜPING: AGILE DOCUMENTATIONExamples (“Pattern Thumbnails”): From Agile Documentation: A Pattern Guide to Producing Lightweight Documents for Software Projects by Andreas Rüping, 2003, Wiley, p. 198
  30. 30. A. RÜPING: AGILE DOCUMENTATIONExamples (“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
  31. 31. A. RÜPING: AGILE DOCUMENTATIONFurthermore...“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
  32. 32. A. RÜPING: AGILE DOCUMENTATIONFurthermore...“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 principle s relation to ind ividuals
  33. 33. AGAIN, ADOWN-SIDE...
  34. 34. A. RÜPING: AGILE DOCUMENTATIONObviously the patterns are more or less specific to agile softwaredevelopment
  35. 35. A. RÜPING: AGILE DOCUMENTATIONObviously the patterns are more or less specific to agile softwaredevelopment Some problems unique for documentation in agile software development might not be addressed at all
  36. 36. Picture by César Astudillo, licensed under the CC BY-NC 2.0
  37. 37. Documentation itself is simply a too broad topic ...
  38. 38. Documentation itself is simply a too broad topic ... … even agile documentation is still something very unspecific
  39. 39. SOME OPTIMISM PLEASE!Picture by LawPrieR, licensed under the CC BY-NC 2.0
  40. 40. Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!
  41. 41. Before considering (or developing) any practices, patterns or other formsof advice for agile documentation, we should further delimit the scope!
  42. 42. 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
  43. 43. 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?
  44. 44. 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?
  45. 45. 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?  ...

×