Performance may seem like an abstract concept until it involves the care of some of society’s most vulnerable people.
ContrOCC is OCC’s finance management software. It is used by about 50 local councils, has more than 1,000,000 lines of code and took over 10 years to build. The software is used by local council social care finance teams to manage contracts and budgets, make payments to suppliers and collect contributions from service users.
ContrOCC payment calculations are complex. As the number of cases being handled simultaneously grew, performance degraded exponentially.
As a result, at times of high usage, when users updated information about a care package, they were faced with a delay as ContrOCC calculated the effect of the change on supplier payments. Although the program was performing well, it wasn’t performing as well it could, and any delay mattered to the users, who had many more cases to deal with.
Separating the tasks
To overcome this problem, we redesigned the software using a form of scaling out called asynchronous processing. The entry of care package information and the calculation of the related payments were separate tasks, which could take place at different times of day. This would allow users to quickly enter the care package data and cut the delay when they clicked ‘finished’ from 2 minutes to a couple of seconds.
Processing now occurs in two steps. The validation step is carried out at the time of data entry, so that the details can immediately be checked to ensure they are correct. The time-consuming calculation step is deferred until 9:00 pm. After all the users have gone home, ContrOCC is working away, completing the whole day’s housekeeping tasks.
Finally, we built continuous performance monitoring into ContrOCC. This means that if there is a dip in performance, the engineers can respond proactively.