Each programming project follows a number of stages from conception to deployment. The problem statement identifies the task to be computerized and describes how the program will behave. An algorithm specifies the steps the program must take and then is translated into code. The code then goes through debugging, in which the programmers find and repair errors. The results of the project are documented and users are trained.