Wednesday, April 16, 2008

** RANT ON **(if your a client of mine, wouldn't recommend reading this -- this could be about you!)

Ugh. Heading into "bitter client" territory again. Happens a lot, mostly because I'm the "guru" -- and you only hire a guru when you don't have one. If you have a company without gurus, you tend to have problems: a company I began working with had no Subversion or source control system at all (!). That changed pretty quickly due to necessity + there was no way I was going to do the "hey stop editing files on the ftp server so I can get your changes!" dance I've read about at TheDailyWTF. Not *even* if they were willing to pay for me to sit around and twiddle my thumbs.

Another more serious problem I just noticed was that they don't have any kind of QA system in place. Oooh, yeah, I had a cloud full of "?!?!" Metal Gear Solid-style over my head when I realized one of the designers was testing a product. Bug reports were sporadic, didn't include steps to reproduce, and some bugs were missed entirely (but I fixed those anyway). All the bugs tend to be pretty minor (formatting issues, form validations) because I've got a keen eye and typically kill the "big" bugs as I'm writing the code. But, nobody writes bug-free code. That's why you need QA -- a bunch of motherfuckers that try to wreck your shit, and when they do, can give you a very detailed process on how they did it.

You ever get told there's an "error?"

Yeah.

"Error."

(I've always wanted to use this image!)

Anyway, I can't blame them too much. It's the typical growing pains of a software company -- one that has been working on small projects for most of its lifetime, then deciding to branch out into mid-sized projects.

But.

One thing that seriously annoys me is how clients are handled. For awhile (I don't know if they still are) they were pretty hands off with clients, meaning they weren't pushed for solid answers, or made to walk through the entirety of the site, or whatever causes a client to, the day before the site goes into production, go, "hey, this is all wrong, what were you doing?!"

This only affects me because that shit rolls downhill, so all of the sudden it's "hey man SUPER EMERGENCY #24241, we have stuff to do that should have been done a week ago but the client never bothered t o peek at the site until just now and we didn't really want to press the issue but anyone now you have to GO GO GO GADGET RANGERS."

Man. I never dreamed I'd be making that many relatively untested changes to a system that was due to go into production the next day.

I should have introduced them to weekly cycles and feature freezes. If you make any significant changes, deployment to production is pushed back a cycle -- that's enough time for QA, and for the client to make more outrageous demands in the meantime. Make sure the customers know about it, so you can finger them as the delay when it happens (and it will).