Scott Nichols created a post this week on ElegantCode.com about the Importance of a Personal Development Plan for software developers. Scott really wanted feedback on his post and since he's a good friend or mine and all around good guy I figured I'd oblige him and throw up a quick response.
Having worked at the same company with Scott for 6 of the last 8 years. I'm going to have to agree with his assessment that many developers don't have a personal development plan and that can make it difficult to market yourself or to find a new job when your current skills are no longer needed. I think this can be even worse at large companies where developers tend to specialize in very specific skills more than they do at smaller shops.
I agree with Scott that reading books and blogs and playing with beta software are important parts of a personal development plan but I think Scott missed, or assumed we know, the first and most important part of a personal development plan. That is defining what you want to develop into.
Every Plan Needs a Target
Before anybody can create a development plan or reading list they need to be able to answer the question, "What type of developer do I want to be? 1, 3, 5 or even 10 years from now? Identifying this target directs every other decision you make concerning YOUR Personal Development Plan.

If you want to be a web developer than you should structure your learning around those technologies that help you develop better in that arena. If you want to be a mobile device guru or move your way into supervision or project management then your going to study and develop a completely different set of skills. And you need to pursue projects and employment opportunities that help you reach those goals.
I think of this process as reverse engineering my career, kind of like Reflector for my life. I define where I want to be and then write out the steps that I think I will need to take to get me there. This also lets me take a minute to evaluate if I have the time, resources and opportunity to reach the target I have set. My wife and I go through a similar process with our family a couple times a year and often I find myself laying out the steps to reach a target and realizing that I don't have the time, resources and sometimes desire to do what it actually takes to reach the goal and I change my targets as a result.
The most important thing about setting a target for your personal development plan is that it helps you avoid the unfortunate possibility of waking up one morning five years form now and asking yourself, "How the heck did I become a test engineer for smart clients when what I really wanted to do was web development? This sucks!"
The Responsibility of Senior Developers and Management
One thing I love about Scott is that he really has a heart for helping other developers continually learn. He's been on the leadership team of NetDug for as long as I can remember. Those of us who are senior developers and management or even just have our own personal development program together owe it to our friends and colleagues to share our plan with them and hold them accountable for creating and executing on their own plan.
... okay that's all for now. Scott, I'll comment on your book list later.