Profile photo for Chuck Sears

Many, many moons ago - pre-Windows, actually - I worked for a company that specialized in downhole analysis. They had a very detailed library of tools that were developed in Microsoft ProBasic. They worked, but they were very slow. When I took the job, there were over 800 open tickets about the software, most of them dealing with the speed issue.

This is kinda long, but bear with me.

Over the next two years, I closed all but two of the tickets and improved the throughput on the application by more than 500%. A job that used to take 15 minutes to run now ran in about 40 seconds. The customers were ecstatic. The overall change that I made was so friggin’simple that I never told anyone what it was, I just basked in the glory.

In the application, there was a lot of looping. In ProBasic, and in today’s Visual Basic, the code would look something like this:

For Index1 = StartValue to EndValue

…bunch of code statements to be executed

Next Index1

However, arithmetic operations in ProBasic and VBasic run much faster if the datatype of the variable is an integer. Much, much faster. And NONE of the indexes were declared as integers in this application. They would simply have a statement like:

Dim Index1, Index2, SomeOtherVariable

All three of these would be typed as double precision. I simply went through and changed the Dims to something like this:

Dim Index1 as Integer, Index2 as Integer, SomeOtherVariable as Long

It took me a while to do it because I had to go through every piece of code and determine if Integer or Long was the correct datatype based on the max value that the variable would ever assume.

Okay. Now we get to the meat of the situation. At the end of my second year, I was given a horrible performance review. It basically stated that I was not following directions and not achieving any progress. I went ballistic. I told my boss that I wouldn’t sign it and requested a second meeting that afternoon. I spent the rest of the day pulling together all my progress reports and metrics and laid them out for him in the afternoon meeting. Turned out that he had ignored every single one that I had filed in two years, but he still insisted that the review would have to stand. I refused to sign it again.

I immediately got on the phone and found a new job, as in starting next Monday. Before I left that day, I spent about an hour editing every single module and I think you can guess what I did. Yep - deleted “as Integer” and “as Long” from every statement. I then recompiled the library, then walked down to the boss’s office, gave him my keys and walked out

View 100+ other answers to this question
About · Careers · Privacy · Terms · Contact · Languages · Your Ad Choices · Press ·
© Quora, Inc. 2025