I write a lot of little programs for people on a support website. It's all volunteer. People try to pay me -- people have even told me that I'm stupid for not taking money -- but I don't want them to give me anything. I'll never make enough money doing it that Jim would be able to stop working and we have enough to live on at the moment, so it's not necessary. Also, I like the idea of "paying it forward" which is what my dad taught me to do before anyone ever knew of the phrase. When I help someone, the thing that I ask is that they help someone else. Most people still can't manage to think beyond their wallets, though, so I also suggest donating to a children's charity or Habitat for Humanity. A number of them have said something like "I already do that" with no indication that they would do anything in response to my helping. That's up to them, though.
But there is a more selfish reason that I don't program for pay. I hate clients. I truly hate them with a flaming hot passion. If they are paying me, I can't just dump them. This way, when the flaming hot passion becomes too much, can turn my back on them, ignore them, pretend that they are not part of my world.
Why, you might ask, would I hate clients? Case in point. A couple of weeks ago, someone said that they wanted a page for their website which would allow users to sign up for time slots during some sort of competition thing. Not a clue what the competition is about, because it doesn't matter. I laid out what I thought would be a good structure for what had asked for. He thought it was just kewl! I went to work on it. Then he added a little request for an administrator to be able to sign up people as well as the individuals signing up for themselves. That took me a bit of time to conceptualize, but I finally got it.
I tested the code, got it working and posted it to the message board for the guy to copy and paste into his web page. He posted that he would try it and get back to me. (I find that rather annoying. It would be better if he would just do it and post when it's done. But that's my own thing.) That was a week ago. There are other biggish projects that others have asked me for, but I don't want to start on a new one until I have the last of the tweaks done on this one. So I posted a question about it. He posted back. Hadn't even looked at it, didn't know what to do with it.
I wrote out a long explanation of how to create a new page on his site with the portal that we're using. By the time I got it done, he posted that he'd figured it out, but then had another question. Which I answered. Finally he got it in the page and got back to me. The next sentence was the one I am so used to and why I hate clients. "That's really great, but..."
He wanted me to add the ability to put in a lunch time for the judges when no one could sign up. I had a choice. I could rewrite about a third of the code and have it be clunky, or I could make it elegant and rewrite the whole thing. I chose clunky. I posted the new code. The response "Oh, this is wonderful. You're getting really close. Now, what I need you to add is..."
What he needs me to do, actually, is completely rewrite the entire code. Oh, I can use bits and pieces, but the concept has changed and definitely the method of entering data has to be different. Oh, yeah, and I can't use the database table I was using and will likely have to create a new table. On top of it all, he said he needed this one thing "or" another thing. I hate that! Do you want something or don't you? This or that? Do I choose? What if you're not happy with my choice? Will you demand that I rewrite it again? Actually, what I find is that when people write "or" they mean "and" -- they want them both.
I told him that I would rewrite the code once more and that, before I did it, he needed to decide what features he wanted. Once I get it done, that's it.
People don't understand that most of the time adding just one thing that seems really minor can be a major change to the code. And sometimes it's difficult for me to conceptualize what needs to be done in order to accomplish the change. I have a structure in my head and it can be really hard to create a new one.
I guess the thing I need to do is expect it and not even try to start out with a finished product because I know that they'll want it different no matter what I give them at the beginning. Also, I suppose it's part of my ego. It's almost as if they're saying that I did it wrong and I don't like to make mistakes. I do all the time, actually, but I'd really rather it not be pointed out in a public forum.
2 months ago
2 comments:
You give me some insight into why some sites are so much easier to navigate than others.
Good. I'm glad my meaningless ranting has some positive effect. LOL!
Post a Comment