Case Study - Netchaser

The team

The client: Prettys Solicitors of Ipswich.

The developers: Adaptive Image and Gipping Valley Internet Solutions.

The project

Netchaser is a secure on-line debt collection application. Netchaser clients create 'instructions' which represent a debt owed to them. The application then creates out a series of credit control letters to be sent to the debtor. If the debtor fails to settle, the instruction can be moved on within the application to a County Court Claim (CCC).

The Netchaser client can have a single user or multi-user account, which enables day-to-day management of their account, instructions and CCCs.

Planning and project management

The project was managed using an Agile software development methodology which allows rapid delivery of 'iterations' (self-contained blocks of functionality) to the client, for evaluation and feedback. An Agile approach provides the flexibility to be able to cope with growing and changing requirements. A requirement can be brought forward or pushed back in the work stack, with minimum impact upon the project.

Initial UML modeling with Use Case Diagrams provided an overview of the application, and more detailed modeling followed with each new iteration.

We used Rally, a collaborative Agile Lifecycle Management tool, to plan and measure progress. Rally evolves requirements into 'user stories' (a text-based description of a block of functionality from a user's perspective). Tasks, which drive development work were then created against user stories. Any defects identified during testing, and associated fix tasks were handled using the same tool.

Application architecture

The application is built upon a stack of proven, industry-standard technologies, integrated with custom code and libraries developed to provide the functionality required.

  • Zend Server - a high performance, scaleable web application server.
  • MySQL - the database behind the application.
  • Zend Framework - a standard framework, based on the PHP server-side scripting language, and using the Model-View-Controller (MVC) architectural pattern.
  • Custom libraries - code libraries built by the developers to deliver common functionality.
  • Application code - code specific to Netchaser.
  • SSL - provides secure, encrypted data transmission between the user and the application.

We used the Zend Studio integrated development environment as our main development tool. Zend Studio interfaces effectively with Subversion and Rally in order that version control and task-level project management is efficiently integrated.

Key functionality

  • Multi-user environment – A client company can have a single user account, or a multi-user account with administrator and user roles. Instructions can be assigned to a specific user, or left unassigned and handled by any user.
  • Instructions - New instructions are passed through a Conflict of Interest check before being processed, in order to ensure that the debtor is not an existing client.
  • Credit control letters - On expiry of a letter, the application generates the next letter in the sequence, and adds this to a text file for download and printing by Prettys.
  • County Court Claims - CCCs are initiated at the client's request. Interest accrued on the debt is calculated and added to the CCC, and the application generates printable court forms, for submission to the relevant court.
  • XML upload - The client can use an XML file upload interface to upload a batch of instructions. This functionality allows the interfacing of a client's internal systems with the Netchaser application for improved efficiency.
  • Billing - The application generates bill items for services used. Billing information is available to the client through the application, and is also downloaded by Prettys for offline processing.
  • Account management - A client can hand over responsibility for running their account to Prettys, who then access the client's account and carry out day-to-day activities on behalf of the client.

Version control, testing and deployment

Code was tested locally and committed to a Subversion (SVN) version control system. SVN allows collaborative code development with code committed from each developer merged into the code 'trunk'. A full code history is maintained, which allows for rollback if required.

Unit tests were developed using PHPUnit, allowing automated tests retests of key functionality as and when required. Full integration testing was carried out at each major release.

Code was deployed through a sequence of server environments (Testing-Staging-Production) to facilitate testing.

 

ai stamp