I've started to try to put together one a few times with varying degrees of success. A key is what kind of feedback does one have and is there enough structure to support this should the developer need it.
In our annual review we have a section for personal development though it isn't really used yet. I would like to see the section become something used more frequently to provide better feedback in terms of how am I doing, are these on track or not, etc.
I have had some help in creating it since it is this mixture of what I want and what the company wants, what my boss wants and his boss wants and his boss' boss, etc. There have been times where there were discussions that others have put forth in terms, "What did you put here?" which can be interesting if one wants to get a peer comparison of the plan.
To my mind, a personal development plan consists of a set of goals, using the SMART methodology mentioned by edg's answer, for an individual designed to improve one's performance in one's job. The idea is to identify skills that could be improved, how this can be done and then doing it. This may mean training funds and classes though it could also mean self-study if that is how one chooses to execute the plan.
An example of what may be in a personal development plan would be to learn 3 design patterns and implement them in the codebase over the next year. This meets all the SMART criteria as follows:
- Specific - A specific number is given on a topic that means something to most developers. When one starts they may not even know what a design pattern is but that is OK.
- Measurable - Either the pattern is in the code or it isn't and one could look at the check-ins to see that this is done within the time listed.
- Action-oriented - There is some work to do here and it is clear that part of it may be reading about patterns and figuring out uses.
- Relevant - Patterns can be useful to see how things can be recycled in terms of an idea over and over again. Reminds me of an algorithms class where the first idea is to see if the problem has already been solved before.
- Time-bound - This is why the bound of a year is given, so that there is some time to do the various bits as well as give a good window of opportunity.
Granted this can backfire if someone struggles to find uses and decides to simply shove in a few patterns for the sake of finishing the goal so one has to be careful with setting expectations.