This is in response to another consultant badgering me on IRC.
He wanted to know if I asked for half up front. No, I ask for all of it up front. This gives clients no room at all for dragging work down into the posturing and posing battle where they try to get shit for free by bitching, whining, playing stupid, acting like they're about to get mad, etc. When they want something, they pay money, and when it's done, they have no recourse but to pay more money or go away. In the end, they're happier too, because you're not letting them waste vast amounts of your time. And you'll avoid all of the worst project and most abusive clients freeing you up to work on projects for people you don't despise. And if they balk at paying for a whole large project up front, the project probably has too much scope anyway. Scale it way back and leave open the posibility of continuing on to a second phase.
Where do I find my projects, elance and those sites, I was asked. Fuck no. elance, koders.com, etc are full of idiot amatures lowballing everything and sometimes idiot amatures highballing everything and the idiot amature business owners or founders who hire them. It's bad news. All of it serves to distract from the attributes that actually should be considered. And the people hiring the programmers are losers. They have crappy business ideas. The best way to not get paid or never actually help the client in any tangable way is to work on a stupid business idea for them. Avoid that like the plague. Most of my business I pick up from friends, friends-of-friends, and while working from Starbucks. Plant yourself by the airpark, or whatever is the equivalent in your part of town. In Scottsdale AZ, the airpark is the low rent district of the well-to-do business district where all of the little businesses spring up. In this case, it's in the heart of the north Scottsdale office district, but it happens to be near the airport, so rent is a bit lower. Large businesses have complex processes and are generally already staffed. Small businesses do deals over coffee and need people. Just because they're small doesn't mean they're dumb -- a lot of small businesses provide completely legimately, utterly useful services in some small nitche. Be ready to talk to people. The Starbucks culture is very much one of casual conversation between people there not part of a group, especially when regulars recognize each other.
Management -- clients will try to manage me. They have absolutely no qualifications to do so, generally speaking. You have to extract priorities from the client, hold them to the priorities long enough to get work done, and otherwise forcibly remove them from the process. That doesn't mean you can't listen to them, and talk about their business needs and work with them, just that you can't let them waste your time by mismanaging you, because that costs you, not them. If you worked for them as an employee and had a salary, there would be no difference, but while you're independant, you have to make sure you perform otherwise you don't get paid and only you can do that. Likewise, don't work on projects where you can't make technology or technical decisions, as idiots who don't understand the repercusions of their decisions will sabotage the project over and over again otherwise. Remember, only you should be permitted to waste your time, and only you should be able to doom the project once it's handed to you. Otherwise you're betting on a rigged card game.