I have always been fascinated with self improvement in relation to programming. Lately, I’ve been focusing on ways to stay motivated by creating optimal work conditions to get the most amount of satisfaction out of my work without losing productivity.
Aaron Reed lists money, morale, and burnout as the three key factors to motivation in his excellent essay, Software Team Turnover: Why Developers Leave (And What You Can Do About It).
Essentially, you need to discover your leading factor and work to improve it. Morale ranks high on my list, so I turned to Robert L Read’s advice on staying motivated. If money is what keeps you going, I suggest you take a look at Not motivated by money. And if burnout is what gets you down, then D. Keith Robinson has some tips for you in How To Deal With Burnout.
In addition to motivation, I believe work conditions are one of the leading factors for programming and slave labor to become synonomous for a lot of people.
Modern software development is fraught with neglect, waste, incompetence, misunderstanding, dishonesty, and misguidance.
Bob Reselman Coding Slave
There is just something wrong with sitting alone in a cubicle next to the men’s bathroom under a harsh fluorescent light and thinking that it won’t affect the resulting code. Additionally, Joel Spolsky takes it a step further with by analyzing the relationship between work conditions and defining good programmers in Hitting The High Notes.
If you enjoyed the release offered by Office Space, and felt that Paul Graham hit the nail on the head with What Business Can Learn From Open Source, then you should also enjoy the explicit yet hysterical Coding Slave (you can also check out the free version here).
If you want an escape, Douglas Reilly writes about the encouragement he has been given to leave coding behind and “advance” his career in The Value of Experienced Coders.
While I am sure we all have different reasons for doing what we do, improving your motivation and working conditions will drastically enhance your future relationship with programming.