The great debate: breadth vs depth of knowledge

Ryan Nedeff posted a comment over on Matt Simmons blog about the Future of System Administrators. Mainly he was responding to a comment by Michael Halligan on twitter stating “I feel that any sysadmin today who isn’t learning Ruby and either Chef or Puppet will be unemployed in 5 years”.  Ryan brought up the debate of breadth of knowledge vs depth of knowledge. I think its a great discussion to have so lets have it.

Which side of the fence are you on?

Personally I go mainly for breadth of knowledge “jack of all trades master of none”. Knowing a little about a lot has served me well in the past. I do have specialized knowledge in an area or two like virtualization and clustering, but overall I consider myself a generalist (as long as its a Unix like system, I do try my best to stear clear of windows). Of course doing this I wont ever land a job as an Oracle DBA. But then again I don’t want to do the same thing all day long every day. What about you?

Also how do you think that decision will affect your earning potential in the short and long term?


  • I personally think breadth is the way to go. The more familiar you are with all the items that make up your environment, the better.

    However, I do think that everyone has their own knack. The one thing they enjoy more than others, and something you really dive into.

    For example, I used to know BIND inside and out. I was also a wizard when it came to the mail daemon “Surgemail.” At my old job, that was the meat and potatoes of what I did. Add a side of IIS, with a dash of MSSQL, and that was my lunch, every day.

    I changed jobs, and moved into a totally different environment. I haven’t touched BIND, any email server (let alone something as obscure as surgemail), IIS or MSSQL since my last day of my last job. I haven’t even booted up my dev servers at home. But, because I’m a competent Cisco and AD guy, I’ve been just fine while I learn about phone systems and SCCM/SMS.

    The more things you are familiar with, the more apt you will be to hit the ground running when the “next big thing” comes along.

  • I am curious how being a specialist vs being a generalist stacks up for earning potential. I think a generalist will have the most flexibility with regard to being able to switch jobs or find a new job. But do you think the generalist will get the same level of pay when the employer sees that he is not an expert in any of the technologies they look for?

    Earning potential isn’t everything though. I don’t know that I would be happy doing the same thing day in day out no matter how large my paycheck was.

  • Dusty Wilson Ubuntu Unknow wrote:

    If you know a little about a lot, you know enough to do research and to know your options. If you know a lot about a little, you don’t need so much research and have deep knowledge, but might not have much awareness of other (possibly better) options.

  • Dusty Wilson Ubuntu Unknow wrote:

    I don’t think not knowing Ruby/Chef/Puppet will cause you to be unemployed (either fired or unhireable). Unless/until Ruby gets a much larger foothold on infrastructure tasks (and such), it just isn’t that important to me. Perl and Bash both are awesome tools for this purpose and I don’t expect that to change any time soon. One of the best features of Linux (or other POSIX-ish systems) is the shebang line. If you don’t like Perl or Bash, feel free to write with some other language/tool.
    As per usual, I’m happy that I am the “decider”. Perl and Bash come standard with Debian. If that ever changes (doubtful, at least within the next decade), I’ll make sure they exist anyway. If some tool/language comes out that does a better job, I’ll use it. Until then, I don’t see any reason to jump to a fancy new language unless it provides some necessary function that I don’t have now (I can’t think of any such missing functions).
    Puppet is cool. I don’t think that’s going to kill anyone if they don’t know about it. As things evolve (and especially as marketing droids are increasingly involved), I doubt Puppet will be the standard awesometool anyway.
    I don’t know anything about Chef, but I imagine it’s something like Puppet. I’ll go do some research into that.

  • thanks for the thoughts Dusty

    Yeah Chef is just another configuration management system but its pure ruby for the config syntax which has its benefits as well as drawbacks depending on the environment.

  • Oh yeah, one reason you might want to look at the new fancy languages is speed of development. Python seems to get bindings pretty darn fast for new things. Of course perl is the old faithful but some of the modules just don’t seem to get updated anymore and break on me. I myself have latched onto python as my higher language of choice. I’m sure that will change again in the next 10 years.

  • Dusty Wilson Ubuntu Unknow wrote:

    I’ve noticed that Python does got a lot of binding love. If something isn’t built for something in Perl, I just build it and put it up on the CPAN. Almost my entire infrastructure is built in Perl or is controlled by Perl. I like being able to just extend it farther and farther as the need arises. I can always use another language for whatever needed, but being able to do it all in a single language is really handy for me. I do have some concern about what will happen when Perl 6 is out and in general use, but other than that, I don’t have any reason to move away from old faithful. And until other languages come with my favorite distros by default, I don’t plan to use them for anything.

    One tool I use heavily is wajig, which is built in Python. I do have some discomfort with using it since it’s the only thing I use that requires Python, which takes up quite a bit of disk space on each of my vz containers. At least it doesn’t take any real effort to install it (Debian, I love you).

  • I consider myself to be a generalist who can operate at most levels of the technology “stack” from networks and operating systems (Unix/Linux and Windows) to databases and servers and a small amount of software development.

    I’m not sure about the relative salaries of breadth vs depth, but personally I’d get bored doing just the one thing every day.

Leave a Reply

Your email is never shared.Required fields are marked *

To submit your comment, click the image below where it asks you to...
Clickcha - The One-Click Captcha