Geeks With Blogs
Blog Moved to http://podwysocki.codebetter.com/ Blog Moved to http://podwysocki.codebetter.com/
Recently I read a post by Jeff Atwood called, "The Magpie Developer".  In there, he likens  many software developers to magpies, which always get distracted by shinier things.  But of course he notes that he gave up following all of that because it gets tiring.  I'd have to agree with this.  Scott Hanselman and many others will post new and notable projects and code.  How are we supposed to keep up with this and expected to be deep in anything, yet a well rounded developer.

Am I a Magpie?

I always wonder to myself on how the learn the latest and greatest things.  It seems every second something new comes out and that urge comes up to dig in as much as I can.  Take for example Spec#, F#, BDD frameworks, all new, all things that I've been digging around in lately.  Trying to learn as much as I can.  Does this make me a magpie?

Where I am

Well, I don't think it does.  I do consider myself a well rounded developer with deep roots in Agile, TDD/BDD, OOP and FP.  I'm always looking for a better way to get the job done.  If I'm working on a project and a pain point comes up, I need to realize there has to be someone else who has this problem and has solved it.

In my previous post, I talked about my reasons for getting into F#.  I'm not the type of developer anymore that wants to get distracted by a new piece of code every week.  Instead, I'm really focused on very few things nowadays.  I'm not trying to be a generalist with everything I do.  Instead, I have my list of "How to be a Better Developer in 6 months" list and I focus on that solely without trying to get distracted.  The list helps me a lot to not get distracted on things like Silverlight, XNA, CAB and other things that may be new, and I might want to reverse engineer one day, but not now...

Going Deep versus Going Wide

It's a definite trade-off in our industry in deciding whether to stay a generalist or going deep in a particular subject.  With the rapid pace of software development, to stay a generalist is quite hard.  Something new seems to pop up every week.  I'll admit that I have quite a few blogs that I read every day and something may catch my fancy, but it's far and few between.  Being a well rounded developer is important, however, and you must realize you need a firm base of knowledge.

Instead, going deep takes it to the other extreme.  To do this takes a lot of focus, obviously, given the rapid change of our field.  But, when you get down to it, you want your customer to come to you every time because they know you know the subject through and through.  Being a generalist, that's harder to achieve. 

Conclusion

At the end of the day, it's about a training plan.  What do you want to do?  And what suits your customers?  Those are some questions you need to answer.  Not many times does your customer care which technology you choose for the job, just that the job gets done and in the time frame you said it would. 

Until next time...  And I promise, more code next time... Posted on Friday, January 18, 2008 6:04 PM | Back to top


Comments on this post: Bye Bye Magpie!

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © Matthew Podwysocki | Powered by: GeeksWithBlogs.net