SlideShare a Scribd company logo
Software Architecture Lab.
To document or not to document?
An exploratory study on developers'
motivation to document code
Y U L I A S H M E R L I N , I R I T H A D A R
I N F O R M A T I O N S Y S T E M S D E P A R T M E N T , U N I V E R S I T Y O F
H A I F A , I S R A E L
D O R O N K L I G E R
E C O N O M I C S D E P A R T M E N T , U N I V E R S I T Y O F H A I F A , I S R A E L
H A Y I M M A K A B E E
P O N T I S , I S R A E L
Software Architecture Lab. 2
Documentation debt
 Technical debt
 The situation in a project when developers accept
compromises in one dimension of a system in order to
meet urgent demands in other dimensions (Clear, 2003 )
 Includes code-related and non-code related elements
 Documentation debt
 A component of technical debt (Tom, 2013)
 The situation in which software products
lack the necessary internal documentation.
Software Architecture Lab. 3
The importance of documentation
 Developers are often aware of the importance of
documentation (Tenny, 1988)
However -
 Code documentation is often overlooked in practice
(Fluri, 2007)
Software Architecture Lab. 4
Reasons for the lack of documentation
 External – stemming from the work environment
 Example: strict deadlines urge developers to focus on
executable code, often leaving the documentation behind.
 Internal – inherent in the developers themselves
 Example: documenting is not perceived a creative activity 
developers prefer solving algorithmic problems over writing
documentation (Clear, 2003).
Software Architecture Lab. 5
Related works
 Software developers' motivation has been researched.
For example:
 The job characteristics model (Couger et al., 1980)
 The model of task design (Gambill et al., 2000).
 These models examine the motivation for the software
development profession as a whole
 Motivation model for code documentation?
Software Architecture Lab. 6
Research goal and question
 We aim to explore and better understand
developers' motivation for code
documenting.
 Research question:
What are the motivating and the hindering
aspects that influence developers’ code
documenting behavior?
Software Architecture Lab. 7
Research settings
 Data collection and analysis are performed
using qualitative – and subsequently
quantitative – research methods.
 The research consists of three stages:
1. Five in-depth interviews
2. Distribution of pilot questionnaire among ten
additional participants.
3. Large-scaled distribution of refined
questionnaire
Software Architecture Lab. 8
Findings
Hindering
vs.
Motivating
aspects of documentation
Software Architecture Lab. 9
Categories of hindering aspects
of documentation
Documentation is a…
 tedious task
“…to explain what each parameter does.”
 difficult task
 “Sometimes I do not know how to explain the change.”
 interruption of coding
 “Documenting breaks the continuity of coding.”
 time consuming
 "When I have a tight deadline, documenting is left behind."
Software Architecture Lab. 10
Categories of motivating aspects
of documentation
Documentation promotes…
 code comprehensibility
 “Documentation makes the code more readable and easier to
understand later on, for me and for other people that look at the
code.”
 order
 “It helps to keep things in order.”
 overall code quality
 "Good documentation shows that your work
was done perfectly."
Software Architecture Lab. 11
Additional findings
 No formal company policy
 All participants reported that their company does not have a
formal policy regarding documentation
 Being forced to document by company policy
would not be an effective solution
 "Most of the developers are creative people and do not like
to be told how to do their job.”
 These results further emphasize the need to focus on
internal motivation of developers in order to
encourage them to document
Software Architecture Lab. 12
Conclusions
 Developers' reluctance to document is related
to their negative perception of the task of
documenting.
 Documenting is perceived as tedious, difficult, time
consuming and distracting from the main task of
coding.
 Most of the developers could also find
motivating aspects.
 Documentation increases quality and
understandability of code.
Software Architecture Lab. 13
The vision:
A conceptual solution
 In order to increase developers' motivation
to document, a proposed solution for
encouraging documentation should:
 emphasize the motivating aspects
 mitigate the hindering aspects
Software Architecture Lab. 14
The next step
 Distribute a quantitative questionnaire for
further refinement, validation and
generalization of our findings.
Software Architecture Lab. 15
Brief description of the questionnaire
 Practices vs. beliefs
 Company and peer feedback
 State of mind during coding vs. documenting
 Background questions
Software Architecture Lab. 16
Example question 1:
 When do you think is the preferable time to document:
 before developing a segment of code
 after developing a method
 after developing a class
 at the end of the workday
 rarely or never
 other________________
 When do you usually document:
 before developing a segment of code
 after developing a method
 after developing a class
 at the end of the workday
 rarely or never
 other________________
Software Architecture Lab. 17
Example question 2:
Do you normally receive positive feedback regarding documentation
from your peers or managers?
(You may choose more than one answer).
 Normally I do not receive positive feedback on my documentation
 Normally people say my documentation is good.
 Normally people say my documentation is sufficient.
 Normally people say my documentation helps them.
Software Architecture Lab. 18
Example question 3:
The following statements refer to the way in which you have experienced code
documentation work during the last two weeks.
Please indicate how often you experienced the state of mind described in each of
the statements. (1 = never, 2 = almost never, 3 = sometimes, 4 = regularly, 5 =
often, 6 = very often, 7 = always).
1. When I am documenting, I think about nothing else
2. I get carried away by my documentation tasks
3. When I am documenting, I forget everything else around me
4. I am totally immersed in my documentation tasks
5. My documentation tasks give me a good feeling
6. I do my documentation tasks with a lot of enjoyment
7. I feel happy during documentation
8. I feel cheerful when I am documenting
9. I would still do documentation tasks, even if I received less pay
10. I find that I also want to document in my free time
11. I document because I enjoy it
12. When I am working on documentation tasks, I am doing it for myself
13. I get my motivation from the documentation challenge itself, and not from the monetary reward for it
Software Architecture Lab. 19
The next steps
 Distribute a quantitative questionnaire for
further refinement, validation and
generalization of our findings.
 Designing a solution based on these findings
for increasing developers' motivation to
document their code.
Software Architecture Lab. 20
Thank you for your attention!

More Related Content

What's hot

Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
Leyla Bonilla
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance NightmaresBig Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
Vinit Kumar Singh
 
Difference between traditional and agile software development
Difference between traditional and agile software developmentDifference between traditional and agile software development
Difference between traditional and agile software development
DeepaThirumurugan
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
Hayim Makabee
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Mr SMAK
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive Systems
Tom Mueck
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
Remus Langu
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st CenturyHenry Jacob
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meetingSergii Shmarkatiuk
 
Large Scale Software Project
Large Scale Software ProjectLarge Scale Software Project
Large Scale Software Project
Return on Intelligence
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
guest1c30ed5
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect Does
Eberhard Wolff
 
Agile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical StudyAgile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical Study
Asanka Dilruk
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
Fadi Stephan
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringAndy Maleh
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile EngineeringJohn Lewis
 
Unit 1 sepm software myths
Unit 1 sepm software mythsUnit 1 sepm software myths
Unit 1 sepm software myths
KanchanPatil34
 
SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...
SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...
SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...
South Tyrol Free Software Conference
 

What's hot (20)

Introduction To Software Engineering
Introduction To Software EngineeringIntroduction To Software Engineering
Introduction To Software Engineering
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance NightmaresBig Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
Difference between traditional and agile software development
Difference between traditional and agile software developmentDifference between traditional and agile software development
Difference between traditional and agile software development
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
 
Resource Adaptive Systems
Resource Adaptive SystemsResource Adaptive Systems
Resource Adaptive Systems
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meeting
 
Large Scale Software Project
Large Scale Software ProjectLarge Scale Software Project
Large Scale Software Project
 
Xp Slideshow
Xp SlideshowXp Slideshow
Xp Slideshow
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect Does
 
Agile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical StudyAgile Requirements Engineering Practices: An Empirical Study
Agile Requirements Engineering Practices: An Empirical Study
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software Engineering
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
 
Unit 1 sepm software myths
Unit 1 sepm software mythsUnit 1 sepm software myths
Unit 1 sepm software myths
 
SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...
SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...
SFScon19 - Riccardo Felluga Andrea Janes - Personas-Driven Approach to Test C...
 

Similar to To document or not to document? An exploratory study on developers' motivation to document code

Agile presentation
Agile presentationAgile presentation
Agile presentation
BrendaNyokabi
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
How to become a great developer
How to become a great developerHow to become a great developer
How to become a great developer
Netcetera
 
Professional project writing
Professional project writingProfessional project writing
Professional project writingjkmaster
 
Software engineering
Software engineeringSoftware engineering
Software engineering
sweetysweety8
 
Software Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessarySoftware Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessary
Yazid Hamdi
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
HopeTutors1
 
Reducing Time Spent On Requirements
Reducing Time Spent On RequirementsReducing Time Spent On Requirements
Reducing Time Spent On Requirements
Byron Workman
 
Tdd 왜 배우기 어려운가
Tdd 왜 배우기 어려운가Tdd 왜 배우기 어려운가
Tdd 왜 배우기 어려운가
Jaehoon Oh
 
How to become a software developer
How to become a software developerHow to become a software developer
How to become a software developer
Eyob Lube
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
David O'Dowd
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
Alexandru Bolboaca
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
Lalit Kale
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
Saqib Raza
 
AgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptxAgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptx
RajaNagendraKumar1
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
Bilal Shah
 

Similar to To document or not to document? An exploratory study on developers' motivation to document code (20)

Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
How to become a great developer
How to become a great developerHow to become a great developer
How to become a great developer
 
Professional project writing
Professional project writingProfessional project writing
Professional project writing
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessarySoftware Engineering: why it is more than coding, and why it is necessary
Software Engineering: why it is more than coding, and why it is necessary
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
Reducing Time Spent On Requirements
Reducing Time Spent On RequirementsReducing Time Spent On Requirements
Reducing Time Spent On Requirements
 
Tdd 왜 배우기 어려운가
Tdd 왜 배우기 어려운가Tdd 왜 배우기 어려운가
Tdd 왜 배우기 어려운가
 
Agile testing
Agile testingAgile testing
Agile testing
 
How to become a software developer
How to become a software developerHow to become a software developer
How to become a software developer
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
 
Faq
Faq  Faq
Faq
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
AgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptxAgileNCR 2019 _ The Soft Side of Software Development.pptx
AgileNCR 2019 _ The Soft Side of Software Development.pptx
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 

More from Hayim Makabee

Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your Reputation
Hayim Makabee
 
Applications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT WebinarApplications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT Webinar
Hayim Makabee
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine Learning
Hayim Makabee
 
Blue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use CaseBlue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use Case
Hayim Makabee
 
Managing your Reputation Gvahim Webinar
Managing your Reputation Gvahim WebinarManaging your Reputation Gvahim Webinar
Managing your Reputation Gvahim Webinar
Hayim Makabee
 
Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)
Hayim Makabee
 
Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)
Hayim Makabee
 
Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your Reputation
Hayim Makabee
 
The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)
Hayim Makabee
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine Learning
Hayim Makabee
 
Antifragile Software Design
Antifragile Software DesignAntifragile Software Design
Antifragile Software Design
Hayim Makabee
 
The SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design PatternsThe SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design Patterns
Hayim Makabee
 
Aliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in IsraelAliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in Israel
Hayim Makabee
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
Hayim Makabee
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
Hayim Makabee
 
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Hayim Makabee
 
An Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of ConcernsAn Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of ConcernsHayim Makabee
 
Hierarchical Composable Optimization of Web Pages
Hierarchical Composable Optimization of Web PagesHierarchical Composable Optimization of Web Pages
Hierarchical Composable Optimization of Web PagesHayim Makabee
 

More from Hayim Makabee (18)

Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your Reputation
 
Applications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT WebinarApplications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT Webinar
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine Learning
 
Blue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use CaseBlue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use Case
 
Managing your Reputation Gvahim Webinar
Managing your Reputation Gvahim WebinarManaging your Reputation Gvahim Webinar
Managing your Reputation Gvahim Webinar
 
Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)Explainable Machine Learning (Explainable ML)
Explainable Machine Learning (Explainable ML)
 
Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)Automated Machine Learning (Auto ML)
Automated Machine Learning (Auto ML)
 
Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your Reputation
 
The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)The Story of a Young Oleh (Immigrant in Israel)
The Story of a Young Oleh (Immigrant in Israel)
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine Learning
 
Antifragile Software Design
Antifragile Software DesignAntifragile Software Design
Antifragile Software Design
 
The SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design PatternsThe SOLID Principles Illustrated by Design Patterns
The SOLID Principles Illustrated by Design Patterns
 
Aliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in IsraelAliyah: Looking for a hi-tech job in Israel
Aliyah: Looking for a hi-tech job in Israel
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
 
An Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of ConcernsAn Event-Driven Approach for the Separation of Concerns
An Event-Driven Approach for the Separation of Concerns
 
Hierarchical Composable Optimization of Web Pages
Hierarchical Composable Optimization of Web PagesHierarchical Composable Optimization of Web Pages
Hierarchical Composable Optimization of Web Pages
 

Recently uploaded

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 

Recently uploaded (20)

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 

To document or not to document? An exploratory study on developers' motivation to document code

  • 1. Software Architecture Lab. To document or not to document? An exploratory study on developers' motivation to document code Y U L I A S H M E R L I N , I R I T H A D A R I N F O R M A T I O N S Y S T E M S D E P A R T M E N T , U N I V E R S I T Y O F H A I F A , I S R A E L D O R O N K L I G E R E C O N O M I C S D E P A R T M E N T , U N I V E R S I T Y O F H A I F A , I S R A E L H A Y I M M A K A B E E P O N T I S , I S R A E L
  • 2. Software Architecture Lab. 2 Documentation debt  Technical debt  The situation in a project when developers accept compromises in one dimension of a system in order to meet urgent demands in other dimensions (Clear, 2003 )  Includes code-related and non-code related elements  Documentation debt  A component of technical debt (Tom, 2013)  The situation in which software products lack the necessary internal documentation.
  • 3. Software Architecture Lab. 3 The importance of documentation  Developers are often aware of the importance of documentation (Tenny, 1988) However -  Code documentation is often overlooked in practice (Fluri, 2007)
  • 4. Software Architecture Lab. 4 Reasons for the lack of documentation  External – stemming from the work environment  Example: strict deadlines urge developers to focus on executable code, often leaving the documentation behind.  Internal – inherent in the developers themselves  Example: documenting is not perceived a creative activity  developers prefer solving algorithmic problems over writing documentation (Clear, 2003).
  • 5. Software Architecture Lab. 5 Related works  Software developers' motivation has been researched. For example:  The job characteristics model (Couger et al., 1980)  The model of task design (Gambill et al., 2000).  These models examine the motivation for the software development profession as a whole  Motivation model for code documentation?
  • 6. Software Architecture Lab. 6 Research goal and question  We aim to explore and better understand developers' motivation for code documenting.  Research question: What are the motivating and the hindering aspects that influence developers’ code documenting behavior?
  • 7. Software Architecture Lab. 7 Research settings  Data collection and analysis are performed using qualitative – and subsequently quantitative – research methods.  The research consists of three stages: 1. Five in-depth interviews 2. Distribution of pilot questionnaire among ten additional participants. 3. Large-scaled distribution of refined questionnaire
  • 8. Software Architecture Lab. 8 Findings Hindering vs. Motivating aspects of documentation
  • 9. Software Architecture Lab. 9 Categories of hindering aspects of documentation Documentation is a…  tedious task “…to explain what each parameter does.”  difficult task  “Sometimes I do not know how to explain the change.”  interruption of coding  “Documenting breaks the continuity of coding.”  time consuming  "When I have a tight deadline, documenting is left behind."
  • 10. Software Architecture Lab. 10 Categories of motivating aspects of documentation Documentation promotes…  code comprehensibility  “Documentation makes the code more readable and easier to understand later on, for me and for other people that look at the code.”  order  “It helps to keep things in order.”  overall code quality  "Good documentation shows that your work was done perfectly."
  • 11. Software Architecture Lab. 11 Additional findings  No formal company policy  All participants reported that their company does not have a formal policy regarding documentation  Being forced to document by company policy would not be an effective solution  "Most of the developers are creative people and do not like to be told how to do their job.”  These results further emphasize the need to focus on internal motivation of developers in order to encourage them to document
  • 12. Software Architecture Lab. 12 Conclusions  Developers' reluctance to document is related to their negative perception of the task of documenting.  Documenting is perceived as tedious, difficult, time consuming and distracting from the main task of coding.  Most of the developers could also find motivating aspects.  Documentation increases quality and understandability of code.
  • 13. Software Architecture Lab. 13 The vision: A conceptual solution  In order to increase developers' motivation to document, a proposed solution for encouraging documentation should:  emphasize the motivating aspects  mitigate the hindering aspects
  • 14. Software Architecture Lab. 14 The next step  Distribute a quantitative questionnaire for further refinement, validation and generalization of our findings.
  • 15. Software Architecture Lab. 15 Brief description of the questionnaire  Practices vs. beliefs  Company and peer feedback  State of mind during coding vs. documenting  Background questions
  • 16. Software Architecture Lab. 16 Example question 1:  When do you think is the preferable time to document:  before developing a segment of code  after developing a method  after developing a class  at the end of the workday  rarely or never  other________________  When do you usually document:  before developing a segment of code  after developing a method  after developing a class  at the end of the workday  rarely or never  other________________
  • 17. Software Architecture Lab. 17 Example question 2: Do you normally receive positive feedback regarding documentation from your peers or managers? (You may choose more than one answer).  Normally I do not receive positive feedback on my documentation  Normally people say my documentation is good.  Normally people say my documentation is sufficient.  Normally people say my documentation helps them.
  • 18. Software Architecture Lab. 18 Example question 3: The following statements refer to the way in which you have experienced code documentation work during the last two weeks. Please indicate how often you experienced the state of mind described in each of the statements. (1 = never, 2 = almost never, 3 = sometimes, 4 = regularly, 5 = often, 6 = very often, 7 = always). 1. When I am documenting, I think about nothing else 2. I get carried away by my documentation tasks 3. When I am documenting, I forget everything else around me 4. I am totally immersed in my documentation tasks 5. My documentation tasks give me a good feeling 6. I do my documentation tasks with a lot of enjoyment 7. I feel happy during documentation 8. I feel cheerful when I am documenting 9. I would still do documentation tasks, even if I received less pay 10. I find that I also want to document in my free time 11. I document because I enjoy it 12. When I am working on documentation tasks, I am doing it for myself 13. I get my motivation from the documentation challenge itself, and not from the monetary reward for it
  • 19. Software Architecture Lab. 19 The next steps  Distribute a quantitative questionnaire for further refinement, validation and generalization of our findings.  Designing a solution based on these findings for increasing developers' motivation to document their code.
  • 20. Software Architecture Lab. 20 Thank you for your attention!