To: Richard Dunaven who wrote (1494 ) 12/9/1997 12:27:00 AM From: TEDennis Respond to of 3391
Richard: Typically, a pilot is run specifically to validate that the tool will perform as the vendor says it does, and that it will work in the client's unique environment on the client's code. The pilot project is usually an application that is relatively easy to 'disconnect' from the rest of the site's production environment, and thus has no physical ties to other applications at the site. This is primarily to allow an 'end-to-end' test of the tool and process. It's extremely difficult to isolate a chunk of code that is shared among various applications. Typically, you don't run pilot programs on critical applications. Those are the ones that run your daily business and usually are interrelated with several others. So, for pilot purposes, the smaller the better. Legacy applications have been around for many years and therefore have had many different programmers dreaming up many different ways to handle date situations. Some techniques were invented to save disk space, some were designed to conserve CPU cycles, and some were made cute just because a programmer wanted to do something different. If you're really lucky, the site had rigid design guidelines that had to be followed, so all the code will look and act the same. You'll find that in sites like the government where there's more bureaucracy than productivity. A medium to large site (10 million lines and above) will have several major applications in production. Some will have been built in-house. Some will have been acquired from software vendors. Some will have been acquired as assets of another firm that was acquired. All will have different coding techniques and naming standards. Some will have common date subroutines while others have various inline code to perform basically the same function. It's not unusual for a pilot application to run successfully and then run into gotcha's after the contract has been signed for the rest of the site's applications. This is particularly true of the 'factory' type solutions where the code is shipped offsite, converted by the vendor's tool, tested by the client, and then accepted as a viable solution. What the client doesn't know is how much scrambling around went on behind the scenes to get that code to convert cleanly so the salesman could close another deal. It happens all the time. The pilots of mainframe based solutions are held right there in front of the customer for everyone to see the dirty laundry being cleaned up. So, the client is more apt to see the gotcha potential than with the factory based solution. By the way, I'm a firm believer in maintaining code in the environment where it executes, which in the case of legacy applications, is primarily on the mainframe. If a site only has one application, then there's a good chance that the coding techniques will be similar throughout. In that case, the likelihood of a smooth conversion for the entire site is greatly enhanced. Unfortunately, the reality is as I stated above. You have a mish-mash of coding styles and standards. I hope this helps, TED