defining and understanding the problem
preparation of initial documentation
planning and designing
identification of a suitable development approach
design of appropriate algorithms
identification and incorporation of appropriate existing algorithms
determination of appropriate data structures
identification of relevant subroutines
design of test data and expected output
desk check of algorithms
identification of existing code that can be used
implementing
coding the solution in an appropriate language
testing using test data
documenting the solution, including:
algorithms
test data and expected output
data dictionary
user documentation
testing and evaluating
testing of the solution using test data
evaluating the implemented solution
maintaining
modifying the solution to meet original or changed specifications
The following presentation, which includes detailed speaker notes, discusses these concepts. If you choose to watch instead, the YouTube video below is the same presentation, but recorded and uploaded for your viewing pleasure.