Prototyping always precedes any writing of codes. Software prototypes are particularly good when they can be used for testing purposes with people. Prototypes can simulate particular features of the concept/idea/programme under investigation, allowing the software designers to evaluate and modify them. Software prototypes can also be used as demos to show how particular user experiences can be prototyped.