Before you build a complex system — it is best to ensure the task is understood well. It is better than having to redo it later. For this we use a number of techniques, from early prototyping to detailed specifications with screen designs and algorithm descriptions.
