Breaking Radio Silence
I’ve been wrapped up lately in working out some details for a project that’s been simmering in the background for a year and a half that suddenly became urgent last week. It’s a bit annoying in that it’s one of those cases where the requester is hot to get something going, but this person doesn’t control the prioritization of my team’s work. In any event, I’ve been yanked off another project (which is now on hold, pissing off a whole separate group of people) to work on this (at least to the point where there’s a design definition that can be foisted off onto the development team).
But what really rankles me about this is that the requester had already decided on the design, in that they had some code written by another group that could handle this new type of data. Their “requirement” was that we take this code and integrate it on our servers. And port it from C++ to Java as well as migrate it from SQLite to a real DBMS. Hmm… perhaps it’s not quite so ready for prime time as they thought?
Anyhow, I didn’t make them happy by saying that we’d consider their code, but that we’d have to review it carefully before we put it into production. The code is more of a prototype or proof-of-concept right now. We have to deal with several hundred thousand transactions per day on our servers, so we can’t just deploy any old code that someone gives us. Not that we want to “reinvent the wheel,” but we have to consider things that they probably didn’t give any consideration to in their prototype.
It also didn’t help that I’ve insisted on written requirements (shocking, I know…). I was a bit appalled that they’ve been pushing this project for a year and a half and they don’t even have a Business Requirements Specification.
I think the real problem here is that the requester got frustrated about being made to wait and decided to run the project without our input. Now I’m doing the due-diligence on our part, and it rankles them because it appears that we’re redoing work. It’s unfortunate that they feel that way, but there’s no way for me to develop something that works without understanding just what I’m supposed to be developing.
Would you expect a home builder to build you a house without a written agreement as to what he’s building? Most people wouldn’t try to do that, so why do they think they can get away with it for software?
Software’s easy, right? I mean, it’s just code thrown together to do stuff, right? And a database is just a database, and if you’re just not competent to merge two unrelated databases together, then run two; admins are cheap and easy, right?
Not that I’m bitter.
Heh.
Of course, to someone who has never done it, it’s all supposed to be easy. It’s even worse these days with the prevailing attitude that you just need the right “skill” or “resource” for the job. We’re all just a bunch of interchangeable cogs to be bought and sold at will.
And they wonder why corporate loyalty has disappeared?