Some days more than others I get ambivalent about the “industry” I’m in. Today was one of the more than others days.
One of my clients who provides what’s known as “local internet” marketing, which is using the internet to market businesses to the markets local to their operations such as a restaurant or automotive garage might, uses this here WordPress software a lot. Not the site we’re on now, but the software that makes it happen. I’ve bitched before about how sad a work it is, and now it’s about how sad the state of their plugins universe is. But it’s also more than that. Much more.
While WordPress as we see it here is just another blogging application, there are plugins available that can make it into what’s known as a Content Management System (of sorts) for a non-blog web site. There are all kinds of plugins that ostensibly provide just about every darn thing you can think of for a web site to do. One of the many problems is that these plugins quite often conflict with one another so you might have, say, a super duper slide show plugin and an events (like seminars, concerts, and so on) plugin that refuse to live together in the same installation of WordPress. You can run one or the other, but not both. That would suck, if you were in the business of promoting events and really wanted a slide show so you could be like all the cool kids whose sites have them. Sometimes you can work around it by selecting a different plugin that provides essentially the same functionality, sometimes you can’t. When you can’t you end up just keeping the one that’s most vital and ditching the other(s). Which, again, sucks. The platform says to you that you can be this and that and that, but not always. Sometimes this precludes that. Don’t bitch because it’s free. Or don’t bitch because it’s cheap. Or don’t bitch because it’s open source and you can fix it your own fucking self. (I’ve never seen an open source operating system that presented such conflicts and said that one should not bitch. I use only open source operating systems, and the big daddies of ’em all, at that. They fix their bugs.)
I might be biting the hand that feeds me here. If the WordPress.com people are assholes, they’ll knock me clean out and no one will know why I disappeared. I trust them not to be that kind of asshole. Anyway:
This client of mine had just such a conflict a couple of months ago, and it just happened to be with a slide show plugin. The thing just didn’t work. It worked great for lots of other sites, so there was some kind of conflict going on. I looked into it, and nothing quickly jumped out at me so I suggested that it’d be faster/better/cheaper to create a new plugin from scratch. I can do it, as I have all of the foundation skills necessary, but I’ve not written any WordPress plugins yet and would have to study a bit. A third party developer was contracted instead, which is just fine by me. Though I’m eventually going to have to become more WP fluent, I’m dreading it because of the conflicts problem that I’d rather never face. That’s why I don’t write Windows software. The support burden is just too great. Why work hard to let people down?
The new custom developed plugin finally appeared today… AND IT CONFLICTS WITH OTHERS ON THE SITE. 😦 😦 😦 It just doesn’t work at all, though the demo on the developer’s site mostly works. Not completely, but mostly. My client wondered if I could take a look, because the developer was asking for authentication credentials to login on the server where the site lives so he could look for “permissions problems”. Gimme a fucking break! It ain’t permissions, fool. This server is professionally administered. Luckily, my client contacted me instead of giving up the keys to the kingdom. It doesn’t always work that way, but I’m glad when it does. So I read the email from the client, and:
I looked a little closer after that. I didn’t look closer before not because I was lazy, but because it’s hard to debug small things in a script when big things keep it from working at all. When I went to scroll the page using the mouse scroll wheel, the page didn’t scroll and the slide show stopped. The pause button underneath the slide show changed to a play button. WTF? I didn’t pause the thing, I just scrolled my mouse wheel. I clicked Play. Nothing happened. In a custom WordPress plugin that my client paid real dollars to have developed. WTF.
Five minutes later I had it fixed. Now, if you move the mouse pointer over the slide show and tickle the scroll wheel the slide show scrolls manually through the images, but if you move the mouse pointer outside of the slide show and scroll, the page scrolls. Also, the Play button works. I’d have had it done in two minutes, but it was a bit of a process to figure out to which element the scroll wheel should be bound. So, five minutes. BFD. Two minutes versus two hours I might cry about, but two versus five minutes is no big deal.
Then I took my changes out and left the site semi-busted. The slide show goes as it should, but if you scroll the mouse wheel the second and third problems still occur. I think it important for my client to see those things, and also to have the option to put the problem back on the original developer’s desk. It’d be a service to him to have the opportunity to learn by his own brain sweat, as those are the lessons that stick the best. If someone fixes your mistake you’ll make it again, and again, and again, but then remember, “Oh yeah, that other guy fixed it and I have to do what he did”. If you expend brain sweat fixing it yourself, you never make that mistake again because the thinking that got you into it comes back as a painful memory.
I know that because I’ve been on both sides of it. The best teachers are those who guide your suffering rather than reiterating the lessons and finally giving up the answers out of pity or impatience. Besides, rote learning is for pussies who can’t stand brain sweat. Pussies of that sort have no business being in my business. That’s what the military is for. (Don’t give me any shit about that. I’m an honorably discharged vet.)
I’ve given the client the option to get it done quickly by having me upload my fixed file, or to do the other guy a service and fall back to using my fix if he can’t stand the pain.
And that it happened just pisses me off. My client paid this guy in real enough money, and if he’s going to hold himself out as a professional he should know more than he does. It’s poor form to hang your shingle in the hope that you might be able to figure some shit out in a hurry when you need it. Well shucks, I ain’t never done me no brain surgery before but I got me a hacksaw and a box cutter. How hard could it be? A little hack here, a little snip there, an’ fuckin’ A man, there’s lots o’ money in it!
Update: The client asked me to install my fix. It works properly on the site now. 🙂 It’s cool when you can be a hero for doing easy shit.
That client who was a prospective client many moons ago but who had to learn some more before coming to accept my rates? He spoke yesterday to the clowns I’m replacing, and they agreed that they aren’t really equipped to do the kinds of things he’d specifically contracted with them for four months ago to do. Things I or anyone else qualified to take on the contract would be able to accomplish in two days. Four months later everyone was frustrated and all of the motion that had seemed to be progress was actually progressive failure. Things were getting worse rather than better. Obviously, they just hung up their shingle and hoped to figure it out as they went along. That pisses me off.
Another client who’s been with me for a while is looking to build a pretty new web site, and I’m not a web designer any more. I can do it, but I don’t like doing it because web design clients can be real pains in the ass. I like writing software because all anyone cares is that it works, not whether or not the logo pops enough or if the font looks fresh. The logo and the font are someone else’s problem and I’m happy to leave it to them. This client met with a local ad agency who has a deal for them that includes the ad agency’s own system, shopping cart, and server — with a two year commitment. I smell a one trick pony, and those people piss me off, too. Maybe the client needs a different trick, but these clowns only have the one and will sell it like it’s the perfect fit even when they know it’s not. They’ll sell that one trick over and over again, knowing full well that they’re going to end up after the check clears trying to convince the client that he doesn’t need this or that anyway, but if he insists upon it it will cost extra. (And if he pays for it, they’ll more likely than not screw it up, and just let the guy out of his commitment. Sorry, no refunds. You chose to break the contract and it’s damn nice of us to let you out without payment.)
So tomorrow they’ll talk with my other client who just got stung by that third-party developer, and I hope they end up putting something together. My other client obsesses over things at least as much as I do, and thinks reputation is worth more than dollars just as I do. It’d be a good thing.
I’ve seen these kinds of failures over and over again, and what pisses me off the most about it is that these people are all too common in my field. I find myself all too often, in discussions with prospective new clients, knowing in my gut that they’re viewing me as one of those other clowns. That guy who just spent four months paying my predecessors to add bugs to his software told me many moons ago that his biggest problem with my rates was that he’d never had a good experience with a developer. Meaning: If I’m going to get screwed, I’m not going to pay too much to do it. Second meaning: I’m gonna run right out and screw myself with someone else’s dick, and blame that someone else for it when it hurts. Either way, the guy gets screwed. If he’d instead just heard my explanations about why things are the way they are in my industry and trusted me, we’d both be a little bit richer today.
I don’t mind that he went and paid someone else to do him dry and dirty. I warned him and he chose to pay someone else to prove my point. He deserved it for not accepting that rare commodity, good advice freely given. I really don’t care whether or not I land a new client today, or this month, or even this quarter. It’s nice when it happens, but it’s not at all painful when it doesn’t. My problem with the cut rate Wal-Marketers of the world is not that they’re cheap, but that they lie. They fucking lie through their shit stained teeth, telling people that they can do the same job I can do for some fraction of my rate — they convince people to believe that they can get fully professional results for less than professional prices. As if they’re not charging professional rates because they’re some kind of humanitarians whose kids thrive on dirt and belly button lint and whose mortgages are paid in dried leaves from the yard.
That’s what pisses me off. They’ll fucking lie, and in so doing give people reason enough to believe that I will, too. If I charge more it’s because I’m a more accomplished liar, the thinking goes. As if the clients who’ve been with me for years are just lazy morons who don’t know enough to shop around. That’s what pisses me off.
And that’s what sometimes is almost enough to make me feel ashamed to be in the business I’m in. What saves me from self loathing is that I’ve got long term clients who keep coming back, who have never shopped around after coming on board, and with whom I have personal relationships. We talk about all kinds of non-business things. I know what’s going on in their lives, and how they got from birth to where they are now.
I figure that we all want to do business with people who give a shit about us as people, just as I do. I want the people I call upon to take on my problems as if they were having the same problems and can understand my perspective. I want to be that person when people call upon me.
Don’t we all?