SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
L. Iliadis, M. Papazoglou, and K. Pohl (Eds.): CAiSE 2014 Workshops, LNBIP 178, pp. 207–212, 2014.
© Springer International Publishing Switzerland 2014
Reducing Technical Debt: Using Persuasive Technology
for Encouraging Software Developers to Document Code
(Position Paper)
Yulia Shmerlin1
, Doron Kliger2
, and Hayim Makabee3
1
Information Systems Department, University of Haifa, Haifa, Israel
2
Economics Department, University of Haifa, Haifa, Israel
3
Yahoo! Research Labs, Haifa, Israel
yshmerlin@is.haifa.ac.il, kliger@econ.haifa.ac.il,
makabee@yahoo-inc.com
Abstract. Technical debt is a metaphor for the gap between the current state of
a software system and its hypothesized ‘ideal’ state. One of the significant and
under-investigated elements of technical debt is documentation debt, which
may occur when code is created without supporting internal documentation,
such as code comments. Studies have shown that outdated or lacking
documentation is a considerable contributor to increased costs of software
systems maintenance. The importance of comments is often overlooked by
software developers, resulting in a notably slower growth rate of comments
compared to the growth rate of code in software projects. This research aims to
explore and better understand developers’ reluctance to document code, and
accordingly to propose efficient ways of using persuasive technology to
encourage programmers to document their code. The results may assist software
practitioners and project managers to control and reduce documentation debt.
Keywords: technical debt, documentation debt, documentation, software
maintenance, persuasive technology, FBM Model.
1 Introduction
Traditionally, the evolution of software development methods and tools has focused
on improving the quality of software systems. The most obvious quality attribute is
correctness: the ability of a software system to satisfy its requirements. Correctness is
a functional quality attribute, since it relates to the functions performed by the system.
However, software systems should also have several desirable non-functional
quality attributes, such as maintainability, extensibility and reusability[3]. These
attributes relate to the way a system has been implemented, i.e., to the complexity of
the relationships among the modules that compose the system, independently of its
correctness. Hence a system is maintainable if it may be easily changed, extensible if
it is easy to add new features and reusable if its modules may be easily adopted in
new applications.
208 Y. Shmerlin, D. Kliger, and H. Makabee
Recently, the metaphor of technical debt has been widely used to describe the gap,
both in functionality and quality, between “the current state of a software system and
a hypothesized ‘ideal’ state, in which the system is optimally successful in a particular
environment” [4]. One form of technical debt is internal documentation debt [20], i.e.,
inappropriate, insufficient or non-existing internal documentation. Low-quality
documentation is known to affect negatively quality attributes such as maintainability
[18][16].
Previous works have identified some of the reasons for poor documentation in
software systems. For example, many developers are under-motivated to document,
since they perceive writing internal documentation as a secondary task, as opposed to
writing the code itself [4]. Moreover, some software development approaches
promote the idea that good code should be self-explanatory [17], and therefore
comments are not always necessary.
Our goal is to address these and other causes for low-quality documentation, and
propose practical solutions that may be adopted to improve this situation. In particular,
we believe that a combination of a persuasive technology approach with advanced tool
support may transform the nature of internal documentation tasks, in such ways that
software developers will choose to adopt them. This paper describes practical
experiments that we plan to conduct in order to examine if and how developers can be
encouraged to improve documentation and thus reduce documentation debt.
2 Problem Background and Description
Technical debt can be seen as a compromise between a project’s different dimensions,
for example, a strict deadline and the number of bugs in the released software product.
“Shipping first time code is like going into debt. A little debt speeds development so
long as it is paid back promptly with a rewrite” [5]. Technical debt is defined as the
gap between the current and the ideal states of a software system [1]. This suggests that
known defects, unimplemented features and outdated documentation are all considered
aspects of debt. Despite the increasing interest in technical debt among both academics
and practitioners, this metaphor still lacks a more rigorous and specific definition. Tom
et al. [20] identified different elements of technical debt, such as code debt,
architecture debt, infrastructure debt, and documentation debt. Devising ways to reduce
the latter is the focus of the current study.
Documentation quality has a direct effect on software maintenance. Software
maintenance usually refers to the activities carried out after the development
completion, and is the most expensive part in the lifecycle of modern software systems
[1]. Maintenance includes a broad spectrum of activities, such as error correction,
enhancements of capabilities, deletion of obsolete capabilities and optimization. In
order to perform these activities effectively, correct and up-to-date technical
documentation is required. Outdated or lacking documentation increases the
maintenance costs [18].
Yet, currently, lack of proper documentation during development and release of
software systems is prevalent [6]. According to Pfleeger [16] 40%- 60% of the
maintenance time is spent on studying the software prior to modification because of
the lack of appropriate documentation. Additional studies have shown that source
Reducing Technical Debt: Using Persuasive Technology 209
code comments are the most important artifact to understand a system to be
maintained [7] and that inline comments can greatly assist in the maintenance work of
software engineers [14]. Programs with appropriate documentation were found to be
considerably more understandable than those without documentation comments [21].
Despite the importance of documentation, there is evidence in the literature that
source code and comments do not evolve in the same rate. Fluri et al. [9] found that
newly added code is rarely commented; not all code is commented equally (e.g., the
frequency of comments for method calls is much lower than for method declarations);
and 97% of comment changes are done in the same revision as the associated source
code change. The code evolves in a significantly higher rate than its comments and,
as software evolves, it is common for comments and source code to be out-of-sync
[13]. In summary, while software engineers may understand the importance of
documentation [7], the code is not documented enough in practice [9], [13].
There may be several explanations for this phenomenon. One of the reasons is that
documenting is not considered a creative activity, and many engineers prefer solving
algorithmic problems instead of writing documentation [4]. Another reason is that
many programmers assume that good code is self-explanatory, justifying the lack of
documentation [17]. Additionally, since practitioners often work under very strict
deadlines, it is easy to leave the documentation behind. Besides, sometimes not
documenting can increase job security[8], because it helps programmers to keep an
advantage over others and, thus, ensures demand for their services .Finally, the reason
may lay in human perception, since software students do not fully understand the
need for proper documentation [2].
Recently, several works investigated the investment of companies using agile
methods in documentation. The agile manifesto states that direct communication is
more valuable than internal documentation [12]. A study of the role of documentation
in agile development teams showed that while over 50% of developers find
documentation important, or even very important, too little documentation is available
in their projects [19].
In conclusion, regardless of the development method used, documentation plays an
important role in software products development. Proper documentation drives a more
efficient and effective software maintenance and evolution, requiring lower cost and
effort. Therefore, it is important to find ways to improve the quantity and quality of
comments. To this end, we must find efficient techniques to encourage developers to
document their code, thus improving the readability and reducing maintenance time
and cost. The objective of this study is to investigate the current state of
documentation, and specifically the reasons for developers’ reluctance to comment
code, and propose a technique to encourage them to document their code, thus
decreasing the costs induced by technical debt.
3 Solution Approach
In order to overcome developers’ reluctance to document code, we plan to apply the
persuasive technology approach. Persuasive technology is an interactive computer
technology, which is designed with the goal of reinforcing, changing or shaping
people’s attitudes or behavior [10]. When a persuasive system is used for
210 Y. Shmerlin, D. Kliger, and H. Makabee
reinforcement purpose, the desired outcome of its use would be to make the users'
current behavior more resistant to change. When using the system for changing
purposes, the expectation is that the users will alter their attitude or behavior due to
the interaction with the system. Finally, when using the system for shaping purposes,
successful outcome would be creating a behavior pattern for a specific situation,
which did not exist prior to using the system [15].
When designing a persuasive system, it is important to take into consideration the
desired influence of the system on its users, since different techniques should be used
depending on the desired outcome [15]. In our context, as discussed in the previous
section, while programmers are often aware of the importance of documentation, this
is not reflected in their behavior.
In order to produce a successful persuasive design, it is important to understand
which factors influence behavior. Fogg [10] introduced the Fogg Behavior Model
(FBM) for analysis and design of persuasive technologies, which provides a systematic
way of studying the factors behind behavior changes. The model implies that behavior
depends on the following three factors: motivation, ability, and triggers, each of which
has several subcomponents. The motivation factor consists of three core motivators,
each of which having two sides: pleasure vs. pain, hope vs. fear and social acceptance
vs. rejection. The ability factor represents the simplicity of performing the targeted
behavior, and its six subcomponents are time, money, physical effort, brain cycles,
social deviance, and non-routine. Finally, the triggers refer to prompts, cues, calls to
action, etc. The purpose of a trigger is to signal to the user that the moment for
performing the behavior has come. An additional concept of the FBM model is the
behavior activation threshold. For a trigger to evoke the desired behavior, a person has
to be above that threshold, in a high enough level of motivation and ability.
It should be noted that most of the people are in moderate levels of ability and
motivation and effective persuasive system should raise motivation, ability, or both,
as well as provide a trigger for the desired behavior. An additional implication of the
FBM model is that there exists a trade-off between motivation and ability of
performing the behavior, so if we influence at least one factor of this equation, the
desired behavior might be triggered [10]. This model has direct implications to our
research, since our aim is to propose a system, which will increase performance in the
code documentation task, as well as provide a proper trigger in an appropriate time for
this behavior to take place.
4 Research Plan and Method
The objectives of our study are to identify the reasons and challenges that impede
developers’ motivation to document code, and to propose a utility for encouraging
documentation and facilitating proper documentation. For this purpose, we will
perform two studies: (1) a think-aloud protocol for examining program maintenance
tasks performance, and (2) an experiment to assess triggers for documentation.
In the first study we plan to conduct individual think-aloud sessions with about 15
students in their last year of IS undergraduate studies. Each subject will perform a
maintenance task, namely, add functionality, to code written and documented by
Reducing Technical Debt: Using Persuasive Technology 211
another student. The purpose is to gain a deeper understanding of the cognitive
process a software programmer faces when maintaining code, and specifically while
trying to understand the existing code. We will observe to what extent the subject
relies on the code documentation during this process, and what are the important
features in code comments that help understand existing code.
The objective of the second study is to check whether the use of an existing
documentation-triggering tool (CheckStyle:1
a plug-in for Eclipse IDE) improves
documentation. The subjects of this experiment will be first year IS student in a Java
course. The students will be divided into three groups: treatment group A will receive
the plug-in to activate a module, which will remind them to add comments to the code
as they develop it. Treatment group B will receive the same treatment as well as a
social motivation – publishing their documentation level status among their peers.
The control group will receive the same plug-in with a different module enabled (not
related to code commenting). Our hypotheses are as follows:
• H0a: Group A’s documentation level will be similar to that of the control group.
• H1a: Group A’s documentation level will be higher than that of the control group.
• H0b: Group B’s documentation level will be similar to that of Group A.
• H1b: Group B’s documentation level will be higher than that of Group A.
The results will be calculated using documentation metrics. In addition, following
the experiment, we plan to collect qualitative data via questionnaires with open-ended
questions, in order to gain a deeper understanding about the triggers and motivators
from the students’ perspectives.
Based on the results obtained in these two studies, and additional external
validation with professionals from industry, we intend to create a utility, using
persuasive technology principles, for encouraging and motivating developers to
document their code with proper and contributing comments. The proposed utility
will be evaluated and validated with professional software developers.
References
[1] Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., Zazworka, N.:
Managing technical debt in software-reliant systems. In: Proceedings of the FSE/SDP
Workshop on Future of Software Reengineering Research, pp. 47–52. ACM (2010)
[2] Burge, J.: Exploiting multiplicity to teach reliability and maintainability in a capstone
project. In: 20th IEEE Conference on Software Engineering Education and Training,
CSEET 2007, pp. 29–36 (2007)
[3] Chung, L., do Prado Leite, J.C.S.: On non-functional requirements in software
engineering. In: Borgida, A.T., Chaudhri, V.K., Giorgini, P., Yu, E.S. (eds.) Mylopoulos
Festschrift. LNCS, vol. 5600, pp. 363–379. Springer, Heidelberg (2009)
[4] Clear, T.: Documentation and agile methods: striking a balance. ACM SIGCSE
Bulletin 35(2), 12–13 (2003)
[5] Cunningham, W.: The WyCash portfolio management system. ACM SIGPLAN OOPS
Messenger 4(2), 29–30 (1992)
1
http://eclipse-cs.sourceforge.net/
212 Y. Shmerlin, D. Kliger, and H. Makabee
[6] Daich, G.T.: Document Diseases and Software Malpractice. CrossTalk (2002)
[7] De Souza, S.C.B., Anquetil, N., de Oliveira, K.M.: A study of the documentation essential
to software maintenance. In: Proceedings of the 23rd Annual Int. Conference on Design
of Communication: Documenting and Designing for Pervasive Information, pp. 68–75.
ACM (2005)
[8] Drevik, S.: How to comment code. Embedded Systems Programming 9, 58–65 (1996)
[9] Fluri, B., Wursch, M., Gall, H.C.: Do code and comments co-evolve? on the relation
between source code and comment changes. In: IEEE 14th Working Conference on
Reverse Engineering, WCRE 2007, pp. 70–79 (2002)
[10] Fogg, B.J.: Persuasive technology: Using computers to change what we think and do.
Morgan Kaufmann Publishers, Elsevier Science (2003)
[11] Fogg, B.J.: A behavior model for persuasive design. In: Proceedings of the 4th ACM Int.
Conference on Persuasive Technology (2009)
[12] Highsmith, J., Fowler, M.: The agile manifesto. Software Development Magazine 9(8),
29–30 (2006)
[13] Jiang, Z.M., Hassan, A.E.: Examining the evolution of code comments in PostgreSQL.
In: Proceedings of the 2006 ACM Int. Workshop on Mining Software Repositories,
pp. 179–180 (2006)
[14] Lethbridge, T.C., Singer, J., Forward, A.: How software engineers use
[15] Oinas-Kukkonen, H., Harjumaa, M.: A systematic framework for designing and
evaluating persuasive systems. In: Oinas-Kukkonen, H., Hasle, P., Harjumaa, M.,
Segerståhl, K., Øhrstrøm, P. (eds.) PERSUASIVE 2008. LNCS, vol. 5033, pp. 164–176.
Springer, Heidelberg (2008)
[16] Pfleeger, S.L.: Software Engineering: Theory and Practice, 2nd edn. Prentice-Hall (2001)
[17] Parnas, D.L.: Software aging. In: Proceedings of the 16th Int. Conference on Software
Engineering, pp. 279–287. IEEE Computer Society Press (1994)
[18] Shull, F.: Perfectionists in a world of finite resources. IEEE Software 28(2), 4–6 (2011)
[19] Stettina, C.J., Heijstek, W.: Necessary and neglected? an empirical study of internal
documentation in agile software development teams. In: Proceedings of the 29th ACM
Int. Conference on Design of Communication, pp. 159–166. ACM (2011)
[20] Tom, E., Aurum, A., Vidgen, R.: An exploration of technical debt. Journal of Systems and
Software, 1498–1516 (2013)
[21] Woodfield, S.N., Dunsmore, H.E., Shen, V.Y.: The effect of modulari-zation and
comments on program comprehension. In: Proceedings of the 5th Int. Conference on
Software Engineering, pp. 215–223. IEEE Press (1981)

Contenu connexe

Tendances

akhanna_recommendation
akhanna_recommendationakhanna_recommendation
akhanna_recommendationAdvitya Khanna
 
Performance Evaluation List
Performance Evaluation ListPerformance Evaluation List
Performance Evaluation ListIevgen Kuzminov
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software EngineeringAbhay Vijay
 
Seng 123 2-engineering-swe-ethics
Seng 123 2-engineering-swe-ethicsSeng 123 2-engineering-swe-ethics
Seng 123 2-engineering-swe-ethicsAtilla Elçi
 
Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2Shimmy88
 
Emerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobileEmerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobileShimmy88
 
2016-07-19 Cover Letter
2016-07-19 Cover Letter2016-07-19 Cover Letter
2016-07-19 Cover LetterRyan Little
 
Raymond_Matel_Software_Engineer
Raymond_Matel_Software_EngineerRaymond_Matel_Software_Engineer
Raymond_Matel_Software_EngineerRaymond Matel
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect DoesEberhard Wolff
 
The five expertise of a software architect
The five expertise of a software architectThe five expertise of a software architect
The five expertise of a software architectLior Bar-On
 
Seng 123 1-concepts
Seng 123 1-conceptsSeng 123 1-concepts
Seng 123 1-conceptsAtilla Elçi
 
Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Marcello Thiry
 

Tendances (20)

akhanna_recommendation
akhanna_recommendationakhanna_recommendation
akhanna_recommendation
 
Performance Evaluation List
Performance Evaluation ListPerformance Evaluation List
Performance Evaluation List
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Chapter1
Chapter1Chapter1
Chapter1
 
Coding and testing in Software Engineering
Coding and testing in Software EngineeringCoding and testing in Software Engineering
Coding and testing in Software Engineering
 
Seng 123 9-iid
Seng 123 9-iidSeng 123 9-iid
Seng 123 9-iid
 
Seng 123 2-engineering-swe-ethics
Seng 123 2-engineering-swe-ethicsSeng 123 2-engineering-swe-ethics
Seng 123 2-engineering-swe-ethics
 
Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2Emerging trends, tools and techniques in mobile2
Emerging trends, tools and techniques in mobile2
 
Emerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobileEmerging trends, tools and techniques in mobile
Emerging trends, tools and techniques in mobile
 
shashank_CV
shashank_CVshashank_CV
shashank_CV
 
RichaGangwar
RichaGangwarRichaGangwar
RichaGangwar
 
2016-07-19 Cover Letter
2016-07-19 Cover Letter2016-07-19 Cover Letter
2016-07-19 Cover Letter
 
Raymond_Matel_Software_Engineer
Raymond_Matel_Software_EngineerRaymond_Matel_Software_Engineer
Raymond_Matel_Software_Engineer
 
01 the big_idea
01 the big_idea01 the big_idea
01 the big_idea
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect Does
 
Seng 123 11-imrq
Seng 123 11-imrqSeng 123 11-imrq
Seng 123 11-imrq
 
Seng 123 3-sdlc
Seng 123 3-sdlcSeng 123 3-sdlc
Seng 123 3-sdlc
 
The five expertise of a software architect
The five expertise of a software architectThe five expertise of a software architect
The five expertise of a software architect
 
Seng 123 1-concepts
Seng 123 1-conceptsSeng 123 1-concepts
Seng 123 1-concepts
 
Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)
 

Similaire à Reducing Technical Debt: Using Persuasive Technology for Encouraging Software Developers to Document Code

How to save on software maintenance costs
How to save on software maintenance costsHow to save on software maintenance costs
How to save on software maintenance costsFrancisJansen
 
Whitepaper Omnext
Whitepaper OmnextWhitepaper Omnext
Whitepaper Omnextmeijerandre
 
STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...
STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...
STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...ijseajournal
 
Appendix AProof of effectiveness of some of the agile methods us.docx
Appendix AProof of effectiveness of some of the agile methods us.docxAppendix AProof of effectiveness of some of the agile methods us.docx
Appendix AProof of effectiveness of some of the agile methods us.docxarmitageclaire49
 
Software Project Documentation - An Essence of Software Development
Software Project Documentation - An Essence of Software DevelopmentSoftware Project Documentation - An Essence of Software Development
Software Project Documentation - An Essence of Software DevelopmentEswar Publications
 
An Agile Software Development Framework
An Agile Software Development FrameworkAn Agile Software Development Framework
An Agile Software Development FrameworkWaqas Tariq
 
Agile Customer Engagement A Longitudinal Qualitative Case Study
Agile Customer Engagement  A Longitudinal Qualitative Case StudyAgile Customer Engagement  A Longitudinal Qualitative Case Study
Agile Customer Engagement A Longitudinal Qualitative Case StudyJackie Taylor
 
Elements of legacy program complexity
Elements of legacy program complexityElements of legacy program complexity
Elements of legacy program complexityeSAT Journals
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
 
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMSAN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMSijseajournal
 
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMSAN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMSijseajournal
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical DebtHayim Makabee
 
1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docxjackiewalcutt
 
A noble methodology for users’ work
A noble methodology for users’ workA noble methodology for users’ work
A noble methodology for users’ workijseajournal
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdfShivareddyGangam
 
Application Modernization and its Impact on Business Transformation.pdf
Application Modernization and its Impact on Business Transformation.pdfApplication Modernization and its Impact on Business Transformation.pdf
Application Modernization and its Impact on Business Transformation.pdfbasilmph
 
Software Evaluation
Software EvaluationSoftware Evaluation
Software EvaluationLori Gilbert
 

Similaire à Reducing Technical Debt: Using Persuasive Technology for Encouraging Software Developers to Document Code (20)

How to save on software maintenance costs
How to save on software maintenance costsHow to save on software maintenance costs
How to save on software maintenance costs
 
Whitepaper Omnext
Whitepaper OmnextWhitepaper Omnext
Whitepaper Omnext
 
STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...
STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...
STRATEGIES TO REDUCE REWORK IN SOFTWARE DEVELOPMENT ON AN ORGANISATION IN MAU...
 
Appendix AProof of effectiveness of some of the agile methods us.docx
Appendix AProof of effectiveness of some of the agile methods us.docxAppendix AProof of effectiveness of some of the agile methods us.docx
Appendix AProof of effectiveness of some of the agile methods us.docx
 
Software Project Documentation - An Essence of Software Development
Software Project Documentation - An Essence of Software DevelopmentSoftware Project Documentation - An Essence of Software Development
Software Project Documentation - An Essence of Software Development
 
An Agile Software Development Framework
An Agile Software Development FrameworkAn Agile Software Development Framework
An Agile Software Development Framework
 
Agile Customer Engagement A Longitudinal Qualitative Case Study
Agile Customer Engagement  A Longitudinal Qualitative Case StudyAgile Customer Engagement  A Longitudinal Qualitative Case Study
Agile Customer Engagement A Longitudinal Qualitative Case Study
 
Elements of legacy program complexity
Elements of legacy program complexityElements of legacy program complexity
Elements of legacy program complexity
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...
 
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMSAN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
 
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMSAN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
AN ITERATIVE HYBRID AGILE METHODOLOGY FOR DEVELOPING ARCHIVING SYSTEMS
 
Reducing Technical Debt
Reducing Technical DebtReducing Technical Debt
Reducing Technical Debt
 
1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx1. Emergence of Software EngineeringIn the software industry, we.docx
1. Emergence of Software EngineeringIn the software industry, we.docx
 
A noble methodology for users’ work
A noble methodology for users’ workA noble methodology for users’ work
A noble methodology for users’ work
 
The Product and Process(1).pdf
The Product and Process(1).pdfThe Product and Process(1).pdf
The Product and Process(1).pdf
 
Application Modernization and its Impact on Business Transformation.pdf
Application Modernization and its Impact on Business Transformation.pdfApplication Modernization and its Impact on Business Transformation.pdf
Application Modernization and its Impact on Business Transformation.pdf
 
Software Evaluation
Software EvaluationSoftware Evaluation
Software Evaluation
 
DEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVE
DEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVEDEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVE
DEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVE
 
DEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVE
DEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVEDEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVE
DEVELOPMENT OF A SOFTWARE MAINTENANCE COST ESTIMATION MODEL: 4 TH GL PERSPECTIVE
 
C0371019027
C0371019027C0371019027
C0371019027
 

Plus de Hayim Makabee

Managing your Reputation
Managing your ReputationManaging your Reputation
Managing your ReputationHayim Makabee
 
Applications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT WebinarApplications of Machine Learning - INDT Webinar
Applications of Machine Learning - INDT WebinarHayim Makabee
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine LearningHayim Makabee
 
Blue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use CaseBlue Ocean Strategy: KashKlik Use Case
Blue Ocean Strategy: KashKlik Use CaseHayim Makabee
 
Managing your Reputation Gvahim Webinar
Managing your Reputation Gvahim WebinarManaging your Reputation Gvahim Webinar
Managing your Reputation Gvahim WebinarHayim 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 ReputationHayim 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
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 
Adaptable Designs for Agile Software Development
Adaptable Designs for Agile  Software DevelopmentAdaptable Designs for Agile  Software Development
Adaptable Designs for Agile Software DevelopmentHayim Makabee
 
Applications of Machine Learning
Applications of Machine LearningApplications of Machine Learning
Applications of Machine LearningHayim Makabee
 
Antifragile Software Design
Antifragile Software DesignAntifragile Software Design
Antifragile Software DesignHayim Makabee
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...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 PatternsHayim 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 IsraelHayim Makabee
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality AttributesHayim Makabee
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 
ADUF - Adaptable Design Up Front
ADUF -  Adaptable Design Up FrontADUF -  Adaptable Design Up Front
ADUF - Adaptable Design Up FrontHayim 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
 

Plus de Hayim Makabee (20)

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)
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
Adaptable Designs for Agile Software Development
Adaptable Designs for Agile  Software DevelopmentAdaptable Designs for Agile  Software Development
Adaptable Designs for Agile Software Development
 
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
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...
 
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
 
ADUF - Adaptable Design Up Front
ADUF -  Adaptable Design Up FrontADUF -  Adaptable Design Up Front
ADUF - Adaptable Design Up Front
 
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
 

Dernier

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 

Dernier (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 

Reducing Technical Debt: Using Persuasive Technology for Encouraging Software Developers to Document Code

  • 1. L. Iliadis, M. Papazoglou, and K. Pohl (Eds.): CAiSE 2014 Workshops, LNBIP 178, pp. 207–212, 2014. © Springer International Publishing Switzerland 2014 Reducing Technical Debt: Using Persuasive Technology for Encouraging Software Developers to Document Code (Position Paper) Yulia Shmerlin1 , Doron Kliger2 , and Hayim Makabee3 1 Information Systems Department, University of Haifa, Haifa, Israel 2 Economics Department, University of Haifa, Haifa, Israel 3 Yahoo! Research Labs, Haifa, Israel yshmerlin@is.haifa.ac.il, kliger@econ.haifa.ac.il, makabee@yahoo-inc.com Abstract. Technical debt is a metaphor for the gap between the current state of a software system and its hypothesized ‘ideal’ state. One of the significant and under-investigated elements of technical debt is documentation debt, which may occur when code is created without supporting internal documentation, such as code comments. Studies have shown that outdated or lacking documentation is a considerable contributor to increased costs of software systems maintenance. The importance of comments is often overlooked by software developers, resulting in a notably slower growth rate of comments compared to the growth rate of code in software projects. This research aims to explore and better understand developers’ reluctance to document code, and accordingly to propose efficient ways of using persuasive technology to encourage programmers to document their code. The results may assist software practitioners and project managers to control and reduce documentation debt. Keywords: technical debt, documentation debt, documentation, software maintenance, persuasive technology, FBM Model. 1 Introduction Traditionally, the evolution of software development methods and tools has focused on improving the quality of software systems. The most obvious quality attribute is correctness: the ability of a software system to satisfy its requirements. Correctness is a functional quality attribute, since it relates to the functions performed by the system. However, software systems should also have several desirable non-functional quality attributes, such as maintainability, extensibility and reusability[3]. These attributes relate to the way a system has been implemented, i.e., to the complexity of the relationships among the modules that compose the system, independently of its correctness. Hence a system is maintainable if it may be easily changed, extensible if it is easy to add new features and reusable if its modules may be easily adopted in new applications.
  • 2. 208 Y. Shmerlin, D. Kliger, and H. Makabee Recently, the metaphor of technical debt has been widely used to describe the gap, both in functionality and quality, between “the current state of a software system and a hypothesized ‘ideal’ state, in which the system is optimally successful in a particular environment” [4]. One form of technical debt is internal documentation debt [20], i.e., inappropriate, insufficient or non-existing internal documentation. Low-quality documentation is known to affect negatively quality attributes such as maintainability [18][16]. Previous works have identified some of the reasons for poor documentation in software systems. For example, many developers are under-motivated to document, since they perceive writing internal documentation as a secondary task, as opposed to writing the code itself [4]. Moreover, some software development approaches promote the idea that good code should be self-explanatory [17], and therefore comments are not always necessary. Our goal is to address these and other causes for low-quality documentation, and propose practical solutions that may be adopted to improve this situation. In particular, we believe that a combination of a persuasive technology approach with advanced tool support may transform the nature of internal documentation tasks, in such ways that software developers will choose to adopt them. This paper describes practical experiments that we plan to conduct in order to examine if and how developers can be encouraged to improve documentation and thus reduce documentation debt. 2 Problem Background and Description Technical debt can be seen as a compromise between a project’s different dimensions, for example, a strict deadline and the number of bugs in the released software product. “Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite” [5]. Technical debt is defined as the gap between the current and the ideal states of a software system [1]. This suggests that known defects, unimplemented features and outdated documentation are all considered aspects of debt. Despite the increasing interest in technical debt among both academics and practitioners, this metaphor still lacks a more rigorous and specific definition. Tom et al. [20] identified different elements of technical debt, such as code debt, architecture debt, infrastructure debt, and documentation debt. Devising ways to reduce the latter is the focus of the current study. Documentation quality has a direct effect on software maintenance. Software maintenance usually refers to the activities carried out after the development completion, and is the most expensive part in the lifecycle of modern software systems [1]. Maintenance includes a broad spectrum of activities, such as error correction, enhancements of capabilities, deletion of obsolete capabilities and optimization. In order to perform these activities effectively, correct and up-to-date technical documentation is required. Outdated or lacking documentation increases the maintenance costs [18]. Yet, currently, lack of proper documentation during development and release of software systems is prevalent [6]. According to Pfleeger [16] 40%- 60% of the maintenance time is spent on studying the software prior to modification because of the lack of appropriate documentation. Additional studies have shown that source
  • 3. Reducing Technical Debt: Using Persuasive Technology 209 code comments are the most important artifact to understand a system to be maintained [7] and that inline comments can greatly assist in the maintenance work of software engineers [14]. Programs with appropriate documentation were found to be considerably more understandable than those without documentation comments [21]. Despite the importance of documentation, there is evidence in the literature that source code and comments do not evolve in the same rate. Fluri et al. [9] found that newly added code is rarely commented; not all code is commented equally (e.g., the frequency of comments for method calls is much lower than for method declarations); and 97% of comment changes are done in the same revision as the associated source code change. The code evolves in a significantly higher rate than its comments and, as software evolves, it is common for comments and source code to be out-of-sync [13]. In summary, while software engineers may understand the importance of documentation [7], the code is not documented enough in practice [9], [13]. There may be several explanations for this phenomenon. One of the reasons is that documenting is not considered a creative activity, and many engineers prefer solving algorithmic problems instead of writing documentation [4]. Another reason is that many programmers assume that good code is self-explanatory, justifying the lack of documentation [17]. Additionally, since practitioners often work under very strict deadlines, it is easy to leave the documentation behind. Besides, sometimes not documenting can increase job security[8], because it helps programmers to keep an advantage over others and, thus, ensures demand for their services .Finally, the reason may lay in human perception, since software students do not fully understand the need for proper documentation [2]. Recently, several works investigated the investment of companies using agile methods in documentation. The agile manifesto states that direct communication is more valuable than internal documentation [12]. A study of the role of documentation in agile development teams showed that while over 50% of developers find documentation important, or even very important, too little documentation is available in their projects [19]. In conclusion, regardless of the development method used, documentation plays an important role in software products development. Proper documentation drives a more efficient and effective software maintenance and evolution, requiring lower cost and effort. Therefore, it is important to find ways to improve the quantity and quality of comments. To this end, we must find efficient techniques to encourage developers to document their code, thus improving the readability and reducing maintenance time and cost. The objective of this study is to investigate the current state of documentation, and specifically the reasons for developers’ reluctance to comment code, and propose a technique to encourage them to document their code, thus decreasing the costs induced by technical debt. 3 Solution Approach In order to overcome developers’ reluctance to document code, we plan to apply the persuasive technology approach. Persuasive technology is an interactive computer technology, which is designed with the goal of reinforcing, changing or shaping people’s attitudes or behavior [10]. When a persuasive system is used for
  • 4. 210 Y. Shmerlin, D. Kliger, and H. Makabee reinforcement purpose, the desired outcome of its use would be to make the users' current behavior more resistant to change. When using the system for changing purposes, the expectation is that the users will alter their attitude or behavior due to the interaction with the system. Finally, when using the system for shaping purposes, successful outcome would be creating a behavior pattern for a specific situation, which did not exist prior to using the system [15]. When designing a persuasive system, it is important to take into consideration the desired influence of the system on its users, since different techniques should be used depending on the desired outcome [15]. In our context, as discussed in the previous section, while programmers are often aware of the importance of documentation, this is not reflected in their behavior. In order to produce a successful persuasive design, it is important to understand which factors influence behavior. Fogg [10] introduced the Fogg Behavior Model (FBM) for analysis and design of persuasive technologies, which provides a systematic way of studying the factors behind behavior changes. The model implies that behavior depends on the following three factors: motivation, ability, and triggers, each of which has several subcomponents. The motivation factor consists of three core motivators, each of which having two sides: pleasure vs. pain, hope vs. fear and social acceptance vs. rejection. The ability factor represents the simplicity of performing the targeted behavior, and its six subcomponents are time, money, physical effort, brain cycles, social deviance, and non-routine. Finally, the triggers refer to prompts, cues, calls to action, etc. The purpose of a trigger is to signal to the user that the moment for performing the behavior has come. An additional concept of the FBM model is the behavior activation threshold. For a trigger to evoke the desired behavior, a person has to be above that threshold, in a high enough level of motivation and ability. It should be noted that most of the people are in moderate levels of ability and motivation and effective persuasive system should raise motivation, ability, or both, as well as provide a trigger for the desired behavior. An additional implication of the FBM model is that there exists a trade-off between motivation and ability of performing the behavior, so if we influence at least one factor of this equation, the desired behavior might be triggered [10]. This model has direct implications to our research, since our aim is to propose a system, which will increase performance in the code documentation task, as well as provide a proper trigger in an appropriate time for this behavior to take place. 4 Research Plan and Method The objectives of our study are to identify the reasons and challenges that impede developers’ motivation to document code, and to propose a utility for encouraging documentation and facilitating proper documentation. For this purpose, we will perform two studies: (1) a think-aloud protocol for examining program maintenance tasks performance, and (2) an experiment to assess triggers for documentation. In the first study we plan to conduct individual think-aloud sessions with about 15 students in their last year of IS undergraduate studies. Each subject will perform a maintenance task, namely, add functionality, to code written and documented by
  • 5. Reducing Technical Debt: Using Persuasive Technology 211 another student. The purpose is to gain a deeper understanding of the cognitive process a software programmer faces when maintaining code, and specifically while trying to understand the existing code. We will observe to what extent the subject relies on the code documentation during this process, and what are the important features in code comments that help understand existing code. The objective of the second study is to check whether the use of an existing documentation-triggering tool (CheckStyle:1 a plug-in for Eclipse IDE) improves documentation. The subjects of this experiment will be first year IS student in a Java course. The students will be divided into three groups: treatment group A will receive the plug-in to activate a module, which will remind them to add comments to the code as they develop it. Treatment group B will receive the same treatment as well as a social motivation – publishing their documentation level status among their peers. The control group will receive the same plug-in with a different module enabled (not related to code commenting). Our hypotheses are as follows: • H0a: Group A’s documentation level will be similar to that of the control group. • H1a: Group A’s documentation level will be higher than that of the control group. • H0b: Group B’s documentation level will be similar to that of Group A. • H1b: Group B’s documentation level will be higher than that of Group A. The results will be calculated using documentation metrics. In addition, following the experiment, we plan to collect qualitative data via questionnaires with open-ended questions, in order to gain a deeper understanding about the triggers and motivators from the students’ perspectives. Based on the results obtained in these two studies, and additional external validation with professionals from industry, we intend to create a utility, using persuasive technology principles, for encouraging and motivating developers to document their code with proper and contributing comments. The proposed utility will be evaluated and validated with professional software developers. References [1] Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., Zazworka, N.: Managing technical debt in software-reliant systems. In: Proceedings of the FSE/SDP Workshop on Future of Software Reengineering Research, pp. 47–52. ACM (2010) [2] Burge, J.: Exploiting multiplicity to teach reliability and maintainability in a capstone project. In: 20th IEEE Conference on Software Engineering Education and Training, CSEET 2007, pp. 29–36 (2007) [3] Chung, L., do Prado Leite, J.C.S.: On non-functional requirements in software engineering. In: Borgida, A.T., Chaudhri, V.K., Giorgini, P., Yu, E.S. (eds.) Mylopoulos Festschrift. LNCS, vol. 5600, pp. 363–379. Springer, Heidelberg (2009) [4] Clear, T.: Documentation and agile methods: striking a balance. ACM SIGCSE Bulletin 35(2), 12–13 (2003) [5] Cunningham, W.: The WyCash portfolio management system. ACM SIGPLAN OOPS Messenger 4(2), 29–30 (1992) 1 http://eclipse-cs.sourceforge.net/
  • 6. 212 Y. Shmerlin, D. Kliger, and H. Makabee [6] Daich, G.T.: Document Diseases and Software Malpractice. CrossTalk (2002) [7] De Souza, S.C.B., Anquetil, N., de Oliveira, K.M.: A study of the documentation essential to software maintenance. In: Proceedings of the 23rd Annual Int. Conference on Design of Communication: Documenting and Designing for Pervasive Information, pp. 68–75. ACM (2005) [8] Drevik, S.: How to comment code. Embedded Systems Programming 9, 58–65 (1996) [9] Fluri, B., Wursch, M., Gall, H.C.: Do code and comments co-evolve? on the relation between source code and comment changes. In: IEEE 14th Working Conference on Reverse Engineering, WCRE 2007, pp. 70–79 (2002) [10] Fogg, B.J.: Persuasive technology: Using computers to change what we think and do. Morgan Kaufmann Publishers, Elsevier Science (2003) [11] Fogg, B.J.: A behavior model for persuasive design. In: Proceedings of the 4th ACM Int. Conference on Persuasive Technology (2009) [12] Highsmith, J., Fowler, M.: The agile manifesto. Software Development Magazine 9(8), 29–30 (2006) [13] Jiang, Z.M., Hassan, A.E.: Examining the evolution of code comments in PostgreSQL. In: Proceedings of the 2006 ACM Int. Workshop on Mining Software Repositories, pp. 179–180 (2006) [14] Lethbridge, T.C., Singer, J., Forward, A.: How software engineers use [15] Oinas-Kukkonen, H., Harjumaa, M.: A systematic framework for designing and evaluating persuasive systems. In: Oinas-Kukkonen, H., Hasle, P., Harjumaa, M., Segerståhl, K., Øhrstrøm, P. (eds.) PERSUASIVE 2008. LNCS, vol. 5033, pp. 164–176. Springer, Heidelberg (2008) [16] Pfleeger, S.L.: Software Engineering: Theory and Practice, 2nd edn. Prentice-Hall (2001) [17] Parnas, D.L.: Software aging. In: Proceedings of the 16th Int. Conference on Software Engineering, pp. 279–287. IEEE Computer Society Press (1994) [18] Shull, F.: Perfectionists in a world of finite resources. IEEE Software 28(2), 4–6 (2011) [19] Stettina, C.J., Heijstek, W.: Necessary and neglected? an empirical study of internal documentation in agile software development teams. In: Proceedings of the 29th ACM Int. Conference on Design of Communication, pp. 159–166. ACM (2011) [20] Tom, E., Aurum, A., Vidgen, R.: An exploration of technical debt. Journal of Systems and Software, 1498–1516 (2013) [21] Woodfield, S.N., Dunsmore, H.E., Shen, V.Y.: The effect of modulari-zation and comments on program comprehension. In: Proceedings of the 5th Int. Conference on Software Engineering, pp. 215–223. IEEE Press (1981)