SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

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

En vedette

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
 

En vedette (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
 

Similaire à Program Comprehension Doc for Agile Software Dev

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
 

Similaire à Program Comprehension Doc for Agile Software Dev (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
 

Plus 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
 

Plus 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
 

Dernier

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Program Comprehension Doc for Agile Software Dev

  • 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