Whether you’re a consultant or a freelancer, the value you provide is, for a large part, determined by your knowledge. Consulting companies typically invest heavily in the knowledge of their people. Consultants attend knowledge sharing sessions, read industry magazines or have a yearly training budget. But how do you spend the available money wisely? I decided to take a structured approach to finding out.
Since my passion is successful software development, I started out by listing all the knowledge areas related to this topic in a mind map. Working through all phases of a software development project revealed lots of these, starting with networking, getting in touch with a client, the sales process, then requirements, development & testing and finally delivery and transition to the client’s IT organization. Some of the knowledge areas are relevant to my current or past roles, some I’d like to develop in the course of the next year.
Next, I rated my current knowledge in these areas on a scale from 1 to 10. Since I’m rating myself, my ego will give me a natural bias towards higher ratings (for instance, holding a computer science degree and having worked with Java for over 8 years, would I really rate my Java programming skill at less than an 8?) and these are suspect, but they’re the best I currently have. Given enough time, I may ask a close colleague to provide his independent estimates as well (perhaps using a variant of planning poker to get a single result).
Given my target role and ambitions, I set a target knowledge level for each of the areas. In an area such as web design, I’d like to have a minimal knowledge, enough to be able to estimate how long a design might take, what tools are needed and how to integrate this into a software development project. It would be a huge plus if I could design a website so it doesn’t suck.
But for software development team management, which I consider one of my top skills, my aim is to be the very best, so the target is very high.
The delta between my current knowledge level and the target level determines how much I need to improve in that area. Ordering the knowledge areas by largest delta, I derived the areas most in need of improvement and resolved to attack them in that order. The first I’m going to do this is to read books on these subjects, so I searched the internet for the most highly rated books.
Assuming one book per month, this is my reading list for this year:
- Getting to Yes to learn more about negotiating.
- Flawless Consulting to learn more about consulting, professionally giving advice.
- Managing Humans, a book about managing software development teams.
- De essentie van netwerken, a Dutch book about business networking.
- Release it!, a classic book about software engineering
- Software Requirements.
- Adrenaline Junkies and Template Zombies, more about managing software development teams.
- Agile Estimating and Planning, hard to believe I haven’t yet read this book.
- Becoming a Technical Leader
I plan to write a blog post for each of these books as I read them.