Reducing Costs and Risk with Spring: Intelliware
Intelliware is a custom software development company based in Toronto, Canada. Intelliware offers a wide range of software development services to diverse industries including financial services, insurance, health care, retail, manufacturing and government. The company’s strategy is to build software in a way that reduces risk, produces deliverables quickly, and meets clients’ business needs without compromising quality.
As a technical lead in Intelliware’s financial services practice, Alec Ho is responsible for application architecture – through separation of concerns, consistency, and flexibility in an agile environment. Configuring an application using custom code can be time consuming, hard to test and difficult to change and maintain. Code outside of the business logic (such as authorization, auditing, language translation and performance recording) can clutter business function code.
Architecture and maintenance of test code is just as important as application code in an agile environment. If test code is not well structured, it can sometimes add significant costs to application changes. Therefore, tests have to be easy to maintain and change, in step with the requirement changes of the application.
The Intelliware financial services team requires that new applications use Spring, the de facto standard platform to build, run and manage enterprise Java applications, as their foundation. Examples of applications that Ho has built on Spring so far include a large application for a financial services company and software that handles generating and processing requests for quotes used in several industry sectors.
Ho notes that Spring encourages developers to layout projects in a simple way, provides consistency from project to project, and helps separate the components in the application so they are well layered and easy to understand.
Spring delivers the following business results to Intelliware:
Faster Ramp Up
“Spring makes it easy for us to educate our developers so they can efficiently move from one project to another,” Ho explains. “Spring brings a layer of consistency to the architecture, so it takes less time for a developer to ramp up when they move to a new project.”
Spring allows developers to develop business logic code more quickly by separating out the wiring logic. Business logic can be built as separate component services that can be independently built, tested and configured to work together using simple consistent configuration files.
Reduced Development Costs
Spring saves time, and less development time translates into reduced development costs for Intelliware. In addition, Spring enables Intelliware to architect applications - making them more testable and robust, and ultimately reducing development costs.
For aspect-oriented programming, Spring AOP provides the mechanism to separate out such concerns as independent components so that they can be transparently integrated into the application. This allows high reusability and reduces the cost of maintenance. In addition, components can be tested independently once, thus reducing the cost of testing.
Test frameworks have also been built using Spring to isolate the test code that interacts with testing tools, such as Selenium, so that changes to the application require little change to the tests. The reduced costs in maintaining both application and test code all contribute to the bottom line.
Improved Application Quality
“Spring enables a superior architecture over custom frameworks, which means testability is better. This results in fewer bugs and a more robust end product,” says Ho.
Intelliware writes a substantial number of tests to ensure application quality as part of their i-Proving development methodology. Spring helps to make a high level of unit and integration testing easier, which not only ensures quality, but also makes the developer’s job much easier. Intelliware has built a rich set of tools on top of Spring to generate quality data sets, conduct performance analyses and produce associated reports. These tools allow developers to identify performance issues quickly and efficiently.
“Spring is a key technology for building flexible data set generation tools,” Ho confirms. “For example, we can easily generate either Oracle or DB2 data sets with simple reconfigurations of the tool.”
Intelliware is a practitioner of agile software development practices which ensure the delivery of timely, high-quality solutions for clients. Spring supports this approach by providing a superior platform which minimizes wiring and custom code. This improves flexibility to make application changes, thereby reducing the risk that changes introduce into the process.
“With Spring, it is easy to isolate areas of the application which are at high risk to change and modifications can be made as the application grows,” Ho concludes.
- Faster Ramp Up
- Accelerated Development
- Reduced Development Costs
- Improved Application Quality
- Reduced Risk
“Spring enables a superior architecture over
custom frameworks, which means testability is better. This results in fewer bugs and a more robust end product.”
“Spring brings a layer of consistency to the architecture, so it takes a less time for a developer to ramp up when they move to a new project.”
— Alec Ho, technical lead in Intelliware’s financial services practice
To learn more about our products, services and solutions, visit our Spring page.