Development Process
Before contracting with someone to develop and build a project for you, you should understand their development process and what their deliverables are. You do not want any surprises when the project is turned over to you; it should be what you want in terms of appearance and performance. Generally, just giving a developer some simple instructions and an example will lead to disappointing results.
My process is designed to deliver what you want in a timely manner, and I constantly look for ways to improve it both from keeping up with good programming practices and from monitoring the results of my projects. Briefly, when I develop a project I go through the following steps; how much time is spent in each one depends mostly on the size of the project.
- Create an initial plan. This produces a document specifying the various deliverables, such as a detailed application description, a set of API documents, the actual code, and installation instructions. Some things I produce as a matter of course from the way I write code; you may be interested in other things. This is when they should be specified.
- Create an application description. This details the project requirements including but not limited to functionality, layout, and deployment. Depending on project complexity, it will likely include a mock up of the interface. It is important to reach agreement at this stage to avoid rework later. Rework results in delays and bad code.
- Build the project. Of course this is what you really want; everything up to this point is preparation, but without the preparation you will not get what you want. Again depending on the size of the project, we may agree to produce the project in pieces for your review. The more you are involved as the project progresses, the better the chances that you will be happy when it is finished.
- Turn over all deliverables. Since the process is interactive, there should be little at this point that you will not have seen. This ties everything together in a nice package that you can give to another developer if you so desire. Of course, I will keep a copy just in case something happens to yours.