[OT] Musings After Go-Live
- From: docdwarf@xxxxxxxxx
- Date: 23 Jun 2005 08:58:53 -0400
This isn't strictly about COBOL, mind you, hence the [OT].
I subscribe to a listserv for the alumni... alumnae... alumnuoles... folks
who graduated from my Alma Mater; we all subjected ourselves to an
uncommon course of study and some of us still keep in contact. Anyhow, a
short while back - 27 May, to be precise - I posted the following to the
list; since traffic here's a bit slow I thought it might provide a bit of
amusement to those whose job it might be, at time, to deal with such
things.
--begin quoted text:
>From docdwarf@xxxxxxxxx Fri May 27 09:09:26 2005
Subject: Musings After Go-Live
This might take a while... and it really doesn't go anywhere... so some
folks might say it fits right in with the rest of my blitherings.
The project I've been working since November '03 went live at the
beginning of the month. It's a delicate one, a Federal payroll system
that cuts checks every other week for about sixty thousand people and has
a rather primitive design dating back to the late '70s which has been
modified so that it no longer cuts checks but passes data over to a
different Federal agency.
Rules for generating paychecks can be exquisitely simple; the following is
valid COBOL code:
COMPUTE OVERTIME-RATE = HOURLY-RATE * 1.5.
COMPUTE REGULAR-GROSS = REGULAR-HRS * HOURLY-RATE.
COMPUTE OVERTIME-GROSS = OVERTIME-HOURS * OVERTIME-RATE.
COMPUTE GROSS-PAY = REGULAR-GROSS + OVERTIME-GROSS.
.... and they can be horrifically complex... how do you calculate pay for a
float-pool nurse from the Indian Health Service who reports regular hours,
overtime hours, Sunday shift differential and paid holiday time in the
same 24-hour shift? (Answer: it depends on whether they are covered by
the union contract or not.) Add to this mixture the fact that these are
peoples' paychecks being dealt with here, just about everyone looks at
those closely and many are prone to make at least quiet murmurmings if the
numbers are not to their liking.
(Interchange from a meeting: 'You mean we've been paying these folks
*wrong* for the past fifteen years? How did that happen, why didn't
anyone *say* anything?' 'We coded that according to the specs that came
down in the '88 revision... and not too many people are going to say
anything if their paychecks are larger than expected.')
Anyhow... it was a large project and it is has gone live... and
consultants/contractors/hired guns are starting to be let go. I, in part,
am responsible for this... and it makes me feel... odd.
Back in the Oldene Dayse computerising an operation used to make people
*very* upset... The Computer's Stealing My Job! I put this into an
historical perspective... back in the Even More Oldene Dayse the ability
to add up a long column of figures, accurately and in a legible hand, was
a valuable skill. Companies had entire roomsful of clerks, standing at
their stations, totting up bills of lading with their quills... and these
clerks had, by the standards of those days, pretty decent jobs; their
working-conditions were better than those of the laborers, they earned a
better wage than the laborers and they were granted better social status
than the laborers.
Then came mechanical tabulating engines... ummmmm, adding-machines... and
things changed. One no longer needed the mathematical skills nor the
ability to maintain penmanship over extended hours, just needed to hit the
buttons accurately... and output increased, one person hitting buttons
could wade through a bunch more stuff than several folks writing numbers.
What happened? If your only skill was the ability to add up long columns
of figures accurately and present the results in a legible hand... the
machine took your job. Computers seem to follow in this tradition.
Now... the system I worked on converting takes input from four feeder
systems, each of the feeders supplies data in a common format... but each
of the feeders sends bad data down the line. As mentioned above the rules
for paying people vary and what are invalid data for one person might be
valid for another... rather than doing the Work to make sure that these
rules are applied on the front-end to provide clean data folks follow Rule
Number Zero ('Nobody wants to do any work') and send trash down the line.
The folks who receive the trash complain, of course... but the recipients
do not have the authority to cause change on the front-ends and are
subject to the 'touched it last' rule; a pile o' crap gets dumped in their
laps and it is up to them to make sure that folks get paid so folks don't
get upset.
Still with me? What has resulted from this is a sub-group of
consultants/contractors/hired guns who have as their only job the
responsibility of taking the incoming data, loading them to small
databases (Oracle) and dealing with bad data and the resulting
complaints... something will go wrong, someone will file a trouble-ticket
and these folks will look at the data and say 'Oh, Timekeeper Joe sent us
down some trash'... and they'll fix up their data, generate an
extract-file and send this extract back into the main processing-stream to
generate corrections. They're nice people, this sub-group... a small
company composed of Mr Brahmagupta, his wife, her sister-in-law, a couple
of other folks from their neighborhood... all competent in what they do
and pleasant-enough to work with.
Now things have changed. This agency is no longer cutting the checks, all
data are being sent to a different Federal agency... so instead of the
feeder-system files going into these small databases I modified an ungodly
ugly program to be even more ugly - not too large, a bit more than 15,000
lines of code, but what it lacks in size it makes up for in
unattractiveness - to process them and send the data off in order that the
different agency can deal with them.
My code has rendered the work this sub-group does unnecessary. Today is
their last day on-site.
On the one hand... hey, that's the consultant's life, the work comes, the
work goes, time to find another job. On the other hand... my work has
caused other folks to have to look for new jobs. This makes me feel...
odd.
On the third hand... the system went live at the beginning of May and
there are still bugs to be worked out and modifications to be made, some
consultants are being kept on to deal with this. Who gets to stay,
though, depends on what kind of budget can be maintained... and budget
negotiations are slow, delicate things... and in the meantime contracts
for consultants are expiring. This leads to conversations like the one I
had with a different consultant last week:
Him: Heard anything about renewals?
Me: Not a word... as far as I know my contract expires on the 31th. I'd
like to show up for work on the 1st... but nobody can tell me if I'll get
paid if I do.
Him: Same here... well, is there anyone else who can run the jobs you've
put together?
Me: Sure, anyone who can read code... my project-leader and I have been
working together through all of this, he ain't bad at what he does... he
ain't *me*, of course. I try to make sure, though, that anything I write
can be handled by a 2-year programmer... that's just the way I do things.
Him: (superior smirk) That's not always the best for *you*, you know... in
my case it is different, I don't think there's anyone here who can handle
what I've put together.
Me: Eh... 'job security throught idiosyncratic knowledge' isn't how I deal
with things, I pride myself on writing stuff that people will look at and
say 'This is so *simple*... why did we pay him so much to do it?'
Him: (smirk and head-shake) That's one way to do things... it can make for
trouble, though, when renewal-time comes.
Word came down about renewals yesterday. I'm good for another three
months, at the Final Go-Live Farewell Luncheon yesterday the Project
Director told me that this was really a stopgap and that once things
settle there'll be more stuff for me, they want me around for the problems
that are sure to arise when they close the books for the year in
December...
.... the other guy? He doesn't come back on Wednesday.
--end quoted text
DD
.
- Follow-Ups:
- Re: [OT] Musings After Go-Live
- From: HeyBub
- Re: [OT] Musings After Go-Live
- From: Pete Dashwood
- Re: [OT] Musings After Go-Live
- Prev by Date: Re: interesting use of NEXT SENTENCE vs. CONTINUE
- Next by Date: Re: interesting use of NEXT SENTENCE vs. CONTINUE
- Previous by thread: IBM announces Enteprrise COBOL V3R4
- Next by thread: Re: [OT] Musings After Go-Live
- Index(es):