Thursday, March 30th 2006
Your tax dollars at work03/30/2006 03:45 PM
I am currently poking through what I
think might be the biggest piece of crap I've ever seen written by a contractor.
Purportedly a Domino app, it... isn't.
During my day job, one of the things
we deal with here is Lockheed-Martin Corporation. One of the larger
IT contractors for the industry I'm in, I am losing whatever minimal respect
I had for their supposed competence. I'm currently nosing my way
through a document-tracking system they wrote for us a year or two ago.
We told them to develop it in Domino, and they did. Sorta.
They really developed it in NetObjects Fusion running against Oracle,
threw J2EE in because they felt like learning about it using our money,
stuck a few pass-thru HTML pages and forms in Domino, called it finished,
and delivered it. The users hated it from the moment they saw it.
It sucks up two entire servers to run. It's slow. It's
OK, let me detail this a little.
My dealings with Lockheed over the last
ten years have been universally bad. I don't know if you've ever
done business with them, but to my knowledge, Lockheed-Martin has basically
no one on staff who knows much of anything about Domino or how to write
apps for it. Where do they get the minimal expertise they have? Subcontractors.
However, since they know nothing about Domino, they also can't seem
to evaluate the relative skill or suitability of said subcontractors, and
all that seems to happen is, we pay more, for less.
For my own projects, I've stopped having
anything to do with them. I refuse to assign them tasks, because
they are dead-set on sucking up all my time (and my contract task hours)
not actually doing what I want, but talking about doing it.
They want to have endless meetings to "discuss my requirements,"
which really ends up being them trying to persuade me that Domino isn't
the platform I want for the dirt-simple applications I usually ask for.
Of course, the real thing is that since they can (theoretically)
deliver applications really quickly in Domino, they can't bill us nearly
as many hours as they like. If forced to use Domino, they talk about
the code much more than they actually write it. For example, a couple
of years ago, they had a task to write a process that would suck up some
XML emitted by an Oracle server and put the resulting data into Domino
documents. Real simple, right? These clowns dicked around with
the project for eight months, a period of time during which we we needed
to add a couple of additional fields that allowed us to track different
version dates of said documents.
"That's not in the original requirements!"
Lockheed whined. "We'll need more hours for that!"
"Well, you clowns diddled around
for eight months on what I thought was a two-week piece of code, and guess
what? Our requirements changed because our business is always
Lockheed couldn't be bothered to fix
the code without us throwing another 200 or 300 hours -- maybe $45,000
worth of time -- at the project and delaying delivery another two months.
I accepted the code, then threw it away.
I have not used Lockheed since, because it's counterproductive. I
can actually write the fucking code faster than I can explain to them what
I want and read all their fucking white papers and attend all their kickoffs
and walkthroughs and design meetings. I just write the shit myself.
So, back to this application. As
I said, it's a pretty simple thing: users input documents which then
have to be routed, approved, signed off, and published to our website.
You've probably written 20 apps like this, right? These days,
you don't even need to write your own workflow, just throw Domino Workflow
at it or any number of other workflow and routing engines you can buy off
the shelf. Hell, I wrote such an app in 1995.
Lockheed managed to screw it up. We
told them this was a Domino app. Did they write it in Domino? No.
It has an Oracle 9iAS back end (why, I don't know -- it's documents!)
coupled through a Tomcat J2EE engine to retrieve and emit the HTML.
I looked through the Domino forms and pages, and do they actually
do anything? No. They exist as containers for code originally
written in NetObjects Fusion, code that looks like it started out life
somewhere else. We told them to write a Domino app, and Lockheed
basically pulled code they had off the shelf, used the bare minimum of
Domino code to meet our stated requirements, took nearly a year to deliver
it, and did the minimum they could get away with to deliver an application
that the users hate and which we can't maintain.
Think I'll just throw the shit away
and go back to the users and ask them, "OK, now, what do you really
My standing comment around here when
someone asks me how long it'll take to deliver an application is, "you'll
spend more time talking about it than I'll spend writing it."
This page has been accessed 41 times.
No extraneous blabber available.