Application Development

Our main stock-in-trade is the development of bespoke database solutions for customers. For the simpler project our method is as follows:

  1. Conduct an interview to determine the business requirements of the software, and agree an approach to a solution. 
  2. Write a detailed specification of what is required.
  3. Agree the specification, price, and delivery timescale.
  4. Develop and deliver a system that meets the specification.  
  5. Provide bug fixes and minor enhancements, and thus ensure customer satisfaction. 

For larger project it is necessary to spend more time on the specification, including a detailed database design and user-interface prototyping. These need time for both you the customer and ourselves to consider. So we usually conduct this specification phase as a mini-project in its own right. We will agree a fee to cover this work, of approximately 25% of the total development cost.

The development process is as follows:

1. Project Objectives – Preliminary Planning

First and foremost we must identify the objective or vision of a project. What business issue does it aims to resolve? What is its scope and budget? What benefits will the solution provide the company? What is the return on investment? Who will sponsor the project within the company?

2. Business Process

We then look at what facilities the system must provide. How will it affect the existing business process? What changes are required to working practices?

3. Requirements Definition

We build a concise list of testable requirements for the system: what it must do, how well, and within what technological constraints. This normally focuses on the functional requirements of the system (the “what”). However issues such as performance, reliability, and extensibility of the system must be addressed as these have major impact on the cost of any solution adopted.

4. Architectural Design

An architectural model of the system is then constructed. This identifies the main server components (software and hardware), interfaces to the outside world, legacy systems and peripherals. We consider the number of users, the volume of data stored, transaction performance, reliability and other system attributes that affect the design of the system. At this point the system hardware and software can be identified and priced. Some technical feasibility work may be performed to eliminate various technical risks in the design.

5. Conceptual Design

The next task is to design a logical data model for the proposed system and to perform a first-cut design to ensure that the basic logical design of the system is conceptually correct, in both the eyes of the developer and the customers. A series of walkthroughs are usually conducted to "validate" the design at this stage. The point being to recognise any misunderstanding or inadequate earlier requirements definition. Possibly the user interface to the system will be mocked up at this point, and some real data entered into the database. Once again we find that the future users of the system are more likely to understand the proposed system if they can see real data, data entry screens and reports (even if these are just mock ups).

6. Detailed Design

Some further detailed design may then be necessary according to the size of the project. This usually consists of fleshing out the algorithms of the system, verifying the detailed design matches the conceptual design, and ensuring that all the requirements mentioned earlier have been satisfied. If any data-take on is required this is usually performed now.

7. Coding and Testing

The system is developed, and the various components tested and integrated with increasingly sophisticated and large scale tests. Once we believe the system is functional - i.e. we have completed our system tests. A series of user acceptance tests are conducted. Once again this validates that the system is ready for deployment.

8. Configuration and Deployment

The system is configured for use, users are trained, the various maintenance procedures are put in place. At this point the customer's business process will change with the adoption of the new system, so users must be adequately prepared and trained for the change over. User guides and help files may be produced at this stage.

9. Go Live and Maintenance

We will help the customer go live with the new system, ironing out any (almost inevitable) last-minute hitches. From then onwards it is a matter of monitoring the system is working optimally, and delivering bug fixes and program enhancements in a timely and transparent manner. Updates will either be performed by ourselves, possibly using remote administration software, or with supplied instructions by a competent local system administrator.

Anderson Software Home. 01908 236807.