If you check out the various forums and magazines for software developers today, you'll find a lot of whining: Software Developers are mistreated, underpaid, over-worked, easily laid off, h1b this, overpaid CEO that, blah, blah blah.
I have to admit, I've spent a great deal of time as a whiner. The truth is, lots of coders are under-paid and over-worked. They have been loyal, or dedicated, and not been rewarded. They worked thousands of hours of overtime for that $250.00 bonus and did the math. They are peeved.
Now, I ask: Why do you think that is?
In my opinion, it's pretty simple. Not only do software developers lack negotiation skills, they often don't even RESPECT those skills!
How many times have you heard a coder say out loud "Sales is something I never want to do."
Is it any wonder that, when that coder gets laid off, he has problems getting a job? After all, the most common way to find a job is to sell youself
(Yes, the further you get in your career, the more reputation and free gifts sell yourself for you. I'm mostly talking about entry-level and all-proprietary shops here.)
Last week in class, we covered "Critical Success Factors". It's an info systems policy class, and the idea is simple: Identify the things you MUST do right, and everything else will fall into place. On the other hand, if you do them wrong, you've set yourself up to fail.
Then you make sure you nail your critical success factors.
It occurred to me that, for most smart coder-types who want to become independent consultants, the Critical Success Factors (CSF) are sales, marketing, and relationship-building. Working independently, the coders are going to be able to do just about any work for hire. The challenge is getting the work in the first place.
That's the critical success factor. What surprises me is that there are so few folks talking about that - we'd rather spend our time talking about kwikis and FIT and whateverelse new toy is our now. hmm.
Vaguely Related: http://software.ericsink.com/Marketing_for_Geeks.html