1.1. Software Specification
Software will be specified as follows:
1.1.1. Verbal description – a structured English description of the piece of software and its application;
1.1.2. Screen layout -- a simple screen layout, can be done in Excel but must be to scale, setting out the relative positions of data fields, display values, buttons, check boxes, radio buttons, graphical display areas, text boxes, etc. The layout must be annotated as necessary such that the operation of the screen is fully described;
1.1.3. Database table field specifications – listing of each database table including detailed field specifications;
1.1.4. Field entry, field exit and field attribute specification for every field and other programmatic element on the screen layout;
1.1.5. Structured English description of any complex processes initiated off the screen at a level that allows business personnel to confirm that this is the manner in which the process must work;
1.1.6. Full set of representative data to be used for test purposes -- this data must be provided in an Excel format laid out according to the database tables and fields in which the data will ultimately reside. All validation lists must be fully populated. The business must ensure that the test data is FULLY representative of every possible combination and permutation that can occur in the real world;
1.1.7. Any other information in order to fully define the operation of the software;
1.1.8. The Contractor is responsible for creating the above specification in collaboration with the Customer. The Customer is responsible for supplying the test data in a template approved by the Contractor;
1.1.9. Customer and Contractor personnel must systematically work through the specification and test data looking for weaknesses and seeking to break the specification;
1.1.10.Both the Customer and the Contractor must sign a certificate to the effect that the specification is complete, has been thoroughly and systematically reviewed and meets the needs of the business before software development can commence.
1.2 Software Acceptance Testing
Software Acceptance Testing will take place in terms of the above specifications and using the test data referred to above in the Business Simulation Laboratory and in terms of the approach set out in the Laboratory Approach document. Senior client personnel will be given the task of seeking to break the software until it can no longer be broken.
Once the software operates fully in accordance with the specification and is stable and reliable a certificate is to be issued and signed by both parties to confirm compliance with the specification and stability and reliability.
1.3 Software Polishing
It is so that in most cases, once software has been built and the business is able to engage with it in practice that refinements suggest themselves. A portion of the planned time for development must be set-aside to allow for ONE iteration of refinement that is NOT according to the specification during the testing phase.
1.4 Variation Orders
Once a certificate of acceptance is issued any subsequent changes to the software will be regarded as a “variation order” and will require a cost estimate and budget approval outside the project budget.