When financial services firm Raymond James Financial Inc. decided to employ the Application Intelligence Platform (AIP) from CAST, it was an opportunity to improve the quality of its code. But according to Caren Evans, vice president of software engineering, the company discovered some significant synergies between AIP's capabilities and several ongoing initiatives within the software engineering group that helped the company reap some unexpected benefits.
CAST's AIP is an automated code inspection system that analyzes all the tiers and components of an application, from the graphical user interface to the database, to identify technical quality issues, monitor development performance and provide management visibility. CAST measures technical quality and adherence to architectural and coding standards, while providing real-time system blueprints.
Like most organizations, the St. Petersburg, Fla.-based Raymond James has a mix of older and newer applications that run in a heterogeneous environment. Evans said the environment is about 60% Microsoft, with an HP NonStop mainframe platform, and a small amount of Unix and Java. The software engineering organization is made up of about 300 people, mostly located at the headquarters, who are responsible for about 150 applications. Founded in 1962, the company today has 2,200 locations worldwide.
One reason to bring in an automated tool like CAST is help identify opportunities to deploy better maintainable code, Evans said.
"The older [applications] are harder to maintain and enhance, so the longer you go adding little pieces of functionality, the more it becomes like a patchwork quilt. Supporting and maintaining them is challenging," she said. "At the time, we were not having issues we were aware of, but even if you don't think your applications are in very bad shape, there's always an opportunity to improve and do a better job with the quality of code. So, there was a transparency we were looking for that we didn't have. You can look at incidents in the production environment, but without a tool like CAST you can't see under the covers."
AIP helps determine application maintenance needs
Around the same time, Raymond James started an initiative to restructure the software engineering group.
"Previously, we had development teams responsible for certain applications and supporting certain business units. They did new project work as well as maintenance and support," Evans said.
They decided to split the organization into two groups: those who were responsible for support and maintenance teams and those who did project work.
"We found, just as a lot of IT shops have experienced, that when you start working on project work you put a timeline together based on the resources available," Evans said. "But as production problems crop up [with existing applications], people are pulled off project work. We thought if we split this up, the teams would be more successful getting project work done on time, and the people doing maintenance now would have time to do analysis and gather expertise around the day-to-day support of the systems."
In preparation for the restructuring, Evans said they thought it would be interesting to use the CAST AIP to see the state of applications.
"If you're transferring an application to a maintenance team, or the situation is a brand-new application going from project to a maintenance team for support, you can plan better in terms of support requirements by understanding the quality of the code," she said.
For example, the AIP indicated how well the code is commented. "If you have someone on the maintenance team to troubleshoot a bug in production and they've never seen that code before, they're relying on the comments to understand quickly what the program does; that's very valuable," Evans said.
CAST will tell you the ratio of code to comments, and Raymond James can set a standard in the organization that this is what they expect in the code. If something doesn't meet minimum requirements of the comment-to-code ratio, you could do something about that before it gets deployed, she said.
Evans also said that the information they get from the tool allows them to better plan and staff maintenance activities around those applications.
Another initiative that has benefited from the use of the CAST AIP is a reorganization of the company's applications so they could create full application builds when deploying code into production.
"When we loaded them into CAST, it helped us identify some dependencies that weren't clearly known, so the [AIP] has provided quite a bit of support for other initiatives," Evans said.
Catch defects and also educate staff
Lev Lesokhin, vice president of marketing at CAST, said Raymond James' approach with CAST is twofold. Not only is the firm using it to catch defects early and monitor quality throughout the process, but it sees it as investment in its staff, making everyone in the development team aware of what is good quality and how to develop applications with good quality.
"Over time this will improve the quality of their applications so they can be more transferable, freeing up developers from being stuck supporting one application because they're the only one who knows how," Lesokhin said. "Now you can pull your best developers to work on projects that are important rather than handling the issues of the day. That's their view on the long-term value of running CAST."
Bringing in a new tool can sometimes face resistance from staff, but Evans said it doesn't change the workloads of the developers and business analysts. The application lifecycle management group is responsible for owning the product and administering it for the software engineering organization, she explained.
"So there are additional duties for a small, select number of people, but it's providing more valuable information for us to manage the software engineering efforts better," she said.
Evans added, "For teams now responsible for maintenance, we see a huge benefit to have transparency into the quality of code, so it will make their lives a lot easier."