MPS Group is a large technical placement company whose primary asset is the list of technical people that they place in positions. They were having difficulty managing the huge number of developers and systems analysts they worked with, and needed to develop a new way of managing all that data.
Additionally, the company maintains many local offices around the country, and each office needed to have access to the complete list of available people since many of the short term contractors they placed liked to change cities frequently.
The system they wanted to put in place had several restrictions. They were not comfortable with having the information in a standard website due to performance concerns. The industry they are in is extremely competitive, so they wanted to make sure that when a salesperson finally got a potential client on the phone, the sale would not be held up by waiting for a website to refresh. They wanted a local application that would access the central database while still providing the fastest feedback possible.
An additional requirement was being able to operate while the network was down. They were having a lot of trouble at the time with their communication lines, and had experienced several weeks where the remote offices were not able to communicate with headquarters. To reduce the risk of this happening again, they wanted to implement a scheme where each satellite office would maintain their own data, but continually synchronize with the main office when it was available.
Brad Irby Associates worked with their in-house team to build a Windows application that would access the data on the local database. A main driver of the development was focusing on keyboard navigation so the sales people could access the information necessary as quickly as possible.
To address the network connectivity problems, we implemented a database replication scheme using SQL Server Replication which would automatically keep the local and remote databases in synch when a connection existed. If the connection went down, any changes to the data would be saved locally until the connection was available again, at which time the data would be synchronized with the home office.
The data replication was one of the most critical pieces of this application, and we used SQL Server 2005 replication to do so. We setup two way replication and coded an automatic re-initialization of the replication should anything go wrong and the replication fail. Each office maintained their own SQL Server which replicated over the internet to the SQL Server at the HQ.
The Smart-Client application was written in C# using Winforms, due to the internal teams inexperience with WPF, and because WPF was still fairly new at the time. We used an MVP pattern with Dependency Injection implemented using Microsoft Unity. The DI container was setup to dynamically load modules at runtime to ensure that additional functionality could be distributed easily.
Improved Customer Service – When a client would call needing to find a technical resource, the sales team could help them immediately without waiting for a slow system update, or even a lost connection to the database.
Increased Revenue – The improved ability of the sales team to address client needs directly impacted the top line for the company. They were able to make sales they would have missed before due to their inability to respond quickly enough.