We cannot afford the luxury of taking months to carefully consider all the angles and obeying all the rules. We have to do something not know in Corporate America, we have to make decisions based upon minimal information quickly and accurately, and then stick by those decisions for the duration. No matter the solution selected, you will still have to take inventory of your applications, find the source code of all programs, identify and correct all date calculations, recompile all these changes and then test to make sure that what has been changed is correct. Even if identification and correction could be reduced to zero, there is still a tremendous amount of work remaining in the area of testing alone. There are no real guarantees the work performed will be 100 percent error-free.
Programming is an exercise in human frailty.
Mistakes will be made, so focus on making sure the key business processes upon which we depend are as error-free as humanly possible. There are no real guarantees that staffing levels can be maintained through the life of the project. As demand for programmers grows, it will become more likely that key people will be raided from projects and become more difficult to replace. These HR issues must be taken into account in all project plans. You cannot outsource responsibility.