The impact of Technical Debt (TD) on software maintenance and evolution is of great concern, but recent evidence shows that a considerable amount of TD is fixed by the same developers who introduced it; this is termed self-fixed TD. This characteristic of TD management can potentially impact team dynamics and practices in managing TD. However, the initial evidence is based on low-level source code analysis; this casts some doubt whether practitioners repay their own debt intentionally and under what circumstances. To address this gap, we conducted an online survey on 17 well-known Java and Python open-source software communities to investigate practitioners' intent and rationale for self-fixing technical debt. We also investigate the relationship between human-related factors (e.g., experience) and self-fixing. The results, derived from the responses of 181 participants, show that a majority addresses their own debt consciously and often. Moreover, those with a higher level of involvement (e.g., more experience in the project and number of contributions) tend to be more concerned about self-fixing TD. We also learned that the sense of responsibility is a common self-fixing driver and that decisions to fix TD are not superficial but consider balancing costs and benefits, among other factors. The findings in this paper can lead to improving TD prevention and management strategies.
翻译:技术债务(TD)对软件维护和演进的影响令人十分关切,但最近有证据表明,相当数量的TD是由采用这种技术债务的同一开发商确定的,称为自我固定的TD。这种TD管理的特点可能会影响团队动态和管理TD的做法。然而,初步证据的依据是低层次源代码分析;这使人怀疑从业人员是否有意和在何种情况下偿还自己的债务。为了弥补这一差距,我们对17个著名的Java和Python开放源代码软件社区进行了在线调查,以调查执业者自我固定技术债务的意图和理由。我们还调查了与人有关的因素(例如经验)与自我固定技术债务之间的关系。181名参与者的答复表明,多数是有意和经常解决自己债务的。此外,参与程度较高的人员(例如,项目经验和捐款数目的增多)往往更关心自我固定TD。我们还了解到,责任感是共同的自我固定驱动因素,也是自我固定技术债务(例如经验)和自我固定技术债务的自我固定因素。从181名参与者的答复中得出的结果,表明,多数是有意和经常解决自身债务的。此外,参与程度较高的人(例如项目经验和捐助数目)往往更关心自我固定的TD。我们还了解到,但在改进文件管理方面的好处。