How many times have you heard (or told) stories about system that can't be upgraded because it only runs on [insert your outdated operating system version here]. Or, we can't do that worthwhile project because the [insert program/script/report name here] won't handle the capacity and we can't [spend the time or money to] fix it. Frequently you find that, in the scheme of things, these are small programs, written years past with the best intentions. The long term issues were just unanticipated.
- Will the project get done on time?
- Will it work properly?
- Will the implementation go smoothly?
Frequently, however, we ignore long-term risks like:
- What if the underlying technology becomes outdated/unsupported before the project outlives is usefulness.
- What it this is needed beyond is projected lifespan/capacity
- What level of additional complexity will it add when we change/update systems
- How will it limit our ability to react to changing conditions
We manage the short-term risks because they are typically known, and the project won't be a success if we don't. We ignore the long-term risks because it's a small project, its impact appears to insignificant and the expense of mitigating those risks does not seem to be worthwhile.
Unfortunately for some small projects, the impact of its failure grows over time, and the long-term risks become very significant.
On small projects try to ask yourself questions like this:
- What will the significance of the this project be if its use grows over time?
- What will happen if we have to change program this frequently ?
- What other systems depend of this program, what happens if their significance changes ?