The software development process is made up of a number of steps which involves selecting a methodology to establish a framework, gathering requirements to understand and document the user needs, building an architecture within which the software operates, developing a design, constructing code, and testing it with pre-planned scenarios, among other things. These steps of the software development process fit into application lifecycle management (ALM), which recycles itself to enable continuous improvement. A crucial part of the software development process is maintenance and support, without which the software may not work to the best of its capacity. For best results, each of these steps should be followed so that the chances of error can be minimised.