Time Management: Otherwise all the rest is a waste. On the personal side, know when to stop working and how to balance family, friends, and your job. On the programmer side, know how much time to spend on the different stages of a job, and how to balance one client with another.
Project Management: Know how to keep everything from specifications to delivery objectives organised, but without getting bogged down in micro-managing every step.
Client Management: Includes handling expectations, diplomacy and other yucky stuff. If you've never said "no" to a client, likely you're not doing too well. And, yes, if you're employed substitute "boss" for "client".
Financial Management: Know what you're worth and what to charge so you don't go broke.
Ethics: Get yourself a "code" that means more than ones and zeroes. Respect yourself, your client, your community, and maybe even the whole darned world.
Communications: Learn to effectively use words, images, the telephone, the net and any other media that might crop up. Network with others, share skills, delegate and accept help when it's needed.
Documentation: For your users, your partners, your client but most of all... yourself. Writing docs should be the first thing you do, as well as the last.
Education: Never stop learning. There are so many free resources that it's just not acceptable to stand still for long.
Cross-Fertilisation: Have a look at graphic design, architecture, philosophy... whatever fields catch your fancy. What can you apply from these to your profession? Likely more than you realise.
Develop an action plan in each of these domains.
OK?
Now think about programming.
Project Management: Know how to keep everything from specifications to delivery objectives organised, but without getting bogged down in micro-managing every step.
Client Management: Includes handling expectations, diplomacy and other yucky stuff. If you've never said "no" to a client, likely you're not doing too well. And, yes, if you're employed substitute "boss" for "client".
Financial Management: Know what you're worth and what to charge so you don't go broke.
Ethics: Get yourself a "code" that means more than ones and zeroes. Respect yourself, your client, your community, and maybe even the whole darned world.
Communications: Learn to effectively use words, images, the telephone, the net and any other media that might crop up. Network with others, share skills, delegate and accept help when it's needed.
Documentation: For your users, your partners, your client but most of all... yourself. Writing docs should be the first thing you do, as well as the last.
Education: Never stop learning. There are so many free resources that it's just not acceptable to stand still for long.
Cross-Fertilisation: Have a look at graphic design, architecture, philosophy... whatever fields catch your fancy. What can you apply from these to your profession? Likely more than you realise.
Develop an action plan in each of these domains.
OK?
Now think about programming.
I think that you have forgotten buraucracy. Filling out forms for the tax office, the chamber of commerce and whatnot.
ReplyDeleteBut otherwise I wholeheartedly agree. Makes you wonder sometimes, where you still find time for hacking...
Chris
Thanks for the good words. And, yes, I forgot bureaucracy. Must be wishful thinking!
ReplyDeletenice
ReplyDelete