5 reasons you don’t really want a jack-of-all-trades developer

categories: front-end development, thoughts

I've spent the last couple of weeks trolling Craigslist and have been shocked at the number of ads I've found that seem to be looking for an entire engineering team rolled up into a single person. Descriptions like this aren't at all uncommon:

Candidates must have 5 years experience defining and developing data driven web sites and have solid experience with ASP.NET, HTML, XML, JavaScript, CSS, Flash, SQL, and optimizing graphics for web use. The candidate must also have project management skills and be able to balance multiple, dynamic, and sometimes conflicting priorities. This position is an integral part of executing our web strategy and must have excellent interpersonal and communication skills.

Really.

Now I don't know about you, but if I were building a house, I wouldn't want an architect doing the work of a carpenter, or the foundation guy doing the work of an electrician. But ads like the one above are suggesting that a single person can actually do all of these things, and the simple fact is that these are fundamentally different skills. The foundation guy may build a solid base, but put him in charge of wiring the house and the whole thing could, well, burn down. When it comes to staffing a web project or product, the principle isn't all that different -- nor is the consequence.

I've thought a lot about this these last couple of weeks, and I don't think this post is sour grapes about the fact that I don't have the top-to-bottom, front-to-back web development skills that this ad and others seem to be asking for. I'm proud and confident of the abilities I've assembled when it comes to front-end development, and I have a rock-solid understanding of what makes websites tick.

The thing is, the more you know, the more you find out you don't know. A year ago I'd have told you I could write PHP/MySQL applications, and do the front-end too; now that I've seen what it means to be truly skilled at the back-end side of things, I realize the most accurate thing I can say is that I understand PHP applications and how they relate to my front-end development efforts. To say that I can write them myself is to diminish the good work that truly skilled PHP/MySQL developers are doing, just as I get a little bent when a back-end developer thinks they can do my job.

So to all of those companies who are writing ads seeking one magical person to fill all of their needs, I offer a few caveats before you post your next Craigslist ad:

  1. If you're seeking a single person with all of these skills, make sure you have the technical expertise to determine whether a person's skills match their resume. Outsource a tech interview if you need to. Any developer can tell horror stories about inept predecessors, but when a front-end developer like myself can read PHP and think it's appalling, that tells me someone didn't do a very good job of vetting and got stuck with a programmer who couldn't deliver on his stated skills.
  2. A single source for all of these skills is a single point of failure on multiple fronts. Think long and hard about what it will mean to your project if the person you hire falls short in some aspect(s), and about the mistakes that will have to be cleaned up when you get around to hiring specialized people. I have spent countless days cleaning up after back-end developers who didn't understand the nuances and power of CSS, or the difference between a div, a paragraph, a list item, and a span. Really.
  3. Writing efficient SQL is different from efficiently producing web-optimized graphics. Administering a server is different from troubleshooting cross-browser issues. Trust me. All are integral to the performance and growth of your site, and so you're right to want them all -- just not from the same person. Expecting quality results in every area from the same person goes back to the foundation guy doing the wiring. You're playing with fire.
  4. Asking for a laundry list of skills may end up deterring the candidates who will be best able to fill your actual need. Be precise in your ad: about the position's title and description, about the level of skill you're expecting in the various areas, about what's nice to have and what's imperative. If you're looking to fill more than one position, write more than one ad; if you don't know exactly what you want, try harder to figure it out before you click the publish button.
  5. If you really do think you want one person to do the task of an entire engineering team, prepare yourself to get someone who is OK at a bunch of things and not particularly good at any of them. Again: the more you know, the more you find out you don't know. I regularly team with a talented back-end developer who knows better than to try to do my job, and I know better than to try to do his. Anyone who represents themselves as being a master of front-to-back web development may very well have no idea just how much they don't know, and could end up imperiling your product or project -- front to back -- as a result.

If your budget really is limited to a single position, you might want to consider whether you'd be better off working with several contractors with specific and proven skills, rather than a single person who claims to encompass everything you're after. Your management overhead will increase in the short term, yes, but your headaches down the road will decrease exponentially. In the process, you'll gain access to people who can help you evaluate potential full-timers, and probably gain some insight into the actual list of skills a full-timer needs to provide.

If you're one of the people who's written these ads, all is not lost. Invest in a technical consultant -- probably one you can't afford to hire full-time -- to help you really understand your needs and the skills required to solve them. Often they can assist you with writing and posting the ad, and interviews too. For example, I'll meet with a client, write and post a detailed ad, identify candidates, and interview contenders; if I don't have the technical skills required to evaluate a candidate, chances are I personally know someone who can. Doing that homework up front, and understanding and describing what your needs really are, is vastly more likely to give you the perfect fit you're after than if you just cast a wide net and see what you catch.

39 Responses to “5 reasons you don’t really want a jack-of-all-trades developer”

  1. Jahangir says:
    August 3rd, 2008 at 4:19 pm

    Fascinating post, Rebecca.

    “prepare yourself to get someone who is OK at a bunch of things and not particularly good at any of them” — This is the crux of the whole problem right now. SMB in particular are satisfied with hiring someone who “JUST” gets the job done without thinking too much about the spaghetti code written to build the app. Ken Schwaber explains this clearly as Scrum Burn Down [27 min]

    But on the bright side, there are few employers out there looking for specialized skill sets (i.e Drupal, Zend, Plone etc). So all is not lost. There is still some hope :)

  2. Steven says:
    August 3rd, 2008 at 8:21 pm

    sadly this is the norm these days.
    sometimes there is just a lack of work, and in these cases employers want to know if they can move you off to do some other type of work at these times.

    also, alot of the time, all of the mentioned skills are required, even if most are not requiring great expertise.

    you better get used to it, management are very scabby with developers.

  3. Riccardo says:
    August 4th, 2008 at 4:37 am

    Good post; I think this idea is behind those terrible applications where presentation is mixed with business logic and data access. Probably each module has been written all the stack by a single “jack of all trades” developer and it usually has bad data access or terrible presentation (or both).
    Here in Italy it is the norm for the job postings; they search those developer because they fit in their (terrible) way of developing projects.
    I am still dreaming a job in which I don’t have to write a single line of html (I’m a backend guy) and I have a great html developer (which I’m not) on my side; I think we could do wonders together.

  4. Sivaswami says:
    August 4th, 2008 at 7:18 am

    These are much related to Building house and person without much knowledge in the house. Before approaching carpenter/plumber you will approach an Engineer who creates a plan for you.

    Recruiters are not looking for a carpenter or an plumber, they really look for
    Engineers who are capable of managing the entire project. who can guide the project till the success. ( as a civil engineer guides till the entire house is finished )

    The Engineers won’t do all the stuff themselves. but they have to interact with the other person ( speak in their knowledge ) to accomplish the task effectively.
    Thats why they are expected to have basic skills in all the area’s.and Thats the reason we are called Computer Engineers and not Computer workers.

  5. Tim says:
    August 4th, 2008 at 7:22 am

    Hum… that post got me thinking. I consider myself as a Jack-of-all-trades, and it turned out to be really helpful in my day job. Because I know enough (or more) about various technologies, I am able to make them work together seamlessly. I can anticipate issues from both sides (communication is extremely important). Of course, I need to have an expert sometimes, but let’s face it: what we do on a daily basis is not rocket science. (or you’re very lucky :)

    Don’t get me wrong, there’s no programming-god who knows all about everything, but many people who know fair enough about the whole environment, and not just about one thing.

    :)

  6. Scott Ryan says:
    August 4th, 2008 at 9:53 am

    A lot of this is what you read into the job description. Most of the time they are not looking for someone who is an expert in all those skills but must have more than a basic understanding. The number of times I have seen a database developer design a database that did not allow us to present the data to the application and did not understand why there needed to be a compromise is numerous. As well there are a lot of designers that don’t understand how the data gets to the screen and they design pages that are very slow and unusable because they do not understand the mechanics of accessing data and getting it to the screen and can’t articulate to the database developer how to address the issue.

    It is important for me when building a team that everyone have some level of knowledge of all the technologies and moving parts it takes for a successful project. You should understand not only development but also testing, deployment, maintenance so that you design an overall system that is the most optimized to get out the door. You always must make compromises and it is important for them to be made in the correct place with agreement from the entire team.

    To use your analogy in home building which I have done a lot in the past. I would prefer a foundation guy that understands a bit about plumbing and electrical in case we have to move something or modify the foundation to support changes. Or if something was missing in the original design and they can point out the issue that the other party may have missed. Software like home building is a complex process and as humans we are all far from perfect so the more eyes on the project the better.

    Most of the time if you read the requirements for the job they are looking for key skills and some other outlying skills. That is how they select one candidate over the other if the major skill-sets are equal. It sounds like with your background you truly do have a wide breath of skills and a knowledge of the entire project life-cycle. Just make sure your resume reflects that and not that you are just an expert in XYZ skill without any knowledge of the other outlying skills.

    Best of luck and thanks for a great post.

  7. Josh says:
    August 4th, 2008 at 10:09 am

    With a few key words switched, I think you could have pulled some of that ad text straight from one of my company’s postings. I agree with a lot of your thoughts though. Particularly your point #4. In our case, we’re a small start-up and part of asking for so many skills is that wanted to make sure potential candidates understand that they might be asked to do a lot of different things, some of which might not be in their core area of expertise. Admittedly, we could probably rewrite the ad to more clearly show that. Another potential reason for a posting like that, is that the technologies used at a company (especially startups) change over time, and while skill sets needed are often added to job postings, they are not as often being removed (rightly or wrongly). In any case, great post. I think finding/hiring/accepting technical positions is one of the hardest things to do well in this industry.

  8. Paul says:
    August 4th, 2008 at 11:46 am

    The fact of the matter is, as a professional developer, you need to be able to do a lot of different things.

    Let’s look at the skills used in an average day in the life of a J2EE developer.
    – Java, is the source we write our programs in
    – XML configuration files
    – SQL to talk to a database
    – HTML/Javascript, gotta edit pages to
    – Bash/Perl, or some other scripting to parse source, logs, whatever.
    – Ant or Maven, its the build tool, got to know that to make software
    – CVS or Subversion, version control is important for all devs

    On top of that, if you work with native code (JNI) then add C/C++ to the mix.
    Of course one’s specialty will be in a given area but, every member of the team should be able to do all of these. There simply isn’t time to have a developer sitting around waiting for the *SQL* guy to come in and do his piece. We’ve all got to work together.

  9. Paul says:
    August 4th, 2008 at 12:28 pm

    Appreciate that there are different traits and qualities in a developer but if you look at some of the smaller startup projects on the web, this is a luxury that they cant afford.

    A good developer in my opinion will have a strong focus on one particular skill, and have a good understanding of the supporting technologies around it, to the point of being able to bring the majority of the project together themselves, at speed with room for tidy up and maintenance from respective experts around the office.

  10. Rebecca says:
    August 4th, 2008 at 1:07 pm

    I want to be clear that I think it’s wonderful for developers to have a wide variety of skills; I’d hesitate to hire a front-end developer who couldn’t read and write basic SQL, but I’d also hesitate to ask a front-end developer to read or write much SQL. My issue is with employers who expect they can get a single developer with expert-level skills in multiple areas that are fundamentally different; they need to know that, somewhere along the line, they aren’t going to get expert-level results.

  11. Dayne says:
    August 4th, 2008 at 5:30 pm

    Excellent article Rebecca. These job postings seem to be the rage these days. (I’m based in Toronto, Canada). Truthfully though, a good developer, especially in smaller IT shops, needs to at least have a decent understanding of all these technologies, and be able to speak the jargon with full time DBAs, system administrators, systems analysts, designers, marketing folk, and more.

    I also consider myself to be a “generalist/ jack of many IT trades & competent with most of them” developer. I believe I have had more success recently by calling myself an “Integrator/ Developer”. (I hope I’m not deluding myself). A number of the readers above mentioned the jack of all trades description. Maybe they too will have more success with hiring managers by calling themselves Integrators. My explanation (to the hiring manager) is that I can get multiple diverse technologies to work together, and I can also build full solutions. Cheers!

  12. James says:
    August 5th, 2008 at 6:51 am

    Thanks Rebecca, that’s a weight off my shoulders. I’ve just realised that I’ve been flitting about between subjects trying to learn what I can over the last few years. Yes, it’s given me breadth, but I’ve not attained depth in any one subject. Time to focus, I think.

    On the subject of not knowing how much we don’t know, I recently filled in an application form for a specialist IT job agency where they asked me to rate my key IT skills out of ten. How can I do that? There’s no frame of reference. Who am I comparing with? Who has 10/10 in any subject anyway? I don’t know how much I don’t know on any given subject, so how can I rate myself? I gave myself a five in all subjects and added a note to suggest what a ridiculous question it was. It just shows the lack of understanding not just by the employers, but by the supposed IT agencies too.

  13. Paul A Houle says:
    August 5th, 2008 at 10:16 am

    I dunno… I think there’s something to say for somebody who can understand the big picture. I think of the way that somebody in the building trades can advance to being a real estate developer, or an actor or editor becomes a movie director.

    Often SMB’s and large businesses still deal with a “web developer” as if they were the hired help, but they’d actually take a “movie director” seriously. I think there’s a place for somebody who really understands web sites, how they interact with other web sites, and how people interact with them. Perhaps that person should be the team leader.

  14. Rebecca says:
    August 5th, 2008 at 11:01 am

    @James: A friend told me about a similar interview process that asked him to rate his skills, but in that case the employer provided some guidance as to what the different numbers meant. Rating yourself a 10 meant that you wrote the tool in question; if you hadn’t used the tool in a year or more, you automatically dropped down to a 2. I think the 1-10 approach can be useful if the employer actually thinks about what the numbers mean and shares that with the prospective employee; otherwise, though, you’re right that it’s a pretty empty question.

    As far as what you choose to learn: I do think it’s valuable for IT professionals to have a broad understanding of their field, if only so they can have intelligent conversations about the whole of a project. But when it’s time to actually do the project, I maintain that a single person with broad understanding isn’t enough.

  15. Fadzlan says:
    August 6th, 2008 at 2:34 am

    You can reply the 1-10 question by presenting your context to the prospective employer first, before replying to the question. That way, both of you can agree to the context and the value presented would be more meaningful.

    Say, the interviewer asking, from 1 to 10, how do you rate yourself good in Java. You can say,

    “If 10 is good enough to debug a language implementation in JVM, 1 is beginner, 5 is understanding most design patterns and java libraries, then I rate myself at 6″

    That would certainly give the interviwer a sense on how good you are, and also how high the bar you set.

  16. Pete says:
    August 6th, 2008 at 4:07 pm

    “ASP.NET, HTML, XML, JavaScript, CSS, Flash, SQL, and optimizing graphics for web use”

    With the exception of Flash, anyone who knows ASP.NET should really know all of the others. They are connected technologies that pretty much *have* to be used together to accomplish anything useful. If you are an ASP programmer that doesn’t know HTML, JS, SQL, etc then you are clearly not particularly dedicated or experienced in the area…

  17. Mark says:
    August 12th, 2008 at 11:03 am

    I understand what you are saying, but I don’t completely agree.

    First of all, there are people that are jack of all trades, and better at any individual thing than a lot of specialists. They are rare but out there.

    Secondly, it’s hard to work in isolation. You end up getting exposed to all the code, and sometimes you have to get your hands dirty with it. Imagine hiring a backend dev who told you they have never looked at a single line of javascript and vehemently refuse to do so because they’d rather be good at one thing as opposed to being a jack of all trades.

    Finally, you may not want an architect hammering nails, but wouldn’t you feel better if you found out your architect was also a hobbyist craftsman who paid for school by doing construction work in the summers?

  18. Ambrose says:
    August 12th, 2008 at 11:13 am

    Yes, but why are you surprised? There is even a name for this type of developer. It is called a “programmer-analyst”.

  19. Stephen McConnell says:
    August 12th, 2008 at 11:28 am

    I am one of those Jack of all trades developers. I have been developing software since 1976 and have seen fads in software development come and go like wild fire. I write in COBOL, FORTRAN, C/C++, Java and Objective-C, PHP, RPG and have a solid background in HTML, CSS, Javascript and a myriad of databases as well as several Linux Scripting Languages…..

    The problem with specializing in ONE technology is that those technologies quickly go out of date and you are left with a skill that no one else uses… Then, you are replaced. I saw so many developers loose their jobs because they only programmed in RPG or COBOL and that “web development stuff is just a fad.”

    We have begun to rely on “frameworks” that pop up and then are replaced by other “frameworks” and if you haven’t developed in the “framework of the hour”, people don’t want to hire you.

    After 35+ years of development, I have become tired of trying to keep ahead of the curve and living my nights like I was in Graduate School, studying and practicing new technologies. However, I can still truly walk into a project, read the book (or now Online documentation of frameworks) over the week end and be productive and innovative. That is because I am a Jack of All Trades.

    I can manage a project…. any type of project… I can develop software…. almost any type of software… I can develop and integrate different DB’s and different OS’s (from Windoz to Apple to OS/400 to Linux)…

    But I have become tired of narrow minded managers who want you to have a narrow, specific skill of the week before they will hire you. Design patterns, and concepts are transferable…. If the person you are hiring or is doing the hiring can’t understand that…. then they aren’t worth the time to talk to. Wake up and get a dose of reality.

    Besides, I’m making more money investing the money I have made as a Jack of All Trades developer than I did as a developer. (Another Jack of All Trades skill….. )

  20. Jalex says:
    August 12th, 2008 at 12:54 pm

    Those whose experience is skinny and deep or expansive and shallow – both have a fragile career.

  21. Mike says:
    August 12th, 2008 at 1:29 pm

    I think you are misreading into the job post. They didn’t ask for an expert in all fields. They asked for someone with solid experience in multiple areas. There is a difference. Maybe they wanted the moon and maybe they didn’t.

    Most jobs that I have taken are ones where it helps to know the whole stack. The teams I’ve been on or built tend to have generalists on them but usually each person on the team has more expertise in one particular areas. As an example, mine is system level work including persistence and messaging systems. Sometimes there is overlap of expertise on the team and sometimes there is not. When you’re starting from scratch unless there is a real reason that you need bonafide experts you want people that have skills in all areas because you can’t afford (or need) an expert in every layer of your app. The simple truth is you won’t have enough DB work for a DB expert in the initial startup phase of most companies or teams(just as an example). And trying to have consultants/contractors on retainer for each of those areas for when you need them is a pain. There are always exceptions of course but I don’t think the trend of seeing more generalists type job posts is a bad thing. It’s just different. I find it fun because I like knowing how the whole stack works and it’s a hedge in case there isn’t much demand for a given expertise I might have.

    To be fair, there are definitely companies that want the moon and don’t want to pay for it…or they want an expert in everything which is unreasonable. Those will normally show during the interview or phone screen.

    Just a disclaimer: I am now a development manager but I am up front that I want generalists for the reasons I cited above. I just don’t have enough DB or front-end specific work to keep someone busy all the time. If they can’t be functional across the board then it doesn’t do me a lot of good. That will change a little bit over time as multiple teams get built out but I still like developers that know the whole stack.

  22. Roberto Carlos Gonzalez Flores says:
    August 12th, 2008 at 2:25 pm

    [but if I were building a house, I wouldn't want an architect doing the work of a carpenter, or the foundation guy doing the work of an electrician.] I agree with this analogy.

    but, What’s the problem with this ads?. This world its for the best,so if you don’t have that skills, search another job or another ads.

    If you don’t find anything that fits with your capabilities, maybe you did a mistake chosing your career and you have to study rather than complain.

    Just open your eyes ;) .

  23. Rebecca says:
    August 12th, 2008 at 2:34 pm

    Again, I think it’s excellent for a developer to have a broad set of skills; of course a back-end developer should have some sense of how the front-end works. Asking that back-end developer to produce web-optimized images or to write CSS that works cross-browser — and expecting them to do it well and efficiently — just seems fundamentally flawed to me. What bothered me about the ad in question wasn’t that they were asking for broad knowledge, but rather that they seemed to be asking for equivalent and “solid” experience in each area.

    I’d much rather see an ad that said they were looking for a front-end developer with solid knowledge of HTML, CSS, Javascript and experience in creating web-optimized graphics, and then say that candidates with ASP.NET and Flash experience would receive special consideration. With the ad as it is, it’s not even clear to me what the actual job would be.

  24. Dmitryx says:
    August 12th, 2008 at 4:28 pm

    It’s ok, a few more years of experience, dozen of books and you’ll change your mind.
    You are just not skilled enough yet, its ok. What do you think is “engineers team” in fact is just basic knowledge.
    Your argumentation is newbie’s nonsense.

  25. Sebastian says:
    August 12th, 2008 at 5:45 pm

    I’m a Jack-of-all-trades developer with a proven track record and over 20 years experience in software development, having worked from the lowest levels of circuit design and assembly language to Java & c# (and learning F# currently).

    I can vouch that there are more people like me out there, like my original mentor. So it is possible to find one, but still quite difficult as we tend to be a rather rare and small subcommunity.

    However, there is even a potential problem when you do find such a developer, and it’s related to your single-point-of-failure comment. Imagine your guy comes in, does a wonderful job, and then suddenly leaves. Leaving behind an amazing piece of source code that will take other developers MONTHS to study before they’re actually ready to continue Jacko’s ‘marvelous’ work on the same level of productivity.

    So, when you do find such a developer, make him a project manager, in charge of a team. If he truly is what we’re talking about, he will make sure other team members can continue with his work. Because he sure as hell doesn’t want to be around your company forever.

  26. Andy says:
    August 12th, 2008 at 6:15 pm

    I agree with part of what Rebecca is saying, but I think the real problem is that employers aren’t expecting people to do a variety of tasks, but instead they are asking one person to do a 4 person job. I think that it is good to have a variety of skills that compliment each other, but as long as you have enough people to do the job so that one person is not overwhelmed, the task is fine. In my mind it’s ok to have one person to do an entire site provided they have the talent to do all the tasks, as long as you aren’t expecting them to output the site in the time it would take 3 people to do it.

  27. diobert says:
    August 12th, 2008 at 9:57 pm

    Hi Rebecca, I was busy job hunting these past few days and I came across your blog and I would like to share my thoughts on this article :)

    Most of the job ads these days are just filled with all the buzz words that sometimes it is difficult to win a chance for an interview unless your skills fit their advertised requirements. It is true that most SMBs would like to hire a Jack-Of-All-Trade kind of guy probably because they offer business software solutions that would require a broader range of IT skills. On a business perspective it would be an advantage for SMBs to have a plethora of IT skills because it would increase their chances in working on a project from a client. Getting the project is just first step, let’s just hope that the hiring manager or the project manager have considered all the risk involved in hiring a Jack-Of-All-Trade, but then again your article pointed that out.

    One experience I had when I was interviewed was, I was asked if I know Java, and so I replied “Yes, it is written in my resume that I have worked with various Java projects and I have SCJP to support the credibility of my java skill.” And the next question was “do you know Object Oriented programming?” It made me pause for a few seconds..

  28. R2 says:
    August 13th, 2008 at 12:51 am

    I have a knowledge and understanding on back end and front end programming as well as different OS and programming languages, mobile devices, and anything that interests me. But that doesn’t mean that I mastered all of them. Of course, even a genius (and I’m not) cannot master everything because there exists another variable which is time. It’s impossible to master everything like CSS, ActionScript, Javascript, HTML/XML/XSLT/XQuery, RDBMS/OODBMS/XML databases, C/C++, Python, OOP, Java, .NET, J2ME, PHP, various Java Frameworks, Ruby, ROR, Solaris, Mac, Windows, multimedia formats and codecs, Flash, Flash Media Server, Red5, Search Engine Optimization, VOIP, version control systems, etcetera, because even a genius programmer is confined in a very limited time. I have a knowledge and understanding on software technologies I stated above (in the sense that I can utilize them well) but mastering them from inside and out is a different story. My mastery is only Java.

    When an employer interviews me, I tend to say that I know only Java (coz I already mastered this in-demand programmer’s tool), even though I also do award-winning web designing. The result is, well, I don’t get the job. This kind of employer wants someone who does everything! He prefers an imaginary jack-of-all-trades developer than an honest one. This kind of employer wants a robot developer who doesn’t sleep and no social life so that he can assign a big webapp project to only one-doing-everything developer, hoping that only one developer means more profit. In the end, this type of employer will realize that the project failed or it took one or two years to finish, and the profit that he expects turns to be a lost.

    I wish there were no more employers like this.

  29. kiwi says:
    August 13th, 2008 at 1:57 am

    I think most of this happen is because of management fault.

    They want to hire 2 jack of all trade developer rather hire a 2 difference skill but strong knowledge people.(Worth in $$$)

    They rather want to save their cost in short term instead of invest on long term. (because they are $$$ driven, not user driven :) )

    They think program is : System.out.println(”hello world”); how hard could it be ? :)

    They not really care how important the technical people is (and they don’t want to tell you they know nothing :) especially if they are not IT backgeround), save $$$$ is more important. just get me 2 developer that is cheaper !!!

    Depend on the business need, but if you want a very good product, please hire developers whose is good is difference skills. (please remember that know a language very well doesn’t mean you can write a good article. !

  30. fletch says:
    August 13th, 2008 at 8:32 am

    It’s called being a versatilist. Everyone and I mean everyone should have multiple skills including requirements, Pm, etc. That does not mean that you can’t be an expert(10) on a certain skill and a 5 ok at backend. Since many jobs don’t require a 10 at each skill most of the time your good as Long as you recognize when a 10 PM, BI, back-end developer is needed and you get them..really not that often unless your building some huge thing…

  31. Akilan says:
    August 13th, 2008 at 10:08 am

    It’s the budget which decides the role. Business will always come up with less budget and ask for more to be done.You have no other option.

  32. Eric says:
    August 13th, 2008 at 12:09 pm

    Good posting there.  Every time I see one of these things on CL where someone wants a front-end designer who can do SQL and Linux administration… it’s someone who doesn’t have a clue what he needs.  Good developers won’t even respond to that.  I recently had an interview where someone wanted me for my PHP and my front-end design skills and I kept on saying, “you need two separate people.  I don’t do front end design, period.  I don’t play the violin or pilot a helicopter either.”  (Ok not those words exactly.)  I didn’t take the position and they’re still looking, months later.

  33. What is the best system to set up and run a web site? says:
    August 14th, 2008 at 11:51 am

    [...] I read a Javalobby News from dzon.com which titled “5 reasons you don’t really want a jack-of-all-trades developer”. It made me think about this question again. I asked myself this question many times cause right [...]

  34. Norman says:
    August 16th, 2008 at 8:26 am

    Sometimes the ads are cobbled together by HR who just got a list of technologies currently in use by the company. No connection whatsoever to what the manager in charge of the project is really looking for.

    And sometimes these ads ask for all these skills just so that they can bargain on the salary/rate later on: Yes you are great at writing struts/spring apps in a weblogic environment but you are not that much of a Unix admin/Web Designer/Etc. We’d love to hire you but the salary/rate will be less (much less) than what was originally discussed (which is what enticed you enough to go through the whole interview process in the first place).

  35. Tony says:
    August 17th, 2008 at 4:39 pm

    I’d propose a less insightful more analytical way to look at a job ad. Its problem (apart from other missions like marketing the tech team brand) is to catch job hunters who qualify and will take a job. It’s a test in an environment of uncertainty. Use a four-part box of true negatives, true positives, false negatives, and false positives as with any other test. Plan on how to estimate relative costs and benefits of entries in the boxes. Work in your organization to improve those costs and benefits, and to better pick an ad that fits.

    It’s certainly the case that statistical education is so low that almost no one does the above. Instead people grab onto advice without considering advisee credentials analytically.

    The analytical job of choosing a job ad as a job hunter is the dual of deciding on a job ad as a job marketer. And both job hunters and job marketers also have an alternative of using acquaintance networks rather than job ads.

  36. David says:
    August 24th, 2008 at 7:51 am

    Hello Rebecca, I have read some but not all of the comments. I agree with a few but I spotted a few Jack-of-all-trades-women developers hidden within the comments. This is amazing because I know I can find a question peculiar to their knowledge of a technology subject a Jack-of-all-trades-woman claims to have and absolutely stump them! If you Jack-of-all-trades-women out there don’t believe it then just try me. Of course such a test is not possible because the only definitive way of showing they don’t know-it-all is face-to-face. If you Jack-of-all-trades-woman have not figured-this-out-yet let me just say you are being: called-out. The Jack-of-all-trades-woman exists because this is how the employers and HR departments manipulate the entire Software Engineering and Development industry. The reason companies and their HR departments can manipulate the industry is because Software Engineering has been de-professionalized. As technology proliferates it is simultaneously dumbed-down such that when some very pressing technology is needed the HR dept. seeks a so-called: Jack-of-all-tradesman per the keywords thrown at them from the hiring manager. The Jack-of-all-trades-women want this condition we work in to persist because this what keeps the Jack-of-all-trades-women employed. I have worked in many Software Dev. Departments that are basically symbiotic relationships between a Software Dev. Manager that only has an understanding of the prevailing company business model without a clue as to the technological underpinnings of the company’s business model. As long as the Jack-of-all-trades-woman can keep the system glued together the management does not care about the real quality of the work done to keep the system: up-and-running. The essence of the previous sentence is made evident by the hyphenated society we all live in today. Until the day comes where some level of professionalism can be re-instilled into Software Engineering and Software Development don’t expect much change.

  37. SuperSparky says:
    September 2nd, 2008 at 8:46 pm

    A completely unqualified analysis based upon assumptions unproven. There are differences between a “know-it-all” idiot and someone with skills (tried by experience) in many fields.

    Experience dictates how skills are applied. I have over 25 years of experience in programming, electronics, and digital theory. Not all of them came to me at once, nor did I learn them at a college. Nevertheless, it has always given me an edge in the industry I have typically found greatly enhances my perspective and abilities with the task at hand.

    For example:

    I used to work as a consultant for a major stock trading firm. Their IT department was staffed with very skilled people, most with PHDs and some with Microsoft Certifications. I have neither. Once a major issue happen with their entire system and the single-skilled “experts” spent hours trying to solve the problem. After much urging to call “Superman” (a nickname I was given) they finally relented (I am not cheap). They called me in and I had the problem fixed in less than fix minutes at the absolute amazement of the other staff. This problem was unique, but quite easy to spot with someone that has knowledge of how a microprocessor works at its fundamental level, and how software is all just specifically arranged machine code executing despite the compiler or interpreter running, AND knowing typically how much an innocent mistake can throw a monkey wrench into the works.

    The key here is to keep learning about everything in your field, but to also learn new things. Using the example of Architect given in the article (poorly used by the way). I’d rather have an architect with engineering experience that has demonstrated not only his artistic talent, but also knows how to make it work in the real world because of his engineering knowledge.

    Now here’s where I get to a touchy subject, but valid nevertheless. There are over 35,000 scientists in the world with expertise in more than one field (by long term experience) that say Global Warming is caused by the sun and its cycles, mostly sun-spots; as well as water vapor. Many are weather experts, many are astronomy experts, many are chemists, and many are even geologists and physicists. What makes them unique is many have expertise in more than one field.

    There are about 6000 scientists, most recently out of their PHD programs and in need of funding, that have excellent scientific training and knowledge in only one field of expertise that have formed a “consensus” saying Global Warming is caused by mankind.

    Based upon my own experience, I can say that if a jack of all trades is very good at those trades, the he/she will be a better asset (and perhaps worth more) than someone with only a single skill to their name.

    I can guarantee you that I can optimize and improve any single “experts” code by at least twice the speed, and usually make it just as easy to follow. How? I leverage the subsystems of a PC or server in a way no programmer is taught about in school.

    I don’t claim to know everything, and frankly it has taken me many many years to be as skilled as I am, but don’t knock knowledge and experience. To have more of both is always an asset.

  38. Karl says:
    September 3rd, 2008 at 5:44 am

    I have been employed as an accessibility and usability consultant for the last 6 years. My job is, at its root, to audit the work of others. While I’m sure there are plenty of people who know a lot of different programming languages (master one 4th generation language, the rest are pretty easy to pick up), I have to agree that there are few people who truly *master* a lot of these very disparate skills such as graphics, front-end development, backend development, database administration, and so on. Most of the uber-geeks I know really don’t know markup languages as well as they think they do. Most of the backend programmers who say they also know SQL really only know SQL to the point at which they can do what they need to do (often they make their programming language (PHP, ASP.net, etc) do things their SQL should be doing. Or most of the people who say they know C++ might make their application fulfill the basic business needs of the spec but still can’t successfully make their controls pass through the basic state/role/value/focus information, etc. In other words, a lot of developers think they’re better than they really are, so its easy to say “Oh, but I know all of these languages and I’m an expert and so this blog post is crazy” but when it comes down to it, they may be better-than-average in a lot of things but they really aren’t a master of them.

  39. Casey says:
    September 6th, 2008 at 1:26 pm

    This is such great advise! I have been a professional freelancer for about 11 years now, and I am a jack of all trades, what I can say for sure is that if you don’t specialize and use good subs you can indeed spread yourself very thing and lower productivity for sure.

Comment