When RouteOne realized that their legacy code management and refactoring skills were causing release delays, they reached out to Industrial Logic for help. After an initial meeting with Jay Srinivasan, Senior Director of Application Development, Industrial Logic’s coaches determined that the RouteOne teams faced the following technical challenges:
Significant Technical Debt: The company had a very old codebase with a lot of technical debt, so developers were unsure how to write tests and safely improve the code while delivering new enhancements.
Brittle & Flakey Acceptance Tests: There were a large number of Selenium tests in place, but they were very brittle and routinely failed. Most often, their failure had nothing to do with a defect existing in the code. Instead, it was usually due to data or timing issues. The developers needed to drive more of the testing down to microtests in order to have confidence their changes were accurate and not impacting existing functionality.
Based on these challenges, our coaches recommended that 25 RouteOne developers study Industrial Logic’s best-selling Testing and Refactoring eLearning via our Guided eLearning service. In this program, Industrial Logic's trainer conducts in-person weekly sessions and assigns homework that typically requires as much time outside class as was spent in class. Between classes, coaches are available for questions and feedback directly via email and during office hours. The homework uses Industrial Logic's eLearning platform, which augments the participant's experience with informative videos, quizzes, and peer engagement.
This service was a big hit with developers, who began applying what they learned to their code base. Soon, the service was rolled out to the entire RouteOne development team. The developers worked on their lessons during set office hours to make it easier to find the time and to give them the opportunity to work together if desired. Our coach met with the team every Friday to review the lessons from the previous week, examine lessons for the following week, and most importantly, discuss how to apply the things we just learned. Discussions often turned to topics such as how to talk to non-technical team members about refactoring in approachable language and how to determine how much refactoring should be completed at a time.
"We shifted our release schedule from a monthly cycle consisting of 3 weeks of development and 1 week of testing to releasing every two weeks, since the developers were applying the testing techniques they learned in Guided eLearning."
"The feedback was very positive, better than anything we had received with training opportunities in the past; developers felt like they learned something new every week." Jay Srinivasan, Sr. Director of Application Development
As they went through the three-month program, it was clear that not everyone was able to work through the materials at the same pace, and there were times where the workload at the office was higher than usual due to large releases. One of the many advantages of our Guided eLearning is that we can easily adjust things like assigning less work during busier weeks to insure the teams stay focused on the same lessons. If developers needed extra time from our coach outside of the Friday meetings, all they needed to do was call or email for help.
The developers enjoyed the engaging exercises, in-depth feedback on their performance, and material presentation, especially the Refactoring and Legacy code albums, since they were very relevant to what they were facing in their everyday work.
Improved the retention rate among developers.
Exposed many new techniques which the developers could quickly learn and implement.
Helped the developers frame their knowledge in an organized manner as applicable to different situations.
Changed the tone of the weekly team meetings from time spent complaining about legacy software to a focus applying their new skills to clean up the software.
"This course helped me write clean code and provided me with more confidence in touching and refactoring legacy code. It also provided me with solid guidelines to add unit tests instead of relying on improvisation." RouteOne Developer