Log in

No account? Create an account

Previous Entry | Next Entry

Guffaw (nerdy)

One of the customer complaints about the previous product was round-off error, where the user would enter a value (say 30 km/h) that would later be displayed slightly differently (say 29.997 km/h) because of round-off error.

Very early on in the project, I mentioned that this error was because the old product used integer math, and we could avoid this problem by internally converting to millimeters (for linear units) and using 64-bit floating point representation to handle the values. This is not only built in to the language, there is a 64-bit floating point coprocessor in hardware, so it's very fast.

Well, they didn't listen to little old me. They spent something like four months and several developers (figure 1.5 man-years) coming up with this complex units system with something like 11 derivative objects with a total of over 200 methods to handle the conversion of data from one unit to another. It still isn't done, and it has been holding up development because it is a core piece that everybody is supposed to use across the system.

I consider this to be a problem. For one, it's holding up the development of the rest of the code. And when I had to cancel my trip to the Bahamas because they aren't letting anybody go on vacation because the project is behind schedule, I get a little frosty.
For another, when I want to do a comparison on a measurement, I have to not only get the measurement (which is a long involved process in and of itself involving data objects, factories, keys, and readers), I have to call the overhead of this whole units system. And considering that several of these measurements are changing at a rate of 200 milliseconds, this is not an insignificant thing.

Yesterday, I argued that it isn't necessary. For my purposes, I don't care whether the distance is measured in inches, meters, or frog butts. As long as the distance is consistent, my code does what it supposed to do. (Yes, I actually had to argue this point with a senior developer on the project.)

Today I wrote a program in half an hour that shows that the 64-bit conversions have no rounding error within the limitations of the system.

Of course, since they have spent so much time and effort developing this units system, it would be a shame not to use it.


I changed my code. I'm not using it.

Shame, shame.


( 6 comments — Leave a comment )
Oct. 21st, 2004 08:54 am (UTC)
Wow. They're really idiots, aren't they?
Oct. 21st, 2004 09:15 am (UTC)
Hmm... not really the right word. None of them are stupid, they just seem to have this thing for making everything huge and complex.
Oct. 21st, 2004 09:22 am (UTC)
Gee sounds like the government!!!!!!!
Oct. 21st, 2004 08:58 am (UTC)
I consider the maintance costs and just shake my head.
Oct. 21st, 2004 09:15 am (UTC)
At least I don't have to be the one to maintain it. :)
Oct. 21st, 2004 09:35 am (UTC)
( 6 comments — Leave a comment )

Latest Month

April 2012


Powered by LiveJournal.com
Designed by Tiffany Chow