The sections below outline the various stages of the software development process from initial consultation to final implementation.
Note that, if you decide at any point that you wish to stop the process, you may do so without incurring the full cost of the project.
We start off with a summary analysis of your requirements. This is usually accomplished through a discussion of the expected functionality of the software. The purpose of this analysis is to determine an approximate time frame and cost for development (more of a "ballpark guess").
Upon approval to proceed, an evaluation fee is paid in advance. We then do an in-depth analysis of your requirements. This can take from several hours to several days and is accomplished through interviews, fact finding and, if possible, a first hand understanding of the environment in which the program will be used. This is important to determining all software requirements. More...
After the analysis, we are able to put together a conceptual design on paper. This Project Concept is an outline of the project that is based on the previous in-depth analysis stage. It is detailed to the point of providing a road map for continued development. The estimated time needed to complete the project is based on this outline. This extremely important and critical stage makes sure that we are headed in the right direction by making certain that all the requirements have been met, understanding how they will be met, and if the intended method of operation is acceptable to you.
Typically, a more accurate cost is provided with the Project Concept stage. Note that some very large projects may be too complex or lengthy to provide an actual cost and will be developed on an estimated schedule and hourly rate. It should also be noted that, despite the efforts put fourth in the Project Concept stage, changes made by our clients are inevitable - usually resulting in increased costs.
A down payment, in addition to a payment plan, will be put in place prior to the next stage.
After everything is clearly outlined in the Project Concept, a detailed, graphical plan is created on paper. This is the most efficient, and consequently cost effective, method of designing a software program. As this involves the actual mechanics of how the software will eventually be written, technical questions always arise during this stage which will often require input from our client. Identification of issues early on, and in this fashion, greatly helps to produce the most stable software possible.
An appropriate user-interface is of paramount importance. Therefore, a prototyping stage provides a ruff visual (non-functional) representation of the planned user-interface and how that interface will meet your requirements and the comfort of the end-users. This stage is extremely important for determining usability, as it is our design philosophy that the "behind-the-scenes programming" work with the user-interface, and not the other way around. Designed for our clients to actually experience the concept of the program, you will be able to "play" with some of the parts of the interface and may also see some simulated results from the prototype program.
You can look at the prototype as deliberately being all flash and no substance. But it does fulfill it's objective of developing an appropriate user interface on which the, as yet developed, underlying programming will be based. Once feedback has been obtained about the suitability of the prototype, the actual programming will begin.
The process of actually developing the software will proceed during the weeks and months ahead. Status reports will be made available as prominent sections of the project are partially or fully completed. If appropriate to the design of the project, certain sections may be made available for evaluation and testing throughout the programming stage.
During and after software development, testing is performed by us to ensure that everything works as expected.
However, despite all reasonable efforts, actual users will make different assumptions of how to use the program and will invariably encounter problems. Consequently, the final stage of testing ("real world testing") is performed on site by the end user(s). This generally requires that the program be used on a test basis only, while the current methods for performing the same functions remain in place. Prompt support is provided during the real world testing stage and updates are rapidly made available.
Training is typically provided just prior to the real world testing stage. Optional additional training can also be made available after the Implementation stage.
Once the program is functioning as expected, current methods for performing the out-dated tasks will be phased out in a manner that is appropriate to the situation. This is primarily (or entirely) up to the discretion of the company/organization and/or end-users. Other than a data entry period (if applicable), this is usually immediate. However, it's possible that the transition may require days or even weeks.
Initial tech support will be provided during the initial implementation and training period. This, in combination with the training, is intended to provide a solid understanding of how to use the program in addition to addressing any issues that may arise during this stage. Additional tech support for future needs will optionally be made available through a support plan. Typically this is not required as the same assistance can be obtained through a combination of the help system and a skilled supervisor.
...to discuss your requirements.