When starting any new systems development project, it is important to scope out the project and plan how it will be developed, tested and maintained. It is often referred to as a systems development life cycle because often it will be necessary to go back to the beginning once a project is underway, and whilst there are several different variations on which model to follow in a development project (waterfall, v-shaped, incremental and agile), all of them require a lot of thought and input at the planning stage.
What is the Purpose of the Planning Stage?
This is the most crucial phase of any development project. In a nutshell, during this stage, you will decide and scope out exactly what it is that you want to do, and whether a new system is required as a result or whether improvements can be made to the current system. (Or in some cases, whether the existing system is still fit for requirement.)
It will be a long phase, which requires a lot of analysis and evaluation. During this stage, time will be spent considering what the end user wants to achieve, who is going to use it, what do they need to input to get the required output, and what data is required to output etc.
All requirements should be carefully documented, including end user expectations to make sure that everyone working on the project has a clear vision of what they want the finished product to do. Communication at this stage is key; any discrepancies that are not explained or defined at this stage can have repercussions at a later stage, and can add unforeseen additional costs which can threaten any development project.
An estimate of what internal and external resource will be required, as well as full costings for the project should be supplied, so that it can be weighed up to see if there are any other viable solutions or whether the best solution has been chosen.
Why is Planning so Important?
During the planning phase you will need to:
Define objectives for the project.
Establish what resource and budget is available.
Evaluate alternative solutions to ensure that the best proposal is made.
Just as you would not go into a shop blindfolded and randomly pick items for your weekly food shop without looking at the price or what the item was, the same can be said for systems development. If not planned and scoped correctly then the entire project can be jeopardised.
Before signing off on any project, you will need to get a clear understanding of what's required, what time frames you are working to, the costs involved and what resource you will need to supply to get the job done. From a client's point of view, they need to make sure that the time frames expected from them are realistic and that both sides have agreed these before the project gets underway. If a client is delaying a decision, this can have a serious impact on the project finishing date.
It is also key that the full specification is exact to the client's requirements and that everyone is agreed, as if changes are made to the initial spec at a later stage this can have a huge impact on the delivery dates of the project. Most external suppliers will have allocated a certain amount of developer time to your project and often this can't run over as they will be moving to another project. Not to mention that if any change requests are presented after the project is underway, this can affect code which has already been written and will most likely incur additional costs.