"Like rolling a Cuban cigar one at a time." That's how Shane Hamlin described the customization of his company's products to meet the needs of its financial services customers. But Xcitek, a provider of Corporate Actions automation software, market data and consulting services, knew that in order to continue growing as well as improve the quality of its software, it needed to change its development processes and bring in some tools.
"If we continued growing, there was no way to keep that pace up," said Hamlin, senior quality assurance analyst at Xcitek LLC in Birmingham, Ala.
Xcitek's XSP Corporate Actions software automates securities processing, from initial data capture to notification and response processing of elections, through to entitlement management. Xcitek's financial institution clients range from global custodians to broker/dealers, asset managers, hedge funds, trust banks, stock exchanges and industry utilities. In addition to Birmingham, the company has offices in London and Boston.
Quality assurance was primarily a manual process until three years ago, Hamlin said. "Before, I'd say we did 'quality control,' not 'quality assurance.' It involved a lot of overtime, with developers and QA staff working weekends," he said. And he acknowledged that things were missed, and there were issues with client reporting. "We knew there had to be a better way," he said.
Xcitek did find a better way. For the past several years the company has been using various tools from Compuware. For example, Hamlin said his group has been using Compuware File-Aid Client/Server on a daily basis for three years. Hamlin explained that the Corporate Actions application is heavily database-driven and consists of more than 400 tables. In addition, Xcitek supports Oracle, SQL Server and Sybase, and the application is customized for each client's specific needs.
Now when there is an upgrade, they take a clean install of a GA application and populate it with one day of data. They also take the client's legacy database of the application and repeat the same process for one day of data. "I'll apply the upgrade script, do a comparison of the schema and 400-plus tables, and within an hour we can know," said Hamlin. "Theoretically they should be identical. Before File-Aid there was no way for us to do that; we did it manually if time permitted."
The result of this new process is better quality. "We developed this methodology three years ago," Hamlin said. "We do not let a build go out the door that does not pass this process. Our defects have dropped dramatically, and our customer confidence rate has improved dramatically."
Quality through development methodologies
Another way Xcitek has addressed quality is through its development methodologies. The company is in the process of migrating from a traditional "waterfall" style of development to a continuous integration philosophy, Hamlin said.
"We're now continually creating builds," he said. "As a developer checks in a build, it goes to an automated process. The unit tests are automated; they get put into binaries. We usually put a build out every day."
This allows QA to test incrementally, he explained. "We believe if code is in a more fluid state, we can put out a better quality product. It allows the quality assurance team more time to look at individual items vs. [having] 75 items to test and regression test as well." If QA identifies an issue with a build, it is corrected in the subsequent build, he added.
Even before QA gets the build, though, Hamlin said it is put through build validation tests. The developer, together with the business analyst, decides what the basic core functionality of the application is. The build validation tests are automated, so when the binaries are compiled into a folder a series of functional tests are triggered, he said. At completion, QA is told what the build can do. "It's frustrating for a QA person to go through the hassle of installing and configuring it and then they can't log in," he said.
"If it passed the test, we deem it a good candidate for QA," Hamlin said. "Having small chunks or incremental builds is very nice. If no issues apply to them [QA], they don't have to install the build. In waterfall, it's almost a necessity every time."
Xcitek uses Compuware TestPartner to perform functional, build validation (CIT) testing and a variety other functions, and it uses Compuware QADirector to orchestrate and schedule all automated tests. QADirector is installed at a few administrative desktops, and everyone else uses Compuware QAPortal to utilize key QADirector pieces via the Web. All three products are part of the QACenter Suite.
For companies like Xcitek, quality is an ongoing concern. "Quality is an issue regardless of whether you're in software, home construction, etc.," Hamlin said. "As it pertains to a software environment, I don't know of too many industries that technology is growing as quickly. To measure the pulse of your application at any time is crucial."
And the effort produces benefits for developers as well as customers. "Developers are under the gun all day long to get code out the door," Hamlin said. "Telling them there's another step, no one likes it. But when they see the benefits of utilizing unit tests and they see the piece of code they created doesn't come back with bugs because we caught the bugs upfront, it makes their life easier in the long run."