I run the IT department for a preemployment screening company. Like most other developers, I am always trying to get the most work out of a limited amount of resources, whether that involves time, budget, or development staff. How many times have you been faced with a project whose requirements can be accomplished using a third-party tool, but you just don't know whether the cost of the tool justifies the time savings? If you're like me, this situation is very common. And also like me, I'm sure you've had both positive and negative experiences with either option. We recently had a business problem that warranted using a third-party component and, I'm happy to say, it was able to meet and exceed our expectations.
The Problem
We offer clients a database screening (background check) that is made up of various federal, state, and county criminal record repositories. We purchase this information from our vendor by using their web service to make a request on behalf of our clients. The vendor maintains over 300 million records belonging to several hundred repositories. These repositories are constantly changing as new states/counties are added and others are removed or their content restricted or expanded. When a customer executes a search, they typically want to know if a particular repository was included in that search. For example, if your applicant's address is in, say, Fresno, California, and he has lived there for many years, you would probably like to know whether the Fresno County Court was included in your database search. We maintain a PDF document that contains the record sources and make it available online. Until recently, the maintenance of this document was handled by one of our operations personnel who verified the sources we claimed versus the sources the vendor claimed. If there were differences, they were fixed in our document, then redeployed back to the web site; see Figure 1.
If a client had questions about which sources were being searched when a request was made, they could go to a Sources.aspx page that would load and display the PDF document. This workflow was fine when there were only a few changes a month, but as more sources became available from our vendor, maintaining this document became an hourly job and the employee started to fall behind on other work. Customers were getting upset because they felt the report they requested wasn't searching all available jurisdictions when, even though it was searching everything available, the source list didn't reference them. Additionally, by not listing the most current sources for our information, clients were beginning to think our product wasn't competitive.