Teradyne
Lattix Architect enables Teradyne to effectively refactor their complex software application
Teradyne test technology helps electronics makers bring their high-quality innovations such as smart devices, life-saving medical equipment and data storage systems to market, faster. Its advanced test solutions for semiconductors, electronic systems, wireless devices and more ensure that products perform as they were designed, every time. Its robotics offerings include collaborative and mobile robots that help manufacturers of all sizes increase productivity, improve safety, and lower costs.
Teradyne’s customers rely on the software being developed by the company to meet the highest of standards and quality and performance. Almost 20 million of lines of code combine to form one of their market leading applications. As Stephen Hlotyak, lead software engineer, explains, “Our software is one of the keys to meeting our customers’ critical needs when it comes to testing their products. Our applications have evolved over the years in terms of complexity and volume.”
Stephen goes on to explain that the increasing complexity in Teradyne software products brings new challenges, “Unless dependencies are managed effectively, engineering productivity and ultimately product quality can both become a challenge. Tracking down dependencies without effective tooling proved difficult. We were losing many person hours doing code searches”. Stephen also noted that in a system this large, it isn’t possible to have a single person know everything, making it difficult to figure out the cost and impact of change.
Stephen and the Teradyne software team began to look for commercial solutions to address these significant challenges. Initially, there was skepticism that a tool existed that could scale to handle the complexity and size of Teradyne’s code base. “We’d tried some tools, but without exception, they couldn’t handle our build system, or code complexity”.
Then Stephen discovered Lattix and a trial was arranged. The Teradyne team was impressed with the initial demonstration, but doubts remained as to whether the scalability challenges could be overcome. “We engaged the CodeClinic technical support team, and we were impressed with their technical capabilities.” Soon they had deployed Lattix, integrated with a complementary tool, which solved a specific technical issue with Microsoft precompiled headers.
The first results were very revealing, “This was the first time our team had ever visualized our entire software stack in one view that made sense”, explains Stephen. “For example, moving a class from one DLL to another without knowing who uses that class, with multiple classes of the same name in different namespaces…it was like trying to find a needle in a haystack.”
Software engineer Matt Novello added that what had been a challenge to manage was now suddenly manageable, “We saw interface boundaries in new ways which helped us understand the interactions between our C++ and C# classes.”
With their newfound understanding of their gigantic code base, the Teradyne team began to refactor the code, reducing dependencies on external libraries and between components. One key motivation for this work was to reduce build times. Stephen said, “Using Lattix we were able to reduce dependencies between our libraries and move from sequential to parallel builds as a result. We have thus far seen a drop in build times of approximately 15 percent. We are excited to continue this work due to the significant ROI and impact it is having on our build and development process. With Lattix we can deliver value so much faster; the tool has been indispensable”.
The Teradyne team plans to consider usage of Lattix’s new heatmap functionality to map churn and complexity data. “We see Lattix as an essential tool to help us manage dependencies and take action on improving system and software health. We look forward to continuing our work to optimize and transform our software development processes,” Stephen concludes.