“By identifying bugs early in the software development process Collaborator helps us avoid what all development teams fear—the ‘million dollar bug’ that suddenly appears in production when it becomes exponentially more expensive to repair the software.”
The GLaaS engineering team plays a critical role in helping EMC develop and enhance the hardware and software solutions the company delivers to customers. By offering a cloud-based lab environment for hardware and software testing, the GLaaS team enables research and development teams within EMC to fully analyze product performance before deployment into customer production environments. “We need to run an efficient lab so our research and development teams can accelerate product-development and upgrade lifecycles as quickly as possible,” says Jonathan Mason, a Principle Software Release Engineer for the GLaaS team at EMC. “If the process to procure resources and build lab environments to conduct the product testing lags, customers have to wait that much longer to start capitalizing on the benefits our solutions deliver.”
One of the key components that helps the GLaaS team function efficiently is a Web services application through which lab requests are submitted and tracked until the tests are completed for each product. As the demand for lab services increased in 2013, the GLaaS team (consisting of 26 application developers, reviewers and testers) found it challenging to collaborate on code reviews while maintaining the Web services application, which comprises 20 modules and approximately 2,000 files.
“Our previous solution required users to bounce back-and-forth between the Eclipse plug-in and a Web browser for conducting code reviews,” Mason says. “Forcing the staff to switch interfaces was annoying enough that they often did not use the code review solution when discussing code review updates. They just sent e-mails or instant messages, which made it difficult to track code-review progress.”
Given the range of code review experience within the GLaaS development team and knowing all levels of developer experience can contribute to code improvements, Mason sought a collaboration tool what would make it easier for all team members to work together. Such a tool would also eliminate conversations isolated to two or three reviewers.
In searching for a new code review collaboration tool, the EMC GLaaS team sought a solution that would enable reviewers to complete the entire process within an Eclipse plug-in, the team’s preferred IDE. The team also sought a solution with robust differential viewer capabilities and the ability to generate reports to help managers track code review progress as well as easily identify the reasons for bottlenecks.
“Another key feature we needed was the capability to enforce our code review policies,” Mason adds. “If developers and reviewers can proceed while interacting outside the system, the team becomes less efficient.”
EMC considered three code review tools including SmartBear Collaborator, Review Board and Perforce Swarm. A key differentiator that prompted the GLaaS team to choose SmartBear Collaborator was how well it supports Perforce task streams, a key component of the development process.
“We also appreciate that SmartBear gave us a demo of the fully-functional application so we could accurately assess how well the tool works,” Mason says. “SmartBear provides very informative demos and demonstrated to our management team how the features we were most interested in—policy enforcement and reporting—were easy to set up.”
In addition, the documentation that accompanied the demo answered many follow-up questions that emerged as the demo progressed. This reduced the need for EMC to ask SmartBear how to set up the required functionality. “SmartBear’s thorough demo approach, backed by the easy-to-understand documentation, allowed us to clearly see the benefits Collaborator could deliver within our environment,” Mason says.
Benefits and Results
By leveraging SmartBear Collaborator, members of the EMC GLaaS developer team have gained an in-depth understanding of the code that other team members generate. Overall, the team now process coding tasks in a more similar fashion instead of multiple methods. The consistency Collaborator enables also makes the code easier to learn for new developers that join the team.
“Our entire team finds Collaborator easy-to-use, both through the Eclipse plug in and through Web interfaces when necessary,” Mason says. “We can also enforce code review policies more consistently, and the reports that Collaborator generates helps management assess how well the team performs. The extensive reporting mechanism is key—management can access metrics to assess how things are going and efficiently discuss necessary changes with all that are involved on particular code review.”
The user-friendly attributes of SmartBear Collaborator have prompted the entire 26-person GLaaS team to use the tool consistently, which was not the case with the previous code review tool. “When we create a review request within the Eclipse plug-in, it’s now possible to appoint someone as a reviewer and give them full access to the code from within Eclipse,” Mason says. “This works much better than forcing them to view the code via a web browser.”
GLaaS team finds new application bugs about two percent of the time and early in the development process. “We could not generate this metric with our previous solution,” Mason says. “During the first two months of using Collaborator, we found 10 defects before the code reached the compiling stage and was tested in the continuous integration environment. Given that the cost to fix bugs goes up exponentially in each ensuing phase of development, we are reducing development costs considerably by finding bugs during code review.”
By accelerating the code review process, SmartBear Collaborator also helps the GLaaS team speed up the lifecycle of lab requests so each EMC division can run tests through the labs more easily. “We also produce higher-quality code because peer reviews now get another set of eyes,” Mason says. “We thus have a higher chance of catching issues before code is checked in and tested by our continuous integration system. This allows our lab services to function with greater stability. The division research and development teams know they can depend on us to deliver as promised.”