SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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)
      Exemplification 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)
      Exemplification 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)
      Exemplification 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 benefit



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


    1. Progress of software development is made more
       transparent
    2. Improved quality of developed software product /
       additional value
High-level benefit



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


    1. Progress of software development is made more
       transparent
    2. Improved quality of developed software product /
       additional value
High-level benefit



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


    1. Progress of software development is made more
       transparent
    2. Improved quality of developed software product /
       additional value
High-level benefit



   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 benefit – obtained by the low-level
       documentation – helps a developer to justify the effort for
       (continually) documenting at a low level
High-level benefit



   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 benefit – obtained by the low-level
       documentation – helps a developer to justify the effort for
       (continually) documenting at a low level
High-level benefit



   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 benefit – obtained by the low-level
       documentation – helps a developer to justify the effort 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 specific 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 specific 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 specific 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 
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
 
Computer technology power point
Computer technology power pointComputer technology power point
Computer technology power pointoacore2
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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 Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Último (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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 Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.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) Exemplification 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) Exemplification 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) Exemplification 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 benefit From the low-level documentation a higher-level documentation (artifact) has to be extracted such that it adds directly a benefit 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 benefit From the low-level documentation a higher-level documentation (artifact) has to be extracted such that it adds directly a benefit 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 benefit From the low-level documentation a higher-level documentation (artifact) has to be extracted such that it adds directly a benefit 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 benefit 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 benefit – obtained by the low-level documentation – helps a developer to justify the effort for (continually) documenting at a low level
  • 21. High-level benefit 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 benefit – obtained by the low-level documentation – helps a developer to justify the effort for (continually) documenting at a low level
  • 22. High-level benefit 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 benefit – obtained by the low-level documentation – helps a developer to justify the effort 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 specific 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 specific 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 specific 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