So what's happened is that somebody had the idea that when the user
enters a number via the user interface, that the entire user interface
context for that number needs to come along with it.
For example, if the user enters an offset distance, the object that
contains this value now not only holds the value, but the units that the
value was originally entered in, the number of decimal points to be
displayed, the scale factor, sign, font, color, domain, filter presets,
list of possible conversions, link to the XML parser, etc.
All I want is the distance. In millimeters. I don't need to know how
many decimal points should be displayed, I really don't care. I'm just
using the number, because I have to do all of the calculations.
Unfortunately, the system architect made the decision to use this
thing throughout the system. I managed to fight it within our
piece, and for good reason, but I still have to do the conversion, and
the way that the interface got changed, I now must provide a user
interface context even though I don't have one.
When I tried explaining this, I got my ass jumped on because "everyone
else is using it, we won't make a special case just for you".
This is a stupid core architectural decision. It needs to be addressed,
but evidently it won't be addressed until later when we miss the
I'm supposed to be integrating with two pieces. Those two pieces keep
changing, because they are integrating with other pieces and having to
fix their code, so when they change it, I have to change my code to keep
up. In industry parlance, it's called "hitting a moving target".
Him: "Hey Rob, is there a library made from your module yet?"
Me: "No, there isn't, because I can't compile."
Him: "I thought your module was done."
Me: "It was, until they changed the interfaces."
Him: "Well, you're holding me up here. I can't link if you don't have a
Me: "Sorry about that, but I can't build a library until I can compile
the entire project. If you want, add the project to yours and take the
object files that do compile."
Him: "I'd rather just link with your library."
Me: "Yes, I understand that, but I don't have a library made yet."
Him: "Well, when do you think you'll have a library?"
Me: "I don't know. It will have to be after [these other 2 modules]
Him: "When will that be?"
Me: "I don't know. So far they've changed every day."
Him: "I thought they were done."
Me: "They were. Until they changed the interfaces. And started actually
using the code enough to realize that it didn't work."
Him: "Well, I don't have any dependencies on them. I just need your
library. How soon do you think it will be done?"
Another good one:
"Oh, we're using the system idle task to do screen refresh."
Hard to really care about any of this. It's just frustrating.