I’ve read, listened to and been in a few discussions lately about competency, or the rather the different kinds of developers – as in the diverse approach they have to their day job. I thought I’d give my view, compacted as it must be in a blog. I’d be more then happy to discuss it further with you through comments, email or in real life.
Today the scene is widely different. If you can honestly say that you know every product and technology that is featured within an arbitrary project built on a Microsoft foundation then one of two scenarios are true. 1) You have devoted your life to being a developer and everything revolves around it. 2) You feel always unsufficient, neglecting other tasks and/or family and non-developer friends. You spend what feels like too much time trying to learn, but it never seems like enough.
With that said most of us don’t fall into those categories simply because we acknowledge the fact that we don’t know everything about everything. Note: If you at this point are thinking that ‘Hey, I know everything, but don’t recognize this’ then hey, you’re either a genious – and I salut you, or you’re delusional. The range of things to know is just too big. And it’s not just technology. Apporaches to programming (ie DDD, TDD, BDD etc) and running projects (ie Agile) as well as other surrounding topics have become increasingly important as the industry has become more mature.
So instead you prioritize, specialize in a few topics and purposefully filter through articles so as to not spend time reading in-depth topics (however interesting they may seem) about (for you) non-essential products and technologies. I might for example find an in-depth article about the search engine plugins and optimization for MOSS 2007’s enterprise search engine to be a very interesting topic, but will prioritize, and instead read something I feel is closer to what I do, such as how the UDDI 3.0 integration with BizTalk Server 2009 is built or an introductory article to WebMethods even.
This prioritizing to me is a pragmatic approach. You just can’t read it all, do it all, know it all – so you have to be pragmatic. But that doesn’t mean you’re not passionate about what you do. Writing this I had to prioritize, so this became part 1 and other parts will have to be a later issue, now I have other things to do…