We were hired to put several large files on some branded 2 GB flash drives. Naturally, the client ordered the least expensive flash drives they could get their name printed on. In order to give an accurate estimate of how long it would take to copy data to 400 drives, we got a sample and scripted (in Windows) a copy with a verify. The script appeared to run without problems, but when we compared file size, there were discrepancies. So, we changed the script to copy files, create an md5 hash of the files and compare to known hashes for the files. It turned out that, even though Windows was reporting that the copy had happened successfully (even with the “verify” switch), the copy wasn’t happening correctly. After testing for time, we realized we were getting errors copying on so many drives that we had to approach the client. About 10-12% of the drives would successfully copy over about 2GB without errors. Ridiculous. As the developer who wrote the test script said, “If I could get my hands on some of the QC guys a the manufacturer, I think I would physically incapacitate them.” So, back to the client with the news…
The morals of the story:
1. Don’t trust Windows/DOS xcopy and copy with the verify switch. I don’t know how it verifies, but it’s not right.
2. Always test as much as possible, because it turns up issues that no one knew were there. I shudder to think about what would have happened if we had just blindly copied and sent out to the client (to send out to their sales force).
3. Always try to convince the client to purchase the best (within reason) hardware they can afford for the project. Use this story if you have to.