I'll just step aside today and let Jeremy H share one of his WTF moments, It Must Be Broken ...

At my previous job, I worked on a team that built automated scanning systems.  The software controlled a motor that moved the scanning head over the piece of material, took data points in a grid pattern, and fed the results into the data acquisition module of the software.

I was responsible for the data analysis and flaw detection portion of the system.  Once we had scanned a piece of material, I ran through the data points, compared each to a set of criteria, marked them good or bad, and as a last step, determined whether there were enough bad points in a small enough area to constitute a reject.

While the software was doing this analysis, it popped up a window that said "Analysis working ..." and counted down a progress bar.  When it was done, it closed that window and popped up the results window.  Initially it took about one minute, depending on the parameters the customer set up and the size of the data array, which depended mostly on the size of the part being scanned.

Customers commented on the slowness, and I realized that I could do most of the analysis during the scan, when the processor had a lot of free time.  I reworked the software to do "real-time flaw detection", working on each line of data as it was acquired.  Once the scan was done and the progress window popped up, the analysis routine only needed to consider the final line of data and then was done, so the progress window disappeared very quickly and the results were displayed.  I was happy with my code, and our customers were pleased.

Except one.

The customer complained that the analysis was "way too fast" and "must be broken".  They were especially concerned because the analysis appeared to take the same amount of time no matter how much data was collected.  I tried explaining the changes I had made but they were unshakeable in their belief that the analysis "couldn't possibly be that fast."  They couldn't seem to understand that the analysis was taking place WHILE the scan was going on.

Just to be on the safe side, I spent a couple of hours verifying that the analysis worked the same as before.

The solution, naturally, was to add a delay in the progress bar (for that customer only) so it spent a full ten seconds counting down, longer for a big data array.  Now they were happy.

Six months later, they complained that the analysis was taking too long and could we speed it up.  I cut the fake delay in half and they were overjoyed.  It was not my decision to charge them $5,000 for "optimization and refinement of algorithms".

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!