Specialists or Generalists: Who are best as Developers?

  • Oh, good article, Mike. Well, here I am, one of those "jack of all trades, master of none" type of developers. In a real sense, though, I prefer this. One of the things I've like about my position, and probably one of the reasons why I've stayed here so long, is that I get to do a lot of different things. Database development (really T-SQL development, in particular stored procs, views and triggers), middle-tier development (in the past that was COM+ components and now its WCF), and front-end development (in the past that was VB6, and now its ASP.NET and WPF/Silverlight). However, looking at it from the other side (management), they are simply unwilling to pay for more developers, period. We won't hire specialists, because we cannot afford the overhead. Does it take me, and my other co-worker longer to do anything? Of course; but that isn't going to change.

    Kindest Regards, Rod Connect with me on LinkedIn.

  • I think that all developers start out as specialists and over time become generalists unless they decide to make a concerted effort to remain a specialist. How many DBAs have had multiple comical instances to report over beers with other DBAs about some idiotic process or SQL code written by a developer because they couldn't be bothered to learn anything about a database (the comic Raw Materials comes to mind here)?

    I also think that if you're a specialist, and all you've got is a hammer, everything looks like a nail. A company needs both specialists and generalists, or they are losing out on the big picture. Projects can't be siloed, and good communication can avoid this, but how many projects really run that way?

  • jn_gray (8/29/2011)


    I think that all developers start out as specialists and over time become generalists unless they decide to make a concerted effort to remain a specialist. . . .

    Right on. Note that if you want to be a team lead, you have to be a generalist. It takes lots of continuous learning, most often on your time.

  • In general, I agree with the above posters.

    Note that a "generalist" is merely someone with more than one specialty and/or sub-specialty; they may, but are unlikely to, have reasonable knowledge of whatever you need as well as LISP, Prolog, ADA, MicroVAX administration, iSCSI over WAN-based 10Gbps Ethernet, and Token Ring.

    Really good "generalists" with sub-specialties in a given field are often better than low to mid range "specialists" in that field.

    The above problem was a result of some developers not understanding set based coding; that has nothing to do with "generalist" vs specialist.

    Note that in interaction issues in particular, one good generalist with the relevant sub-specialties can act as a catalyst to solve problems far faster and cheaper than merely having five or six specialists in a conference room (imagine a DB issue that's showing in the DB, but goes through the OS, the HBA firmware, the fiber network, the WAN, the SAN, the SAN replication, and the spindle configuration at the other end). Sometimes they can even dig in and solve the problem themselves.

    Sometimes it's as easy as "Oh, wait; that's not a code issue, that's an Active Directory permissions issue when you're running as a regular user". Sometimes it's not.

  • Interesting article... however, like many people here, I disagree with the comparison of generalist vs specialist... but favor the comparison of expert vs amateur.

    I've always prided myself on being a generalist. And if you think being a generalist = non-expert => lower pay, think again. I've been over six-figure annual salary since 23 years-old working for Fortune 50 to SMBs. With a solid computer science background, an "expert generalist" understands (or at least quickly come up-to-speed with) the pros/cons of each technology, language, programming model, yada yada... An expert generalist can dive into the details of any task at hand and come up with an efficient solution. At least that has been my experience, your mileage may vary...

    Also, you can read all the books in the world and gain more knowledge, but there's one thing you can't improve on, no matter how much time or effort: intelligence. In a team, you need different types of smarts: knowledge and intelligence (or both if you are lucky).

  • For SQL Server, books by Itzik Ben-Gan work quite well.

  • Revenant (8/29/2011)


    jn_gray (8/29/2011)


    I think that all developers start out as specialists and over time become generalists unless they decide to make a concerted effort to remain a specialist. . . .

    Right on. Note that if you want to be a team lead, you have to be a generalist. It takes lots of continuous learning, most often on your time.

    Totally agree with you, Revenant.

    Kindest Regards, Rod Connect with me on LinkedIn.

  • tshw (8/29/2011)


    Interesting article... however, like many people here, I disagree with the comparison of generalist vs specialist... but favor the comparison of expert vs amateur.

    I've always prided myself on being a generalist. And if you think being a generalist = non-expert => lower pay, think again. I've been over six-figure annual salary since 23 years-old working for Fortune 50 to SMBs. With a solid computer science background, an "expert generalist" understands (or at least quickly come up-to-speed with) the pros/cons of each technology, language, programming model, yada yada... An expert generalist can dive into the details of any task at hand and come up with an efficient solution. At least that has been my experience, your mileage may vary...

    Also, you can read all the books in the world and gain more knowledge, but there's one thing you can't improve on, no matter how much time or effort: intelligence. In a team, you need different types of smarts: knowledge and intelligence (or both if you are lucky).

    I agree with you, too, tshw. So, you're making over 6-figure annual salary? So, where is it you work? ...

    Kindest Regards, Rod Connect with me on LinkedIn.

  • Rod at work (8/29/2011)


    Revenant (8/29/2011)


    jn_gray (8/29/2011)


    I think that all developers start out as specialists and over time become generalists unless they decide to make a concerted effort to remain a specialist. . . .

    Right on. Note that if you want to be a team lead, you have to be a generalist. It takes lots of continuous learning, most often on your time.

    Totally agree with you, Revenant.

    In this instance, I must disagree. It may have to do with what I *percieve* to be a generalist though.

    I can reasonably read ASP, C++ (and some sharp), VB coding, etc. I understand it enough to know when I'm getting snookered by other staff. I cannot honestly say I could actually write more then the basics of it effectively though. In this way, I don't consider myself a generalist, because I am a specialist for databasing, and SQL Server in particular. I can, however, lead a team of technical people with enough basic knowledge to know what needs to be done where, even if I can't do it myself.

    To me, the analogy of the diagnostician (think your personal doctor) and knowing what specialist needs to deal with the issue to send you to is very relevant when it comes to technical managers. Hi-end technical generalists are not necessary to lead a technical team well, but some basic knowledge across the field will help tremendously.

    A high-end generalist, to me, is someone with enough ability to describe to me why the mechanics of filtered indexing vs. materialized views and their pros and cons, while then having a discussion later with another coder as to why a particular library of code has memory leaks, and how to deal with them. If you can't do this, you're not 'high-end' in either field, you're generic. And generic is good enough for most things these days.

    I don't need a heart surgeon to cure my cold, my fungus issue, or my earache. However, if my heart is suddenly not working properly, I sure as heck don't want to be down at the corner office. It's about the actual needs of the company, not if the code's pretty.

    The first rule of software: "Does the end user think it works?" Do you have enough end users (or data, or special UI requirements) to consider a specialist to be important to a particular application of it?


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • Rod at work (8/29/2011)


    tshw (8/29/2011)


    Interesting article... however, like many people here, I disagree with the comparison of generalist vs specialist... but favor the comparison of expert vs amateur.

    I agree with you, too, tshw. So, you're making over 6-figure annual salary? So, where is it you work? ...

    Rod,

    100K+ is not much in high cost of living area... trick is getting that in a mid-to-low cost of living area.

    :/

    Also, it's easy to get a free 5% increase... haven't you seen the survey out? On the average, people who are difficult to work with make 5% more than normal workers. 🙁

  • Mike, Your article brings up an important topic. I agree with what many have already replied to you on this subject, so I won't repeat it. The one thing would add, though, is that I do not believe a specialist is not necessarily better than a generalist, or vise versa. Nor is there a universal standard to the proper mix of generalist and specialist an organization should have. It is the business problem or task you are trying to solve that will determine whether or not to use a generalist, specialist, or a mixed team.

    organizations are being foolish by looking for developers who can do everything

    This is a broad claim that may be true for your organization, but perhaps not for others. I believe suggesting an organization use specialists or generalist without understanding the specific needs of the project, or the needs of the company is putting the cart before the horse.

  • This is a "good programmer" / "bad programmer" problem rather than a generalist / specialist issue.

    Companies need both specialists and generalists, with the balance depending on what they do.

  • As a Software Developer turned DBA and now wearing both hats in a Fortune 500 company, I agree that database coding should be done by DBA's and application development left to the software developers.

    However, I have worked on projects where DBA's were perhaps overwhelmed or down right uncooperative with developers.

    Whatever the reason, I often had to resort to inefficient practices like those you discovered just to make the deadline.

    Knowing the whole time that it could be so much better through the use of stored procedures and views.

  • tshw (8/29/2011)


    Rod at work (8/29/2011)


    tshw (8/29/2011)


    Interesting article... however, like many people here, I disagree with the comparison of generalist vs specialist... but favor the comparison of expert vs amateur.

    I agree with you, too, tshw. So, you're making over 6-figure annual salary? So, where is it you work? ...

    Rod,

    100K+ is not much in high cost of living area... trick is getting that in a mid-to-low cost of living area.

    :/

    Also, it's easy to get a free 5% increase... haven't you seen the survey out? On the average, people who are difficult to work with make 5% more than normal workers. 🙁

    Not where I work. No one has had any pay increase in 4 years. And because our benefits keep raised, we're all taking less home then we did 4 years ago.

    Kindest Regards, Rod Connect with me on LinkedIn.

  • Rod at work (8/30/2011)


    . . . No one has had any pay increase in 4 years. And because our benefits keep [getting] raised, we're all taking less home then we did 4 years ago.

    I am afraid you are not the only one, Rod - results of optimistic surveys notwithstanding.

Viewing 15 posts - 16 through 30 (of 32 total)

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