{"title":"Classifying Toggles-smells and Investigating Development Effort","authors":"Harika Sugnanam, Md Tajmilur Rahman","doi":"10.1145/3511430.3511461","DOIUrl":null,"url":null,"abstract":"Companies are moving towards rapid release to deliver features as quickly as possible using Feature Toggles. Feature toggle is a variable that controls the state of a feature allowing unfinished code into the trunk. However, Maintaining the feature toggles needs a great effort, otherwise, it may lead to technical debt. Toggles may turn into code smells since they can be used in many ways if there is no standard of usage. We are calling such standard-less use of feature-toggles as “Toggle Smell’’. We classify different uses of toggle smells, and then we measure how much effort the code files are consuming to develop features, and maintain the toggles in each component. Our quantitative analysis on the Chromium open-source project finds that there are 3.1K toggles in 38 components and of the six different types of toggle usage, we classify three different toggle smells. The other types of usage will be analyzed in a future work. Three classification models predict the development effort in files as “High’’, “Medium’’, and “Low’’ with a similar accuracy of 95.x%.","PeriodicalId":138760,"journal":{"name":"15th Innovations in Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-02-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"15th Innovations in Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3511430.3511461","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Companies are moving towards rapid release to deliver features as quickly as possible using Feature Toggles. Feature toggle is a variable that controls the state of a feature allowing unfinished code into the trunk. However, Maintaining the feature toggles needs a great effort, otherwise, it may lead to technical debt. Toggles may turn into code smells since they can be used in many ways if there is no standard of usage. We are calling such standard-less use of feature-toggles as “Toggle Smell’’. We classify different uses of toggle smells, and then we measure how much effort the code files are consuming to develop features, and maintain the toggles in each component. Our quantitative analysis on the Chromium open-source project finds that there are 3.1K toggles in 38 components and of the six different types of toggle usage, we classify three different toggle smells. The other types of usage will be analyzed in a future work. Three classification models predict the development effort in files as “High’’, “Medium’’, and “Low’’ with a similar accuracy of 95.x%.