Site Selection Group is one of the largest, independent location advisory and economic incentive firms providing solutions to corporations and communities across the world. We offer four core services to our customers which includes location advisory, economic incentive services, real estate services and economic development consulting. Through the utilization of our cutting-edge databases and analytical models, our experts can maximize the efficiencies of location decisions for corporations in a variety of industries.
AppFoundation is a professional services firm that provides custom web, mobile, and desktop application development. We leverage innovative technologies to deliver premium user experience that engages customers to drive satisfaction, brand awareness, and deliver measurable results. Site Selection Group tapped AppFoundation to build a product quickly and uphold enterprise application development standards. With the goal of developing a multi-tenancy platform to maintain customer incentives, we had another opportunity to change the enterprise application development landscape and set a new standard for interaction by choosing Ext JS.
The purpose of IncenTrak was manage financial-based customer incentives by geographical location. There was no existing system, interfaces, or requirements so this was a project from the ground up. We started by coming up with high level goals and scenarios, followed by making wireframes that were used as discussion points for functionality. This lead to the generation of use cases, which were then used to break out task level activities and estimates for building the system end-to-end.
Architecturally the resulting system was best described as web portal, consisting of the standard three components: Front-end for presenting information to the user, a Mid-tier for processing information, and a Database for persistently storing information. The front-end was Ext JS because of its rich catalog of available components, along with well established community and history of success. The Mid-tier was Java-Spring because of its enterprise scalability, ease of use, and established best practices. For the Database we used MySQL as a lightweight and low cost solution for relational persistent storage, and MongoDb as a NoSQL solution for storing documents and images.
An existing continuous integration and continuous delivery framework and infrastructure allowed us to quickly standup and run the initial project, and then start building the system component by component and task by task. Work was categorized by overall screen, which focused on functionality from the enduser perspective. As each screen came online, quality assurance would be immediately involved. Tasks, defects, and new feature were all tracked in a single system, and were generally prioritized weekly by a combination of developers, testers, and the business. The goal was to meet initial deliverable deadlines, which required moving work in and out of the different targets in the release schedule according to priority.
Through continuous integration, every change resulted in unit testing, integration, and acceptance testing. Unit testing would verify code at the function level, integration testing would verify server-side functionality from the endpoint level, and acceptance testing would verify system behavior from a user perspective by executing automated tests in the web browser via HTML5 Robot. This allowed us to continually change the overall system while being assured that we were not breaking existing functionality, and the the front-end remained working in all supported web browsers. This level of stability also gave us enough confidence to be able to automatically deploy the system to the quality assurance, user acceptance testing, and production environments, sometimes multiple times per day.