The customer is normally very hard to please and if given a chance would ask for more than what they were actually paying for. As such the evaluation phase is contractually very important. It allows the developer and the customer to decide if the project was successful or not. To reduce arguments there are a number of specific criteria that need to be looked at before the system is designated as a success. Those criteria are -

  • Requirements
  • Performance
  • Usability
  • Robustness
  • Cost

Requirements - Does it meet the functionality set out in the requirements specification? It must meet every requirement in order for the system to be considered a success.

Performance- Does it respond in a timely manner for the user. This can be subjective so performance criteria are normally put in place to prevent arguments. Certain complicated processes will be given a time frame which they must respond. For example a search in a database should not take longer than 30 seconds.

Robustness - There is nothing worse than software that crashes all the time or is bug ridden. Robust software is a fundamental requirement for all systems. He level of robustness depends on the type of software. For example if a word processor crashes it is annoying but not critical as the user should be saving regularly. If a air traffic control system fails then the effects could be devastating.

Cost - has the project come in or under budget? Systems which cost more than expected are rarely seen as successful. Extra costs would normally be carefully negotiated and could end up being absorbed by the developer.