Structured Unit Testable Templated Code for Efficient Code Review Process
📝 Abstract
Modern software development teams are distributed across onsite and off-shore locations. Each team has developers with varying experience levels and English communication skills. In such a diverse development environment it is important to maintain the software quality, coding standards, timely delivery of features and bug fixes. It is also important to reduce testing effort, minimize side effects such as change in functionality, user experience or application performance. Code reviews are intended to control code quality. Unfortunately, many projects lack enforcement of processes and standards because of approaching deadlines, live production issues and lack of resource availability. This study examines a novel structured, unit testable templated code method to enforce code review standards with an intent to reduce coding effort, minimize revisions and eliminate functional and performance side effects on the system. The proposed method would also result in unit-testable code that can also be easily rolled back and increase team productivity. The baseline for traditional code review processes using metrics such as code review duration, bug regression rate, revision count was measured. These metrics were then compared with results from the proposed code review process that used structured unit testable templated code. The performance on 2 large enterprise level applications spanning over 2 years and 9 feature and maintenance release cycles was evaluated. The structured unit testable templated code method resulted in a decrease in total code review time, revision count and coding effort. It also decreased the number of live production issues caused by code churn or side effects of bug fix when compared to traditional code review process.
💡 Analysis
Modern software development teams are distributed across onsite and off-shore locations. Each team has developers with varying experience levels and English communication skills. In such a diverse development environment it is important to maintain the software quality, coding standards, timely delivery of features and bug fixes. It is also important to reduce testing effort, minimize side effects such as change in functionality, user experience or application performance. Code reviews are intended to control code quality. Unfortunately, many projects lack enforcement of processes and standards because of approaching deadlines, live production issues and lack of resource availability. This study examines a novel structured, unit testable templated code method to enforce code review standards with an intent to reduce coding effort, minimize revisions and eliminate functional and performance side effects on the system. The proposed method would also result in unit-testable code that can also be easily rolled back and increase team productivity. The baseline for traditional code review processes using metrics such as code review duration, bug regression rate, revision count was measured. These metrics were then compared with results from the proposed code review process that used structured unit testable templated code. The performance on 2 large enterprise level applications spanning over 2 years and 9 feature and maintenance release cycles was evaluated. The structured unit testable templated code method resulted in a decrease in total code review time, revision count and coding effort. It also decreased the number of live production issues caused by code churn or side effects of bug fix when compared to traditional code review process.
📄 Content
Structured Unit Testable Templated Code for Efficient Code Review Process Amol S Patwardhan Department of Mechanical and Industrial Engineering, LSU, apatwa3@lsu.edu
Abstract Background: Modern software development teams are distributed across onsite and off-shore locations. Each team has developers with varying experience levels and English communication skills. In such a diverse development environment it is important to maintain the software quality, coding standards, timely delivery of features and bug fixes. It is also important to reduce testing effort, minimize side effects such as change in functionality, user experience or application performance. Code reviews are intended to control code quality. Unfortunately, many projects lack enforcement of processes and standards because of approaching deadlines, live production issues and lack of resource availability. Objective: This study examines a novel structured, unit testable templated code method to enforce code review standards with an intent to reduce coding effort, minimize revisions and eliminate functional and performance side effects on the system. The proposed method would also result in unit-testable code that can also be easily rolled back and increase team productivity. Method: The baseline for traditional code review processes using metrics such as code review duration, bug regression rate, revision count was measured. These metrics were then compared with results from the proposed code review process that used structured unit testable templated code. The performance on 2 large enterprise level applications spanning over 2 years and 9 feature and maintenance release cycles was evaluated. Results: The structured unit testable templated code method resulted in a decrease in total code review time, revision count and coding effort. It also decreased the number of live production issues caused by code churn or side effects of bug fix when compared to traditional code review process. Conclusion: The study confirmed that the structured unit testable templated code results in improved code review efficiency. It also increased code quality and provided a robust tool to enforce coding standards in a cross-continent software maintenance team environment. It also relieved core resources from code review effort so that they could concentrate more on newer feature development.
- Introduction Code review is a vital step in the software development process because it ensures code quality at an early stage of release lifecycle and also provides an opportunity to inculcate coding best practices. Code review as a quality control tool has been identified in the 1980s (Ackerman, Fowler & Ebenau, 1984) and (Ackerman, Buchwald & Lewski, 1989). Fagan, 1976 suggested a formal process involving group reviews, meetings for code reviews. Votta, 1993 investigated whether a formal, time consuming and meeting oriented code review is needed. Today software development teams are spread across several onshore (within same country) and offshore (international) locations. The teams often consist of wide range of programming and communication skills in terms of experience and culture. In such a diverse setting accountability and ensuring code quality becomes very important. The geographical distribution also makes it harder to implement the formal code review process outlined by Fagan. Researchers (Bacchelli & Bird, 2013) have identified the challenges to the code review process and the expectations from a successful code review. The researchers reported that many organizations struggle to execute and enforce the code review process primarily because of following reasons:1) Low reviewer participation, 2) Poor knowledge of code context, 3) Pressure to meet deadlines. According to the study the main requirements and expectations of developers and management from efficient and successful code review process are:1) Short execution time, 2) Maintain coding standards, 3) Minimize performance impact, 4) Minimize breaking change, 5) Minimize functional side effects, 6) Optimal usage of reviewer time, 7) Inculcate good coding habits, 8) Knowledge transfer. The software development process is shifting more and more towards agile development and continuous deployment. There is an increasing need for shorter development cycles and quicker code reviews. Moreover, newer flexible architectures and technologies such as real time embedded (Patwardhan, 2006), xml entities based (Patwardhan & Knapp, 2014), (Patwardhan, 2016), self-contained plugins (Patwardhan & Vartak, 2016) and Kinect based systems (Patwardhan & Knapp, 2013) are constantly being adopted and implemented. Such systems require in depth knowledge about the system for context aware and rapid code reviews and traditional formal methods can cause delays. Beller et. al, 2014 have examined the modern code review process in open source software projects. The modern code r
This content is AI-processed based on ArXiv data.