I have the impression he is a college student, and that in itself, says a whole lot. In the real world, IT has to do things in stages, and sometimes it can be a hardship. Example, if you have a data management program for several hundred employees. It handles work orders, purchases, inventory, and time management. It also runs in DOS. It can take years to evaluate replacement programs since they are always changing. Even when a program is selected, all existing data has to be transitioned, which can take months of dedication. And you also must begin the training. First the administrators who will work directly, must be trained, then the clerks who do the most input, so they can install all of the old data. From there, the training trickles down. And as you go, changes must be made due to discoveries of issues. Then retraining, etc. You can be 2-3 years in transition. And think of all the number of dedicated programs that large organizations must use. And the government often has to have special programs written for various purposes. If the intitial request is not spot on, millions can be spent with no useful result. Often, you can have a reputable vendor make promises, and then if they cannot deliver due to programming complications, you have lost several years of work, you will spend another few years in litigation, and then you are back to square one. As example, here is my story:
August 2007, given marching orders for among other things, an upgrade to the plant operating system.
January 2008, Hired the engineering firm. Gave them my narrative for the control system.
May 2008, Selected the controls contractor. $100 lower bid over several hundred thousand got us a contractor with a good reputation, but no experience with our general contractor or with our construction manager.
January 2010, Scheduled startup. Every other area of the contract was ready to go, but the control system was not ready. Contractor had placed his son in charge of programming and nothing was right.
August 2010, Finally started up, without all the issues resolved. Operated for a few days before the contractor screwed up and forced a week long shutdown to make repairs to equipment caused by the screw up.
September 2010, Son was banned from the plant.
November 2010, Contractor was removed from the job after the legal notifications and meetings with the insurance company. Another contractor was called in to make emergency patches.
April 2012, Negotiations are still continueing with the insurance company to get a replacement contractor to rebuild the system. The hardware is good, but the software is infuriating bad. The next contractor will have to build a whole new program and then replace the existing software. It will take months of hard work. Plus the old contractor had a bad tendency to not want to work with out existing equipment. Until we put a stop to it, he had us spend thousands on equipment because the contractor said it wouldn't work right with the old stuff. One of the items was a couple pump units that were replaced with units that have given us a fair amount of problems since we have installed them.
This is reality. No matter how good a project team is, it often boils down to the level of the worse person. And the more complex the issue, the more problems you will encounter. This is why the young engineers are in the field for most projects. It is hard on us older people to deal with these dramas on a daily basis. Add to that, going from a known and established software program to an unknown, with unknow issues, and programmers not as familiar with it. Life is chaotic and you must deal with that. Sorry to get so far afield, but it happens.