On Programmer Value

chromatic on 2002-04-03T07:14:47

Overheard:

No, we're not going to use (free software package) for this project. Absolutely not. Our customers don't want us to use code we didn't write. Yes, I know (chromatic) wrote it and he works here. No, we've got similar code, how hard can it be to modify it? Our customers don't want us using some (crap) someone else wrote.

What is the value I add as a programmer? Is it truly reinventing another user authentication system, or another database interface, or another templating system?

Do customers really care if their solution is written in C, Perl, Java, Delphi, Objective-C, Python, Ruby, Smalltask, Haskell, or even Visual Basic by a team of coders around the world, a component company, a "programmer" long since fired, some guy who wrote a book on the subject, or the current development team? Don't they care only that it works to their specifications?

It doesn't amaze me that a software project on which I spent six months of my life may not be the most appropriate tool for the job. It will do what's necessary, and I'd enjoy the opportunity to work on it again, but it may not be appropriate. That's fine. Summarily dismissing it because it wasn't written on company time and it's not what the boss had in mind is another. Insulting it (and me) in my presence is even worse.

If customers really cared that the developers at (current company) hadn't invented every last thing we use, we'd have to throw out Perl, Linux, Apache, mod_perl. PostgreSQL, DBI, CGI, Template TOolkit, CVS, SSH, and Samba, not to mention all of the proprietary software. That's a ridiculous argument. Show me a customer who cares about that enough to make a fuss and I'll show you a customer who'll complain about anything you do.

Were I to advise customers on the real issues, I'd bring up things like scope creep, lack of change plans, longstanding design issues that are only addressed when something breaks, and something I'll bring up in just a moment.

My capacity to be amazed is certainly stretching with this job. Who would have thought they'd hire me based on my Perlish contributions of the last year and a half, only to set me on the monkey work of grinding out Crystal Reports reports and making them available with ASP written in VBScript. (To be fair, I have written Perl this week. The problem is, the net is around negative 500 lines, having removed far more detritus than I added. It is now faster, less buggy, and has at least two more features.)

Yeah, I write (crap) code in a language I've never seen before, to a specification that promises things that are physically impossible, with a deadline dropped in my lap on my first day with little explanation, no apparent work from my predecessor, and no ability to test things other than e-mailing files to the client and asking her to install them. The kicker is, I'm good enough at it that I completed the spec to sufficient degree that the client added more work. A monkey could do this, and you wouldn't have to shave him.

I'd say our customers should demand that we don't use our existing software. At least my code works. (It has documentation, too.)


Empathy

VSarkiss on 2002-04-03T15:39:15

based on my Perlish contributions ... [I'm] grinding out Crystal Reports reports and making them available with ASP written in VBScript
Man, that's harsh. Did you offend the gods in a previous life or something? This sounds like the kind of cruel retribution you read about in Roman myths. (Hey, maybe it's all the hubris catching up to you. ;-)

It sounds like you've got a real bad bunch of PHB's there. I'm trying to find something I can tell you that would make things better, but I can't seem to put my finger on anything. Other than trying to find a new job, you may want to say the serenity prayer a whole lot.

Good luck.

Wow. I know the pain.

digiryde on 2002-04-24T02:57:13

I have had two really bad contracts in my life. One, it was an honest mistake and I had no problem with doing the work that I had no experience in (they were also more understanding). The other though, was a differnet issue. I was brought in to help write perl code for a web application. After the first week, I learned the server was not only not ready, but might not be ready for a year. (project was getting stonewalled). So, they put me on a high visibility (as in in front of major clients) application. With a language I did not know well, modifying undocumented uncommented code. To make matters worse, the business unit that was so in need of this code was almost completely unwilling to do anything. I actually had to stand outside their cubicle to get them to talk to me about what they wanted. So, brief specs, no feedback process, no notes, no comments/docs, and a program that had to be done in 30 days with major internal changes needed. Nasty contract!

I hope you get to move on to better coding grounds soon.