SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Documentation for Program Comprehension in
       Agile Software Development

                   Fabian Kiss

           Scrum User Group Lake Constance


                     Sep 2011
Program Comprehension




    To understand a completed computer program (source code)
               What has been implemented? How?
Agile




        Working software over comprehensive documentation

                      → code = documention
Why supporting Program Comprehension by
documentation?




  Agile supports Program Comprehension

      Striving for high-quality source code (Clean Code,
      Refactoring)
      ExempliïŹcation of the program’s ”use” through Unit Tests
Why supporting Program Comprehension by
documentation?




  Agile supports Program Comprehension

      Striving for high-quality source code (Clean Code,
      Refactoring)
      ExempliïŹcation of the program’s ”use” through Unit Tests
Why supporting Program Comprehension by
documentation?




  Agile supports Program Comprehension

      Striving for high-quality source code (Clean Code,
      Refactoring)
      ExempliïŹcation of the program’s ”use” through Unit Tests
Why supporting Program Comprehension by
documentation?


  Agile impedes Program Comprehension

      Continuous refactoring
      Experienced team for initial development, less experienced
      team for maintenance
      Unrefactorable obfuscating code
      Face-to-face communication is preferred: What if nobody
      (anymore) knows a certain information?
Why supporting Program Comprehension by
documentation?


  Agile impedes Program Comprehension

      Continuous refactoring
      Experienced team for initial development, less experienced
      team for maintenance
      Unrefactorable obfuscating code
      Face-to-face communication is preferred: What if nobody
      (anymore) knows a certain information?
Why supporting Program Comprehension by
documentation?


  Agile impedes Program Comprehension

      Continuous refactoring
      Experienced team for initial development, less experienced
      team for maintenance
      Unrefactorable obfuscating code
      Face-to-face communication is preferred: What if nobody
      (anymore) knows a certain information?
Why supporting Program Comprehension by
documentation?


  Agile impedes Program Comprehension

      Continuous refactoring
      Experienced team for initial development, less experienced
      team for maintenance
      Unrefactorable obfuscating code
      Face-to-face communication is preferred: What if nobody
      (anymore) knows a certain information?
Why supporting Program Comprehension by
documentation?


  Agile impedes Program Comprehension

      Continuous refactoring
      Experienced team for initial development, less experienced
      team for maintenance
      Unrefactorable obfuscating code
      Face-to-face communication is preferred: What if nobody
      (anymore) knows a certain information?
Goal




       Documenting particularly for the support of Program
            Comprehension without impeding agility

              → requirements for that documentation...
Low-level context



   Documentation has to be attached to the software in
   development at a low-level context (source code)

   Rationale
       Program Comprehension is a matter of programming
       Meeting ”the code is the documentation”
       Agile itself ”lives” at a low-level context (agile practices)
Low-level context



   Documentation has to be attached to the software in
   development at a low-level context (source code)

   Rationale
       Program Comprehension is a matter of programming
       Meeting ”the code is the documentation”
       Agile itself ”lives” at a low-level context (agile practices)
Low-level context



   Documentation has to be attached to the software in
   development at a low-level context (source code)

   Rationale
       Program Comprehension is a matter of programming
       Meeting ”the code is the documentation”
       Agile itself ”lives” at a low-level context (agile practices)
Low-level context



   Documentation has to be attached to the software in
   development at a low-level context (source code)

   Rationale
       Program Comprehension is a matter of programming
       Meeting ”the code is the documentation”
       Agile itself ”lives” at a low-level context (agile practices)
High-level beneïŹt



   From the low-level documentation a higher-level
   documentation (artifact) has to be extracted such that it
   adds directly a beneïŹt for other involved stakeholders:


    1. Progress of software development is made more
       transparent
    2. Improved quality of developed software product /
       additional value
High-level beneïŹt



   From the low-level documentation a higher-level
   documentation (artifact) has to be extracted such that it
   adds directly a beneïŹt for other involved stakeholders:


    1. Progress of software development is made more
       transparent
    2. Improved quality of developed software product /
       additional value
High-level beneïŹt



   From the low-level documentation a higher-level
   documentation (artifact) has to be extracted such that it
   adds directly a beneïŹt for other involved stakeholders:


    1. Progress of software development is made more
       transparent
    2. Improved quality of developed software product /
       additional value
High-level beneïŹt



   Rationale
       1st type: agile principle ”working software is the primary
       measure of progress”
       2nd type: agile principle ”continuous attention to technical
       excellence and good design enhances agility”
       Such a direct beneïŹt – obtained by the low-level
       documentation – helps a developer to justify the eïŹ€ort for
       (continually) documenting at a low level
High-level beneïŹt



   Rationale
       1st type: agile principle ”working software is the primary
       measure of progress”
       2nd type: agile principle ”continuous attention to technical
       excellence and good design enhances agility”
       Such a direct beneïŹt – obtained by the low-level
       documentation – helps a developer to justify the eïŹ€ort for
       (continually) documenting at a low level
High-level beneïŹt



   Rationale
       1st type: agile principle ”working software is the primary
       measure of progress”
       2nd type: agile principle ”continuous attention to technical
       excellence and good design enhances agility”
       Such a direct beneïŹt – obtained by the low-level
       documentation – helps a developer to justify the eïŹ€ort for
       (continually) documenting at a low level
No separate artifact


   A documentation for supporting Program Comprehension
   must not be explicitly produced, as it is not explicitly
   requested (by the customer)

   Rationale
       Agile principle: ”simplicity – the art of maximizing the
       amount of work not done – is essential”
       Overdoing low-level documentation in favor of the
       subsequently extracted high-level documentation artifact is
       not necessary
No separate artifact


   A documentation for supporting Program Comprehension
   must not be explicitly produced, as it is not explicitly
   requested (by the customer)

   Rationale
       Agile principle: ”simplicity – the art of maximizing the
       amount of work not done – is essential”
       Overdoing low-level documentation in favor of the
       subsequently extracted high-level documentation artifact is
       not necessary
No separate artifact


   A documentation for supporting Program Comprehension
   must not be explicitly produced, as it is not explicitly
   requested (by the customer)

   Rationale
       Agile principle: ”simplicity – the art of maximizing the
       amount of work not done – is essential”
       Overdoing low-level documentation in favor of the
       subsequently extracted high-level documentation artifact is
       not necessary
Primary purpose


   A documentation for supporting Program Comprehension
   has to serve primarily that purpose

   Rationale
       A speciïŹc purpose is needed as a starting point, because
       ”documentation” is too broad
       Alternatively presuming particular documentation artifacts
       from software development process violates generality
Primary purpose


   A documentation for supporting Program Comprehension
   has to serve primarily that purpose

   Rationale
       A speciïŹc purpose is needed as a starting point, because
       ”documentation” is too broad
       Alternatively presuming particular documentation artifacts
       from software development process violates generality
Primary purpose


   A documentation for supporting Program Comprehension
   has to serve primarily that purpose

   Rationale
       A speciïŹc purpose is needed as a starting point, because
       ”documentation” is too broad
       Alternatively presuming particular documentation artifacts
       from software development process violates generality
How a concrete solution could look like?




        An exemplary documentation technique meeting all the
                          requirements:

     Code documentation based on Design Decision Rationales

   http://www.infoq.com/articles/decision-rationales-program-comprehension

Weitere Àhnliche Inhalte

Was ist angesagt?

Today’s Agile Documentation
Today’s Agile DocumentationToday’s Agile Documentation
Today’s Agile DocumentationMegan Leney
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014Dani Mannes
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
20150227 agility in it projects m niziolek (sent)
20150227  agility in it projects m niziolek (sent)20150227  agility in it projects m niziolek (sent)
20150227 agility in it projects m niziolek (sent)Marek Niziolek
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile ArchitectureSteve Green
 
Refactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary ArchitectureRefactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary ArchitectureBrad Appleton
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Katy Slemon
 
WANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setWANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setBrad Appleton
 
Agile Delivery Methods And Leadership
Agile Delivery Methods And LeadershipAgile Delivery Methods And Leadership
Agile Delivery Methods And LeadershipRanjith Varghese
 
Agile Architecture
Agile Architecture Agile Architecture
Agile Architecture VMware Tanzu
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile ArchitectureThomas Malt
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive SystemsTom Mueck
 
Innovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical StrategyInnovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical StrategyDaniel Berg
 
"Open" includes users - Leverage their input
"Open" includes users - Leverage their input"Open" includes users - Leverage their input
"Open" includes users - Leverage their inputRandy Earl
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Alejandro S.
 
Emerging Trends of Software Engineering
Emerging Trends of Software Engineering Emerging Trends of Software Engineering
Emerging Trends of Software Engineering DR. Ram Kumar Pathak
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayRamadevi Lakshmanan
 
DevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software DeliveryDevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software DeliveryNajib Radzuan
 
Mobile and agile the floating writer's survival kit
Mobile and agile   the floating writer's survival kitMobile and agile   the floating writer's survival kit
Mobile and agile the floating writer's survival kitAlyssa Fox
 

Was ist angesagt? (20)

Today’s Agile Documentation
Today’s Agile DocumentationToday’s Agile Documentation
Today’s Agile Documentation
 
Agile archiecture iltam 2014
Agile archiecture   iltam 2014Agile archiecture   iltam 2014
Agile archiecture iltam 2014
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
7 Myths of Agile Development
7 Myths of Agile Development7 Myths of Agile Development
7 Myths of Agile Development
 
20150227 agility in it projects m niziolek (sent)
20150227  agility in it projects m niziolek (sent)20150227  agility in it projects m niziolek (sent)
20150227 agility in it projects m niziolek (sent)
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Refactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary ArchitectureRefactoring, Emergent Design & Evolutionary Architecture
Refactoring, Emergent Design & Evolutionary Architecture
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
 
WANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setWANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-set
 
Agile Delivery Methods And Leadership
Agile Delivery Methods And LeadershipAgile Delivery Methods And Leadership
Agile Delivery Methods And Leadership
 
Agile Architecture
Agile Architecture Agile Architecture
Agile Architecture
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile Architecture
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive Systems
 
Innovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical StrategyInnovate 2014 - DevOps Technical Strategy
Innovate 2014 - DevOps Technical Strategy
 
"Open" includes users - Leverage their input
"Open" includes users - Leverage their input"Open" includes users - Leverage their input
"Open" includes users - Leverage their input
 
Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...Case Study: Practical tools and strategies for tackling legacy practices and ...
Case Study: Practical tools and strategies for tackling legacy practices and ...
 
Emerging Trends of Software Engineering
Emerging Trends of Software Engineering Emerging Trends of Software Engineering
Emerging Trends of Software Engineering
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile Way
 
DevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software DeliveryDevOps Culture transformation in Modern Software Delivery
DevOps Culture transformation in Modern Software Delivery
 
Mobile and agile the floating writer's survival kit
Mobile and agile   the floating writer's survival kitMobile and agile   the floating writer's survival kit
Mobile and agile the floating writer's survival kit
 

Andere mochten auch

Adapting to Agile Development for Software Documentation
Adapting to Agile Development for Software DocumentationAdapting to Agile Development for Software Documentation
Adapting to Agile Development for Software DocumentationZohra Iqbal Mutabanna
 
Being Agile With Documentation
Being Agile With DocumentationBeing Agile With Documentation
Being Agile With DocumentationSusan Patch
 
6th Sense Project by Pranav Mistry
6th Sense Project by Pranav Mistry6th Sense Project by Pranav Mistry
6th Sense Project by Pranav Mistryrrrattlingrajeev
 
Blue Jacking
Blue JackingBlue Jacking
Blue Jackingvihangshah12
 
6th sense technology
6th sense technology6th sense technology
6th sense technologyRohit Gupta
 
Light Fidelity ( Li-Fi ) Seminar Report
Light Fidelity ( Li-Fi ) Seminar ReportLight Fidelity ( Li-Fi ) Seminar Report
Light Fidelity ( Li-Fi ) Seminar ReportShamil Niju
 
6th sense technology
6th sense technology6th sense technology
6th sense technologyStudent
 
Brain gate system document
Brain gate system documentBrain gate system document
Brain gate system documentSridhar Goud
 
A seminar report on Raspberry Pi
A seminar report on Raspberry PiA seminar report on Raspberry Pi
A seminar report on Raspberry Pinipunmaster
 
Raspberry pi
Raspberry pi Raspberry pi
Raspberry pi Anija Nair
 
Computer technology power point
Computer technology power pointComputer technology power point
Computer technology power pointoacore2
 

Andere mochten auch (16)

Adapting to Agile Development for Software Documentation
Adapting to Agile Development for Software DocumentationAdapting to Agile Development for Software Documentation
Adapting to Agile Development for Software Documentation
 
Li fi doc
Li fi docLi fi doc
Li fi doc
 
Being Agile With Documentation
Being Agile With DocumentationBeing Agile With Documentation
Being Agile With Documentation
 
6th Sense Project by Pranav Mistry
6th Sense Project by Pranav Mistry6th Sense Project by Pranav Mistry
6th Sense Project by Pranav Mistry
 
Blue Jacking
Blue JackingBlue Jacking
Blue Jacking
 
6th sense technology
6th sense technology6th sense technology
6th sense technology
 
Light Fidelity ( Li-Fi ) Seminar Report
Light Fidelity ( Li-Fi ) Seminar ReportLight Fidelity ( Li-Fi ) Seminar Report
Light Fidelity ( Li-Fi ) Seminar Report
 
6th sense technology
6th sense technology6th sense technology
6th sense technology
 
Blue brain doc
Blue brain docBlue brain doc
Blue brain doc
 
Brain gate system document
Brain gate system documentBrain gate system document
Brain gate system document
 
A seminar report on Raspberry Pi
A seminar report on Raspberry PiA seminar report on Raspberry Pi
A seminar report on Raspberry Pi
 
5 pen pc technology
5 pen pc technology5 pen pc technology
5 pen pc technology
 
artificial eye
artificial eyeartificial eye
artificial eye
 
Raspberry pi
Raspberry pi Raspberry pi
Raspberry pi
 
Brain gate
Brain gateBrain gate
Brain gate
 
Computer technology power point
Computer technology power pointComputer technology power point
Computer technology power point
 

Ähnlich wie Documentation for Program Comprehension in Agile Software Development

Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonTharindu Weerasinghe
 
Software Engineering - Lecture 01
Software Engineering - Lecture 01Software Engineering - Lecture 01
Software Engineering - Lecture 01Asifuzzaman Hridoy
 
Chen's second test slides again
Chen's second test slides againChen's second test slides again
Chen's second test slides againHima Challa
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chentechweb08
 
Chen's second test slides
Chen's second test slidesChen's second test slides
Chen's second test slidesHima Challa
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chentechweb08
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chentechweb08
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBrandenTimm1
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdfShivareddyGangam
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resourcesAnwar Sadat
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSibel Kuzgun AKIN
 
Software Specifications with details exp
Software Specifications with details expSoftware Specifications with details exp
Software Specifications with details expAkhileshPansare
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxTangZhiSiang
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfyedej15330
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptxpriyaaresearch
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVYamunaP6
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering OverviewPrachi Sasankar
 
Online Attendance Management System
Online Attendance Management SystemOnline Attendance Management System
Online Attendance Management SystemRIDDHICHOUHAN2
 

Ähnlich wie Documentation for Program Comprehension in Agile Software Development (20)

Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
 
Software Engineering - Lecture 01
Software Engineering - Lecture 01Software Engineering - Lecture 01
Software Engineering - Lecture 01
 
Chen's second test slides again
Chen's second test slides againChen's second test slides again
Chen's second test slides again
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
 
Chen's second test slides
Chen's second test slidesChen's second test slides
Chen's second test slides
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
 
A simple test paper from Chen
A simple test paper from ChenA simple test paper from Chen
A simple test paper from Chen
 
Backstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptxBackstage at CNCF Madison.pptx
Backstage at CNCF Madison.pptx
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdf
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resources
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software Specifications with details exp
Software Specifications with details expSoftware Specifications with details exp
Software Specifications with details exp
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptx
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
SoftwareEngineering.pptx
SoftwareEngineering.pptxSoftwareEngineering.pptx
SoftwareEngineering.pptx
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IV
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
Online Attendance Management System
Online Attendance Management SystemOnline Attendance Management System
Online Attendance Management System
 

Mehr von Fabian Kiss

#noprojects (digest version)
#noprojects (digest version)#noprojects (digest version)
#noprojects (digest version)Fabian Kiss
 
#noprojects (full version)
#noprojects (full version)#noprojects (full version)
#noprojects (full version)Fabian Kiss
 
Relatives SchÀtzen - SwissICT Agile Breakfast Bern
Relatives SchÀtzen - SwissICT Agile Breakfast BernRelatives SchÀtzen - SwissICT Agile Breakfast Bern
Relatives SchÀtzen - SwissICT Agile Breakfast BernFabian Kiss
 
Collocation in Distributed Scrum Teams - Lessons Learned
Collocation in Distributed Scrum Teams - Lessons LearnedCollocation in Distributed Scrum Teams - Lessons Learned
Collocation in Distributed Scrum Teams - Lessons LearnedFabian Kiss
 
Web Acceptance Testing with Behat
Web Acceptance Testing with BehatWeb Acceptance Testing with Behat
Web Acceptance Testing with BehatFabian Kiss
 
The concept of Behavior-Driven Development
The concept of Behavior-Driven DevelopmentThe concept of Behavior-Driven Development
The concept of Behavior-Driven DevelopmentFabian Kiss
 

Mehr von Fabian Kiss (6)

#noprojects (digest version)
#noprojects (digest version)#noprojects (digest version)
#noprojects (digest version)
 
#noprojects (full version)
#noprojects (full version)#noprojects (full version)
#noprojects (full version)
 
Relatives SchÀtzen - SwissICT Agile Breakfast Bern
Relatives SchÀtzen - SwissICT Agile Breakfast BernRelatives SchÀtzen - SwissICT Agile Breakfast Bern
Relatives SchÀtzen - SwissICT Agile Breakfast Bern
 
Collocation in Distributed Scrum Teams - Lessons Learned
Collocation in Distributed Scrum Teams - Lessons LearnedCollocation in Distributed Scrum Teams - Lessons Learned
Collocation in Distributed Scrum Teams - Lessons Learned
 
Web Acceptance Testing with Behat
Web Acceptance Testing with BehatWeb Acceptance Testing with Behat
Web Acceptance Testing with Behat
 
The concept of Behavior-Driven Development
The concept of Behavior-Driven DevelopmentThe concept of Behavior-Driven Development
The concept of Behavior-Driven Development
 

KĂŒrzlich hochgeladen

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

KĂŒrzlich hochgeladen (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Documentation for Program Comprehension in Agile Software Development

  • 1. Documentation for Program Comprehension in Agile Software Development Fabian Kiss Scrum User Group Lake Constance Sep 2011
  • 2. Program Comprehension To understand a completed computer program (source code) What has been implemented? How?
  • 3. Agile Working software over comprehensive documentation → code = documention
  • 4. Why supporting Program Comprehension by documentation? Agile supports Program Comprehension Striving for high-quality source code (Clean Code, Refactoring) ExempliïŹcation of the program’s ”use” through Unit Tests
  • 5. Why supporting Program Comprehension by documentation? Agile supports Program Comprehension Striving for high-quality source code (Clean Code, Refactoring) ExempliïŹcation of the program’s ”use” through Unit Tests
  • 6. Why supporting Program Comprehension by documentation? Agile supports Program Comprehension Striving for high-quality source code (Clean Code, Refactoring) ExempliïŹcation of the program’s ”use” through Unit Tests
  • 7. Why supporting Program Comprehension by documentation? Agile impedes Program Comprehension Continuous refactoring Experienced team for initial development, less experienced team for maintenance Unrefactorable obfuscating code Face-to-face communication is preferred: What if nobody (anymore) knows a certain information?
  • 8. Why supporting Program Comprehension by documentation? Agile impedes Program Comprehension Continuous refactoring Experienced team for initial development, less experienced team for maintenance Unrefactorable obfuscating code Face-to-face communication is preferred: What if nobody (anymore) knows a certain information?
  • 9. Why supporting Program Comprehension by documentation? Agile impedes Program Comprehension Continuous refactoring Experienced team for initial development, less experienced team for maintenance Unrefactorable obfuscating code Face-to-face communication is preferred: What if nobody (anymore) knows a certain information?
  • 10. Why supporting Program Comprehension by documentation? Agile impedes Program Comprehension Continuous refactoring Experienced team for initial development, less experienced team for maintenance Unrefactorable obfuscating code Face-to-face communication is preferred: What if nobody (anymore) knows a certain information?
  • 11. Why supporting Program Comprehension by documentation? Agile impedes Program Comprehension Continuous refactoring Experienced team for initial development, less experienced team for maintenance Unrefactorable obfuscating code Face-to-face communication is preferred: What if nobody (anymore) knows a certain information?
  • 12. Goal Documenting particularly for the support of Program Comprehension without impeding agility → requirements for that documentation...
  • 13. Low-level context Documentation has to be attached to the software in development at a low-level context (source code) Rationale Program Comprehension is a matter of programming Meeting ”the code is the documentation” Agile itself ”lives” at a low-level context (agile practices)
  • 14. Low-level context Documentation has to be attached to the software in development at a low-level context (source code) Rationale Program Comprehension is a matter of programming Meeting ”the code is the documentation” Agile itself ”lives” at a low-level context (agile practices)
  • 15. Low-level context Documentation has to be attached to the software in development at a low-level context (source code) Rationale Program Comprehension is a matter of programming Meeting ”the code is the documentation” Agile itself ”lives” at a low-level context (agile practices)
  • 16. Low-level context Documentation has to be attached to the software in development at a low-level context (source code) Rationale Program Comprehension is a matter of programming Meeting ”the code is the documentation” Agile itself ”lives” at a low-level context (agile practices)
  • 17. High-level beneïŹt From the low-level documentation a higher-level documentation (artifact) has to be extracted such that it adds directly a beneïŹt for other involved stakeholders: 1. Progress of software development is made more transparent 2. Improved quality of developed software product / additional value
  • 18. High-level beneïŹt From the low-level documentation a higher-level documentation (artifact) has to be extracted such that it adds directly a beneïŹt for other involved stakeholders: 1. Progress of software development is made more transparent 2. Improved quality of developed software product / additional value
  • 19. High-level beneïŹt From the low-level documentation a higher-level documentation (artifact) has to be extracted such that it adds directly a beneïŹt for other involved stakeholders: 1. Progress of software development is made more transparent 2. Improved quality of developed software product / additional value
  • 20. High-level beneïŹt Rationale 1st type: agile principle ”working software is the primary measure of progress” 2nd type: agile principle ”continuous attention to technical excellence and good design enhances agility” Such a direct beneïŹt – obtained by the low-level documentation – helps a developer to justify the eïŹ€ort for (continually) documenting at a low level
  • 21. High-level beneïŹt Rationale 1st type: agile principle ”working software is the primary measure of progress” 2nd type: agile principle ”continuous attention to technical excellence and good design enhances agility” Such a direct beneïŹt – obtained by the low-level documentation – helps a developer to justify the eïŹ€ort for (continually) documenting at a low level
  • 22. High-level beneïŹt Rationale 1st type: agile principle ”working software is the primary measure of progress” 2nd type: agile principle ”continuous attention to technical excellence and good design enhances agility” Such a direct beneïŹt – obtained by the low-level documentation – helps a developer to justify the eïŹ€ort for (continually) documenting at a low level
  • 23. No separate artifact A documentation for supporting Program Comprehension must not be explicitly produced, as it is not explicitly requested (by the customer) Rationale Agile principle: ”simplicity – the art of maximizing the amount of work not done – is essential” Overdoing low-level documentation in favor of the subsequently extracted high-level documentation artifact is not necessary
  • 24. No separate artifact A documentation for supporting Program Comprehension must not be explicitly produced, as it is not explicitly requested (by the customer) Rationale Agile principle: ”simplicity – the art of maximizing the amount of work not done – is essential” Overdoing low-level documentation in favor of the subsequently extracted high-level documentation artifact is not necessary
  • 25. No separate artifact A documentation for supporting Program Comprehension must not be explicitly produced, as it is not explicitly requested (by the customer) Rationale Agile principle: ”simplicity – the art of maximizing the amount of work not done – is essential” Overdoing low-level documentation in favor of the subsequently extracted high-level documentation artifact is not necessary
  • 26. Primary purpose A documentation for supporting Program Comprehension has to serve primarily that purpose Rationale A speciïŹc purpose is needed as a starting point, because ”documentation” is too broad Alternatively presuming particular documentation artifacts from software development process violates generality
  • 27. Primary purpose A documentation for supporting Program Comprehension has to serve primarily that purpose Rationale A speciïŹc purpose is needed as a starting point, because ”documentation” is too broad Alternatively presuming particular documentation artifacts from software development process violates generality
  • 28. Primary purpose A documentation for supporting Program Comprehension has to serve primarily that purpose Rationale A speciïŹc purpose is needed as a starting point, because ”documentation” is too broad Alternatively presuming particular documentation artifacts from software development process violates generality
  • 29. How a concrete solution could look like? An exemplary documentation technique meeting all the requirements: Code documentation based on Design Decision Rationales http://www.infoq.com/articles/decision-rationales-program-comprehension