Commercial Payroll System

System to Calculate and Distribute Payroll, with Online Paystub Access

Project Overview

ProBusiness is a large processor of payroll, deductions, and other payroll processing services, and maintained a website for their customers to use which allowed individuals to log in and view their payroll information online.  The functionality included the ability to view an accurately represented image of their paychecks and deductions, change their deduction elections, and make other changes in their individual payroll processing.

All access to the system needed to be very secure, yet very responsive.  On payroll day, the site would receive thousands of requests per minute.  We were brought in on this project to help improve the performance of this mission critical website, and to help in re-architecting the site to handle projected growth.

Solution

The existing system was analyzed for trouble spots, including analysis of the database, network activity, and code.  The most critical changes were targeted and improvements were implemented each weekend for several months, ensuring continued availability of the system but also incrementally improving the user experience and stability.  Code was updated to improve the security and performance.

To ensure the sites’ ability to handle the predicted growth, the structure of the site and the design of the infrastructure were reviewed and a new plan was put in place that would accommodate the predicted growth, as well as unforeseen growth.

Technical Details

The site was built in ASP.NET and used a MS SQL Server back end for data storage.  The databases were mirrored using Windows Cluster Server and MS SQL Enterprise which supports failover clustering.  In the event any piece of hardware were to fail, a hot spare would immediately take over the duties of that server thus exposing only about 1 minute of downtime to the users.

Benefits

Improved Customer Retention

The functioning of the site was causing some of their larger customers to be concerned whether our client could handle the load that was being placed on it.  By improving the database structures and code, we were able to dramatically improve response time and prove to the dubious customer that the infrastructure was reliable.

Increased Revenue

By improving the infrastructure, we were also able to accommodate more customers on the system.  As potential new customers saw demonstrations of the infrastructure, they were impressed enough to sign up their own company for the service.

Reduced Expenses

Improving the database and code also removed the necessity for more hardware to run the system on, thus saving many thousands of dollars in hardware, and additional responsibilities for the technical staff.