views:

1159

answers:

8

Does anyone have any tips in putting together a personal development plan for a programmer?

What do you do at your organisation? Do you have a personal development plan? Did you set it yourself or did someone help you create it? Have you been involved in developing one for someone else? What is a personal development plan?

edit following first response: I'm not really talking about a tick-sheet of "you scored 4 at indenting code this month Mary, sort it out quick or you're fired" style metric. I'd like to help guide a programmer through a (continuing) period of self-improvement.

+7  A: 

A PDP serves many purposes, here are a few;

  • To formalise a plan for the personal development of an individual
  • To support the aims of the organisation through specific focus of individuals
  • A means by which managers can defer complex issues indefinitely ("...at your next PDP review...")
  • Insurance against litigation following constructive dismissal
  • Busy-work to occupy those otherwise not contributing
  • Humorous retrospectives

Oh yes, and they should be SMART, if possible.


Update: If developers are motivated to improve they need access to knowledge rather than plans. On the other hand, if they are not motivated to improve then plans won't help. I can't really imagine how a PDP might help the individual more than the organisation. I recall Joel once wrote of appraisals that there was much greater potential for harm than for good. Reference anyone?

Update2: I admit the possibility that experience of writing PDPs (and having them written about me) has made me cynical. It doesn't mean I'm wrong.

Ed Guiness
+1 betta than wot I sed.
Dead account
Ha ha. Thanks for your answer. Can you provide an alternative way to help guide a programmer through a (hopefully un-ending) period of self-improvement?
jammus
+1 I like the brilliance with which you've reversed the argument. :-) Totally agree, that it is more important to create an enviroment and cultural emphasis on learning instead of developing a plan: have up to date library area, praise these who learn, let people experiment and learn as they go.
Totophil
A: 

Development tends to require a training budget, so if you don't have one, then you are setting yourself up for disappointment.

jm04469
Part of management task is finding training opportunites that dont require money = mentoring within the team, working on small projects, getting out to meet the customer, work with support.
One of the more obvious ways of learning for free is to attend local OWASP chapter meetings yet the vast majority of developers aren't making the effort.
jm04469
+2  A: 

Hi I would start at looking not only at coding skills but also other software skills...

Find out what their learning style is... Learning Styles and experiential_learning

Team Roles they are Belbin Team Roles

and the important page acts as the centre and background for the above and answers your questions Training and Development

+1  A: 

It is important to agree on the set of goals with the programmer. They need to be technical, but also some non-technical goals (related to attitude, communication skills, coaching skills, team work, etc.). It is important to set these goals together with the programmer, in order to get his buy-in.

Those goals should be a compromise between what your organization consider as strategic direction and what the programmer consider as "strategic" from his career point of view.

Try to set up the goals in a measurable fashion. Agree on some ways to identify the progress. Check what the organization can do to support the programmer in his career development.

Keep tracking of his progress. Set formalized sessions from time to time (once per month/quarter/year) to discuss and "evaluate" his progress. Identify the things that went well, identify the things to be improved. Both should be tell, not only the things to improve.

When identifying the things to improve, try to identify objective, concrete facts that happened and determined the need for improvement. I don't recommend to have a "mathematical" model (some grades or something) as measurement tool. Measuring skills doesn't fit numbers.

Cătălin Pitiș
+2  A: 

Steve McConnell's company Construx has some good resources in this area, including a sample Professional Developer Plan. You have to log in though (registration is free), so I can't link direct to the plan.

Steve Haigh
+2  A: 

At our company, all developers create their own PDP together with their manager. It covers the following questions:

  • What is your current focus?
  • Where do want to be next year (career-wise)?
  • Where do want to be in 3-5 years (career-wise)?
  • What are your current strengths and weak point (5 each)?
  • How can the company help you achieve your goals?
  • What will you do yourself to achieve those goals?
  • What will you do to help the company achieve its goals?

There are no specific bonusses attached to the goals, it's used as a guideline for both manager and employee to keep track of someones career-goals. Usually it is reviewed and updated once a year. Althouhg the developer has a lot of freedom in putting together this list, there is some advise from the manager taking the persons qualities and potential into account.

Ruben Steins
+1  A: 

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.

JB King
+1  A: 

Keep the PDP process informal. Have regular annual or 6-monthly one-on-one meetings to discuss the “where do you want to be in 5 years?” question to help them think about their career path and identify interests. Get the individual to research how they want to get there – eg formal certification, short courses, books, etc ... they’ll be more committed to the process if they come up with the plan themselves. Also everyone learns differently - while some may benefit from becoming an MSCP, others might prefer a “Learn .NET in 5 days” book. It’s up to the individual.

It's tempting to bundle this meeting with the formal annual review - don't do it. Annual reviews are almost always linked to salary, so your team member will have the wrong frame of reference.

I’m not a big fan of tracking metrics for PDPs. Just like requirements docs the PDP will change over time, and ticks-and-crosses will act as a demotivator (SMART or otherwise). The fact that your guys are taking an interest in personal development and are “bettering” themselves should be enough. In the end, it will make your team stronger anyway.

Hope that helps!

Fuzzy Purple Monkey