Alright, let’s be straight forward.
I want to work with an employer who has a standard process for deciding when a task is completed, and the payment for said task. I’m tired of working with hacks who play everything by ear, passing around scattered bits of notes and random todo-lists. I’m tired of coming up with clever ways to start a conversation which will eventually leady to “Are you paying me soon?”.
Don’t get me wrong. I’m not greedy. I used to be an anarcho-communist from the age of 16. I had a very passionate hatred for capitalism. Now I’m a bit more libertarian. I would like a regular pay check, but I’m not going to force anyone into it. Plus, getting paid regularly isn’t really a part of consulting, is it?
The process of creating software should be automated. Not everything in life has to be handled by automated processes. But some things, especially in the business realm, ought to. The process of turning a description of software into a working application should be handled by a routine. I’m not talking about a machine, I’m talking a repetitive principle that can be put into practice. Like a flow chart. Except performed by humans.
Why am I asking this? Because I want to get paid. But I don’t want to ask for money. I hate asking for money. I want to complete a task and have some machine spit out the money to me. Not in a greedy way, just an avoiding-human-awkwardness way. Well, it’s not possible because humans own all the money, but if a machine could make judgment calls about the completeness of a project, you bet I’d be working for it.
But since these machines don’t exist, what do I do instead? I abstain. I keep my money worries to myself and continue working, hoping that I can finish something which will prove that I ought to get paid. A lot of tasks in IT aren’t visible and proving that writing code for module XYZ is worth $N dollars really difficult.
What happens when I abstain from asking? Sometimes I abstain for so long I get burned out and start hating the project. That sucks. There are so many cool web projects these days, but unless I’m confident that working with an employer is worth my time, then I might just bail.
Problem is, I figure that whatever it is I’m working on should be evident on it’s own. This is easy if it’s interface design. Writing HTML/CSS is a bit tedious, but people can see it. They can see what you have done, and what you haven’t. They can see the dramatic change from nothing into something. And so, just like being a laborer, you get paid for building bricks.
But what if I’m pushing bricks, instead of laying them? Sometimes bricks have to be moved in order to make room for new bricks. Or sometimes they have to be rearranged. What if they employer wants a diamond shape instead of a square? What do you do with all those bricks? Start over?
What if I’m fixing a bug? There are lots of ways to fix a bug. Some of them are quick. Some of them take a few days. Some bugs are subtle and pervasive enough that it can take a week or more. If it’s taking that long to fix a bug, either it’s really nasty (which means the code should just get rewritten) or the developer is doing something wrong.
Sometimes the bug is very important. But sometimes that bug might not be worth fixing for the overall project. Unless I know this, I’ll probably spend days at a time trying to fix it. All the while the clock is ticking, I’m writing code, keeping my money issues to myself, And the bills keep showing up.
Explaining tech to non-techs is tough and sometimes makes you look like you’re lying to get more money. They might think you’re pulling their chain and dragging things out longer (if you get paid hourly). Or it could mean they should replace you with someone faster, (if it’s a fixed price project).
I’m not sure if there is a right way to ask for money. It’s a sensitive topic that can easily make people upset. Hopefully my next employer will give me the benefit of the doubt.