I’ve been reading The Passionate Programmer, and so far it’s been a great read. It often feels that parts of the book are written by a much more talented and successful version of me (the author is a pro-level saxophone player, a successful speaker, and a fantastic author, whereas I play saxophone well enough to get gigs, speak occasionally, and write at a definite lower level than Chad Fowler). Anyway, the concepts in the book are all just as applicable to testing as they are to programming, and many points really hit home with me.

For example, there are sections on being a a generalist and on being a specialist. It’s good to be a generalist, because you can fill in anywhere. Generalists are often the people who can piece together data from a variety of different sources and come up with answers that people with deep knowledge only cannot see. But – you also need to be a specialist. You need to have a niche or area of deep expertise that you can develop as your brand (note – I’m not even paraphrasing the author here, and I’m too lazy to go upstairs and grab the book for quotes, but the points stand). For years, I’ve been describing the Test Architect role at Microsoft as knowing “a lot about a little, and a little about a lot”. I think Chad Fowler has just said this more eloquently.

Although I’ve been preaching the “a lot about a little …” quote for years, reading the book has made me wonder if I am becoming too much of a generalist. I think I have a pretty broad knowledge of testing these days, but if you asked me what my “specialty” was, I’m not sure I could answer. At times in my career, I’ve been a specialist in networking, automation, fonts, code coverage, debugging, metrics, static code analysis, and probably a few other areas. I still have broad knowledge of these areas, but I don’t think I have deep, specialist knowledge of any of these. If anything, I’ve become a specialist in career paths for testers at Microsoft – but as important as that is, it’s not exactly a niche to base my career on.

So I sit here wondering if I have an unknown specialty – or if I need to shift gears and develop one. I’ve been going in 42 different directions for years, but I wonder if it’s time to reel it in and try to go deep in one or two.

Damn – I love books like The Passionate Programmer, but I hate that they make me think so much.