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
 
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
 
Chen's second test slides again
Chen's second test slides againChen's second test slides again
Chen's second test slides againHima Challa
 
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
 
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
 
Chen's second test slides again
Chen's second test slides againChen's second test slides again
Chen's second test slides again
 
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

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 

Dernier (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 

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