Importance of a Personal Development Plan

August 20th, 2008

I first need to mention, this post is intended to be and interactive one as I will be posting a question to all the readers at the end, looking for some good feedback to help me with my training plan at work.

I am always amazed at the lack of personal responsibility many (the large majority) developers display.  Obviously skills that are learned act like building blocks and will carry you a long way.  The problem is that our industry is one of the most dynamic and rapid changing of any out there.  If you do not keep up with the ongoing industry innovations you can quickly find yourself being left behind and unmarketable.  It is nice when you work for a company that is training minded and helps develop their employees but that is not the norm, and even then you still need to make a personal effort to progress your development skills.  The only person that is going to truly look after your well being and future marketability is yourself. 

It has been interesting to observe over the past year or so how many open mid to senior level software engineer/developer positions are available.  Many of these positions have been open for quite some time too.  I have spoken to a few of these employers to ask how their recruiting efforts are going.  I consistently hear the same echo, we have plenty of applicants just not finding people with the skill set we are looking for. Sure enough, the skills they are looking for are technologies and methodologies that are relatively new to our industry.     

Some good news for the readers of this blog.  By the sole fact that you are reading this post means you are among the top 10% to 15% of developers who are actively engaged in developing your craft.  One of the departments I worked for had 68 software engineers.  Of that group I only knew of 9 (13%) that were active BLOG readers, attend user groups or local geek events,  frequently reviewed or read software books/journals/magazines,  earnestly downloaded and experiment with beta software just because they wanted to, not because you were required to, or was part of some open source project giving time to make something cool to better our industry.              

You can probably tell by now I am a strong advocate of employing people who are self motivated and will personally take charge of developing their skills.  I hire people for what they know not what I can teach them (entry level positions excluded from that). Unfortunately I still have to work with and manage the other 85% to 90% who need to be told what to do.        

NOW TO MY PLAN:

I changed companies several months back.  My new employer is training minded and very supportive, the unfortunate part is they have no formal training direction or requirements for the members of the IT department.  As one of the companies Solution Architects I am seeing huge discrepancies and lack of standards throughout our department.  One of the first things I want to implement is a mandatory book reading list.  There will be three (sounds like a good number) books that every engineer will be required to read and signed off on.  There will be an accompanying class/lab that goes along with each book to give some hands on reinforcement.

First Book:

Needs to target programming style and software construction.  I have already chosen this one, I could not think of anything better then  “Code Complete 2” by Steven McConnell, I am currently working on the class lab material for this book now.   I am hoping this book and accompanying lab material will help get the developers on the same page regarding software construction standards.                 

Second Book:

Will be on Design Patterns.  I have not solidified my choice here yet only the category.  There are lots of good titles to choice from here. Obviously there is the original design pattern book “Gang of Four” and newer pattern books like ”Head First Design Patterns”.  What are your thoughts here?

Third Book:

I have nothing slated here yet.

The question for you all is, if you were going to have three books with accompanying lab/presentation material which was going to be mandatory for all developers to read what would they be?  Like many corporations we are multi platform so the books do not necessarily need to target a particular language but we are striving to standardized most our systems/applications on the Microsoft development stack so .Net is going to be a big part of our future.       

Thanks

Scott Nichols

Scott Nichols Esoterica

  1. August 24th, 2008 at 18:20 | #1

    Very good point to bring up Andrew. Personalizing your development plan based on the direction you want to take your career is quit essential. I whole hardly agree with the post on your blog about this. In the situation I have at work we build and support all the apps e.g. web based, desktop clients and mobile. At this point the initial books are meant to be more general purpose that any developer will benefit from regardless of what presentation medium they are most comfortable with or language for that matter.

    Beyond this mandatory book list (no more than three) I will encourage the other developers to take their personal development seriously and continue to strive to make themselves better. Then help point them in the right direction in regard to bolstering their natural abilities and desires . For example, I have one person on our team that is really good with UI’s (any presentation medium) I would like that person to dive deep into WPF and Silverlight (become the XAML expert). We have another person who is really good with databases. I would like that person to dive deeper into all the new ADO.Net and access protocols i.e. LINQ/Lambda, Entity, ADO.Net Data Services, etc.

    In the perfect world there will be general requirements that all the developers on the team will be expected to know and then we will help various team members dive deeper into areas which we need expertise on and hopefully match up with their natural desires and strengths.

  2. Phil Ledgerwood
    August 27th, 2008 at 08:59 | #2

    Another vote for the Head First over the GoF. I’d also second the idea of The Pragmatic Programmer being in there.

    As the person largely responsible for trying to catalyze my team’s personal development, The Pragmatic Programmer has been a great way to get discussions started on some foundational topics. I have a team with a very wide range of skill levels, and that book provides something that everyone can sort of hook into. Also, the sections and topics are divided into very small pieces that could easily be structured into a curriculum, or even just a daily lunchtime discussion.

    If you’d be willing to share it, I’d love to see what you come up with for your Code Complete curriculum, as I’d like to do something like that over here.

  3. mike
  4. August 28th, 2008 at 07:57 | #4

    Definitely take a look at Bob Martin’s new book: Clean Code. It just came out and it is absolutely wonderful. Reminds me a lot of Code Complete – simple and yet oh-so-necessary advice we should all be following and, in typical Bob Martin style, extremely entertaining and enjoyable to read. If you can forgive the shameless self-promotion: http://haxrchick.blogspot.com/2008/08/clean-code.html

    I also have a question for you and the other readers… I agree it’s important that we keep up with new technologies, but what do we do when we’re not learning it at our companies? I asked a recruiter the other day how many companies are looking for WPF. “A LOT!!” he said, clearly excited that I might have experience with it, “have you worked with it?” he asked. I explained I was teaching myself in my spare time, going through some online training and developing my own app in it.

    “Oh” was his – clearly disappointed – response. The companies wanted people who had done it at professionally – at their jobs – not in their spare time. Now, I’m not convinced that this guy is a very good recruiter. But, the bias is real and, perhaps, understandable to some extent. How do we deal with this contradiction that companies want new skills that few other companies are working with – and, yet, they don’t give much credence to experience we’ve gained in our spare time. Perhaps THIS is why some of those positions with new technologies remain open for so long…

  5. September 9th, 2008 at 20:06 | #5

    Scott,

    First off I would like to give you kudos for actually taking this approach.
    I have heard of several companies that say they are training minded, only to have it as an afterthought due to lack of direction, schedule conflicts, time crunches, or just continuously putting it off.

    As for the books I would recommend, Code Complete 2 is a great all-encompassing book but may take some time to get through.

    I also agree with Bradley’s suggestion on Agile Principles, Patterns, and Practices in C# by Martin C Rober, as the agile development methodology and extreme programming combination helps to overcome many of the current software development obstacles we are experiencing today.

    Last but not least, Head First Software Development by Dan Pilone has my vote. This book addresses several of the issues I am sure we have all witnessed and experienced first hand from requirements gathering to improving scheduling and time estimation (which I believe is a valuable skill for everyone to know, not just the project leads).

    One other suggestion would be to allow each individual to select a book on a new technology topic that interests them and write up how that technology could positively impact the organization.

  6. September 16th, 2008 at 20:53 | #6

    I would completely agree with Code Complete and HFDP (esp over the GoF book… it’s a good follow up after reading HFDP though.) I’d also add the Pragmatic Programmer (which mike above also recommended). What we are doing at our company is reading some of these as a department (there are about a dozen developers) and discuss the reading each week (usually about a chapter). We’ve already gone through Code Complete, Prag Programmer and are working on HFDP right now. We’ll probably read something like Agile Principles, Patterns, and Practices in C# next.

  7. September 18th, 2008 at 07:19 | #7

    I’m glad to see all the pointers to Pragmatic Programmer, thanks! You might also be interested in my newest book, Pragmatic Thinking and Learning, which covers a lot of these sorts of topics.

    enjoy!

    /\ndy

  8. October 3rd, 2008 at 13:26 | #8

    Kudos on the blog entry, very well done! :> I too have worked many organizations who do not feel the need to help their employees excel in their careers. OH they all pay lip service to doing it, but when it comes to organizing, scheduling and paying for courses is when things fall apart.

    You picked two GREAT books. One thought, why not leave the last one up to the individual coder to pick? Instead of dictating, give them some freedom to pick something of their own interest, let it be TDD, Agile, UML, ASP.NET, what ever, but let them get jazzed up about something and give them an opportunity to show you their excitement.

    If I were to run my own R&D shop, I would start with your idea (and first two books), but then I would leave the third one up to them.

Comment pages
Comments are closed.