Incremental vs. Single-step Changes - Be sure to consider whether your budget and staff can really accept a sweeping, fundamental change before making a decision to use such an approach. Choosing to improve your current system through incremental improvements can offer advantages such as:
However, if the current system has very serious deficiencies, it can sometimes be cheaper overall to accept the expense and trouble of a complete, sweeping, single-step change. If the current system is fundamentally mismatched to the organizational needs, it is possible that no set of smaller incremental improvements can substantially improve the utility of the current system without introducing problematic complexities.
Need for staff involvement - Be aware that a software development typically requires an intimate collaboration of key members of the client staff. It is very rare that a developer can take your initial input and then provide a suitable application without this type of input. The input of persons intimately informed about the nature of your operations will be required to ensure the final system really meets your needs.
Impact on staff time - Very few (perhaps no) developers will be able to make sound decisions about all data and details of automation your organization needs. Be prepared to devote the staff time required to answer important questions from your developer. This time can sometimes be substantial. Be sure your developer provides you some type of estimate of the time that will required from your staff during initial project evaluation. You'll need to find some way to ensure that adequate staff time is provided.
Lengthened Timelines Due to Conflicting Client Staff Responsibilities - It is very common for timelines to be extended due to lags in response time of client staff to important questions. It is not uncommon for a development effort that is projected to take 80 hours of developer time to require several months of calendar time due to this. Be realistic about the effect this can have on your project timelines. Client staff typically have many responsibilities in addition to support of the development project. It is rare that needed staff members can consistently respond immediately - yet there are many situations where your developer will not be able to proceed without the requested information.
Reliability of Initial Cost Estimates - It is very difficult to reliably predict software development costs and timelines at the onset of a project. Even companies with enormous techincal resources such as IBM and Microsoft routinely deliver products with higher expense and longer timelines than originally estimated. If you want a truly reliable set of estimates at the outset, be prepared for a fairly involved evaluation process at the start. There are many details that can have a major impact on these estimates - many of them touching areas that may have escaped your consideration prior to contact with a developer. Studies in the software development literature repeatedly and typically conclude that the major reason for timeline and budget failures is that the initial estimates were based on inadequate evaluation or wishful thinking. Be prepared to spend the initial evaluation effort needed to avoid this situation.
Thinking Before Implementing - Many studies in
the software development literature confirm that there are
substantial cost benefits to spending a lot of effort
clarifying needs and plans before starting actual
hands-on
work on a new system. Mistakes in
development planning typically cost much more to
correct when they are discovered later in the development process.
Be prepared to be involved in early development planning to
avoid this additional expense. It will pay off in the long run.
Readjustment of Project Plans - It is very common for details that were not fully understood at the outset of a project to become apparent at a later point in the development. These revelations may result in additional expense or lengthened timelines. Be prepared to discuss such issues with your developer as they arise. Be ready to consider changes in project priorities that may be required to meet your available budget or imposed timelines.
Choice of Software - Avoid the temptation to decide what software you want to use before your development project starts. The best time to make such choices is after a thorough evaluation of your database needs is completed. It is common for this evaluation to reveal important functional needs that indicate one set of software to be fundamentally more suitable than others.
Employing a Separate Evaluation
Project -
It can make a lot of sense to engage a developer in a systems
analysis
project before you make a final
decision to proceed with a new system development. In many cases,
the full complexity of the development is not clear until
after this analysis is completed. In addition, this
analysis may reveal the desirability of using software that was
not previously envisioned. In such a case you may want to seek a
developer who has expertise in that software - the contractor
employed in your analysis may not be skilled in the
software that makes the most sense. If you use this approach,
make sure your system analyst is skilled at producing the types of
documentation that are commonly used and widely understood among
developers. It may also make sense to confirm that the hired
analyst is comfortable providing you with recommendations to
use software that they themselves are not skilled in.
Data Transfer Expenses - Expenses associated with transformation of data from your existing system(s) into forms suitable for import into your new system can be considerable. It is common for these expenses to be as large as the expense of the basic development of the new system itself. It is also common for the magnitude of this effort to go unrecognized during early project evaluations - even though the expense can have a substantial impact. Make sure your developer has looked at your existing data in sufficient detail to provide a fairly reliable estimate of these expenses.