What did you do about that? Did you talk to those guys? Did you talk to
your boss about it? What did he do about it? If an agreed upon interface
is not respected and modified without discussion and even without notice
then something is seriously, I mean SERIOUSLY, wrong. If it happenens
more than once this is bad enough to raise hell at least two levels up
the hierachie.
I can't talk to 'those guys.' I've tried many times but have gotten no
response. I seriously doubt they create any kind of documentation.
Some of the tables are horrendous, something like 500 columns across,
and with no rhyme or reason in the calculated fields. Example: in one
table there are three calculated fields named 'Start Term.' You would
think that all three fields would return the same value, except this
morning (for the new term) one returned about 2500, one returned 2488,
and the third returned less than 100. I honestly think that the
keepers of the database keep it locked up because they are afraid of
exposing it to public scrutiny.
And afterwards, what happened to prevent further incidentcs like this?
Did those guys update the spec for the database format? Did they at the
very least appologize? Did _YOU_ or your boss establish a better line of
communication with those guys?
Hell, no. Trying to have a conversation with the Lords of the Database
is as futile as trying to fly by flapping your arms.
So -theoretically speaking- you boss doesn't care how you create
whatever results you create. As far as he is concerned you could use
pencil and paper, right? Then you are not a programmer but a data
analyst or data processor who happens to be using some scripts for his
own pleasure.
Exactly right. He's a business type, and couldn't tell the difference
between an array and a scalar to save his live. He doesn't care what I
do as long as it's right, and he mostly leaves me alone. I can go
weeks without doing more than just saying hello. In some ways, it's a
very good work environment because I don't have anyone looking over my
shoulder.
Excellent case in point. In a stable environment you can get away
without much error checking, because errors are infrequent.
Go back to your previous point. I live in an ad hoc world, writing
mostly ad hoc scripts and rely more on technique than checklists. (It
wasn't always this way, when I started I was building web front ends
for databases and paid attention to exception and error checking --
you have to do this building apps for a web server.)
It is in an ever changing environment where error checking becomes a
mandatory survival strategy and where you need to do every error
checking imaginable, so that your scripts will alert you about those
changes right away and pinpoint the cause as detailed as possible.
Actually, there's a difference between querying the database and
processing the data. Once I acquire the data, I can do anything I want
with it, and it's all transparent. Yes, I am frequently surprised by
something that does not turn out as expected (like the transposition
of columns), but I can protect myself against personal error (by using
strict, using warnings, etc.). I can't protect myself against garbage
input, usually because I have no way of knowing that the initial data
import is garbage.
In your first example you were assuming, the grades would be letters.
Had you verified this assumptions by a test in your program then your
program would have told you right away and you wouldn't have to start an
expedition to <quote>discover</quote> the cause.
Yes, you are right. In a perfect world maybe I should have assumed
that grades wouldn't always be characters, but I would still have no
way to know the translation of letter grades to numbers. A is now 6, B
is 7, and Incomplete is 13. Who wouldda thought it?
Do it right or suffer the consequences. Sorry, but your arguments are
very short sighted and your problems at your job are very much caused by
yourself: you keep patching the symptoms instead of addressing the
cause. Well, keep patching. It will keep you busy, but it will never
improve the situation.
Hey, it's a job, and I'm somewhat fortunate to have a job. I know
several IT guys who have been laid off recently. The good points are
that I have a lot of free time, a very non-intrusive manager, the
total freedom to use any technology that I want, a steady pay check,
non-existent stress, and a collegial environment (among the IT guys,
all but me are network and sys admins.)
And if you can't do it, then it's your bosses job to recognize your
problem and assign someone else to fix the reason or to do it himself.
If he doesn't then he is incompetent.
Mostly, my boss cares about not getting complaints about the work that
I do -- he certainly has no desire to acquaint himself with what I do
on a technical level. I'm pretty successful keeping my customers
happy, so he almost never gets a complaint.
CC