Specialists or Generalists: Who are best as Developers?

  • Sean Lange (8/30/2011)


    I have known plenty of "dedicated sql specialists" who couldn't write decent sql to save their lives and developers who could write some of the most elegant and efficient sql. I have also known some developers that can't even spell sql. It doesn't matter what somebody's job title or their current position is. It all comes down to the ability of the individual. Just because somebody is a "specialist" it does not provide any actual indication of their ability.

    Interestingly enough - to me a "SQL specialist" is an oxymoron, since you'd have to master multiple major specialties, making you (come on, say it with me) a generalist. Now - if you were to tell me you were a specialist in writing efficient queries or designing scalable data structures, NOW you're a specialist. Otherwise, you're likely to be just as much of a generalist as the others.

    I've often been tagged as a "generalist" because I happen to navigate in an area that crosses the boundaries between data and application (so yes - I used to be described as a developer, but I know a fair amount about writing data and persistence layers that don't bring the house down when you lean on them, actually have relational integrity, etc...). I'd have to say, just because every skill you have acquired doesn't start or end with "SQL" doesn't necessarily make you any more or less of a specialist (although there might not be a dandy premade title to state what you are a specialist in).

    (sorry for the repost if you're getting this, my post somehow jumped threads?)

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Good editorial, but I, like so many others, just can't agree.

    I have been the 'Jack' for too long, in too many IT/Networking/Programming areas, multiple industries, scales of size, clients/employers on installations, maintains, takeaways, rebuilds, redesigns, from scratches, cobbled and patched to agree. For me what I have observed is that specialist and generalist can all get wrapped around the axle.

    Mostly when they get stuck on the simple concept of 'it has to be done exactly this way today'. When all the synapses are firing and everything is in alignment this works out. However, when thats not the case that developer/dba/tech/engineer/and the entire team end up spending the day and too much of the night forcing the issue. Because you Learned it should work THIS way, or It has worked this way EVERY time before, or They SAID. Just get it done, if the current solution is messy then commit to revisit as soon as possible and broadcast that its messy. Post the need/reminder to fix the messy solution in prominent places. It will get done.

    For all the civility and form/function and showmanship, this is a results oriented species we belong too, and you must not forget it, because when you do you invariably become the recipient to noncivil, nonfunctional/random abuse and brutality.

    I think we can reasonably speculate that whomever was responsible for the recursive code that took 4 minutes to run, didn't test on a complex set of items, made up to follow the instruct to do it in the only tool of choice, and did not trace the execution. Any and all of these would have made it clear, just as you discovered, when you realized that it was hitting the database 100 times.

    I love specialists and theorists, they always succeed at describing some rarely used command, technique or concept. They often can display a simple workup of these as well. They can spot the differences between the lowercase i, l and 1 on a screen on the desk in the next cube or in the report scaled to fit and reduced to 4pt type. But they wear blinders when it comes to solutions outside of the form of a well specified request, and will often flounder and flail, and only alert that they are stuck late in the process after the tree of complexity branches has grown.

    Generalist get stuck because they have no allegiance to one or the other, they will just as easily underestimate rewrites when they get stuck, and will abandon a good path too soon in favor of one that ultimately is dead end. They often forget that just because they know how to do a bunch of stuff or can pick up quickly, they can't actually do it all ... at the same time. You risk bottlenecks when too much resides with one Generalist. Imagination, creativity, and simple tools to modern problems - thats what the generalist bring. Sometimes messy, because they are lazy, but they can get it done. Its just your job to review their crap, as another poster said: make peer review of all code a part of the process.

    Thanks for encouraging me respond.

    my 20cents.

  • Personally, I don't think it is possible to be a narrow-focussed specialist. To be great at one area you have to understand the things that impact that area.

    I'm an MI Analyst cum ETL Developer and my SQL and data viz skills are great, but I need to know about database management, physical storage, hardware and networks, information security, FE development, process improvement etc in order to be able to my job well. I believe that as the locus of your knowledge increases, the circumference of your ignorance also increases. The more you know, the more you realise you don't know that touches on what you do know.

    A good specialist is always trying to learn more in other areas that (in-)directly impact his/her area. A generalist puts the emphasis on knowing lots of things competently whereas a specialist puts emphasis on knowing one things expertly and lots of things passably.

    As to which one is best, I don't there's a universal Best as it's a matter of situation. I'd say that a generalist will build many things well but not necessarily excellently whereas a specialist will build a few things excellently. Which one you choose to do a task is about how well machined you need something to be - a non-critical, fairly simple system can be built by a generalist but a multi-million pound piece of software should be built by specialists.

Viewing 3 posts - 31 through 32 (of 32 total)

You must be logged in to reply to this topic. Login to reply