Summarized below are typical software development methods applied to fixed-price projects undertaken by UniSoft. The development methods used are in line with the ISO 9000 standards. Clearly such approaches are somewhat customized towards the client's particular project management requirements.
In order to determine the effort required to undertake the work, and consequently the cost, UniSoft produces a detailed Project Task Estimate (PTE).
PTEs consist of a precise breakdown of the various tasks required to complete the project in a timely manner. Senior engineers produce best, likely and worst estimates are for each task. Engineering management factors in contingency and compares the estimates against timesheet data from previous projects in order to tune the estimates and correct any errors. A Gaussian distribution calculation is then applied on the resulting figures to produce a 95% (likelihood) final estimate.
The PTE is then input into scheduling software to produce a detailed resource plan and project schedule. The cost of the project is calculated directly from the PTE producing a fixed price estimate. Engineering Change Requests (see below) are also subjected to this pricing discipline.
Prior to the start of the work, UniSoft will produce a Statement of Work (SOW) accurately summarizing the tasks to be undertaken by UniSoft and identifying the obligations of both parties. The SOW will include sections covering program management, responsibilities of each party, deliverables, program schedule and milestones, testing and quality assurance and acceptance criteria. The SOW is usually attached to a UniSoft Service Agreement which sets out the contractual terms and conditions agreed between the parties for undertaking the project.
If during the development process, issues arise which have a direct impact on the SOW, it will be the responsibility of the UniSoft project manager to make appropriate changes and revisions to the SOW and to have such changes approved by the customer.
Any hardware or software required by UniSoft in order to perform the work will be summarized and set out in the SOW. Usually it will be the obligation of the customer to arrange shipment and delivery to UniSoft's engineering facility. In some cases, it may be simpler and more efficient if UniSoft acquires such equipment or software on behalf of the customer.
The first delivery is likely to be a project plan, prepared by UniSoft and delivered to the customer. The plan will expand on the project specifications set out in the SOW. During this period UniSoft will set up internal processes and begin to investigate design approaches in more detail.
UniSoft will assign a project manager who will bear overall responsibility for all project activities at UniSoft and final product delivery. This manager will be responsible for:
UniSoft will employ industry standard project management tools and techniques, such as PERT and Gantt charts, technical reviews, status meetings, etc. as part of the management of the project. These methodologies, in conjunction with UniSoft's experience with undertaking test development projects will allow UniSoft to anticipate potential problem areas and allocate the necessary resources to prevent or ameliorate problems.
Interim deliveries will be made throughout the project. This will provide a highly visible measure of progress.
A monthly project review report will be generated by UniSoft and distributed to the customer's project manager. Contents of the project review report will include the following sections as appropriate:
The customer and UniSoft will agree on, and put in place, a suitable mechanism to track faults in each delivery of the software and any appropriate fixes. This usually involves the daily transmission of UniSoft's project bug tracking database in a format that supports searching and browsing of fault reports throughout the remedial process.
A regular project review teleconference call will be held between the customer and UniSoft, either weekly or bi-weekly. Any urgent technical issues will be reviewed during this session and any agreed action items will be generated and distributed.
Joint technical project review meetings will be held at intervals of at least six weeks so that the progress of the project can be reviewed and any issues relating to the project can be discussed and resolved. UniSoft recommends that such meetings take place alternately at each party's premises.
When either company wishes for any reason to change an agreed functional specification or design documentation, an Engineering Change Request (ECR) will be drawn up. This document will specify the change, and the impact of the change on the schedule and on the costs. If UniSoft is required to spend additional unscheduled time on a task due to a dependency outside UniSoft's control, UniSoft will be entitled to raise an ECR.
ECRs and cost changes will be subject to approval by the customer and no work specified by ECRs will be done until such approval is given.
UniSoft typically operates an Alpha, Beta and General Release cycle and such releases are made at appropriate milestones throughout the project to final completion. For projects with development timescales exceeding three months additional "snapshot" releases are provided to the customer. This provides customer access to parts of the test suite during the development period assisting in both test suite and product testing cycles. Snapshot releases are usually of alpha quality. Suitable release notes and other applicable documentation will accompany each release. This cycle will provide ample opportunity for the customer to review and comment on the product prior to final acceptance and General Release.
Following internal completion of each project deliverable, UniSoft will perform extensive system testing and quality assurance testing before releasing code to the customer. Full details of the approach to be applied will be set out in the Project Plan.