I’ve often heard that it’s either better to be a specialist in your career field, or that it is good to broaden your skills and be more of a “generalist”. Since I’ve taken up web development as a career interest, I have learned that nowhere is that debate more relevant and important. I’ve quickly come to realize that there is more to learn and keep up with than the typical developer, or perhaps any developer on the planet would humanly be able to. I read somewhere that it takes 10,000 hours to be an “expert” at a given skill. Tagging the same number to each and every skill seems a tad arbitrary and oversimplified, but it’s probably true to a close degree for most skills. This point is the basis for the argument for specialization, and against generalization, captured so eloquently in the cliche “Jack of all trades, master of none.” Going off of mere memory, I believe that I hear more people argue that specialization is key to being successful whether it relates to web development or any other industry. If that is what many believe to be common sense and good advice, there might be some truth to it, right?
But occasionally someone is brave enough to stand up for generalists. Each case has valid points to be made for it. Rather than just picking the side that supports what I already believe or what I had already decided on, I decided to get a sample of arguments from either camp to weigh them out side by side.
In short summary, I found nine articles on the topic. I don’t contend these are the most definitive articles on the topic, I just went “googling” for relevant articles. I didn’t purposely go out to find an equal number of articles supporting either side, just kept searching for decent articles written coherently and were based on some thought and experience. I skipped over rants that seemed to be based on one experience and driven by emotion more than anything else. I didn’t keep track of how many articles supported each side before I was completely done and already started writing this blog, but surprisingly, they balanced out perfectly. Of nine articles I had three that clearly leaned toward specialization, or was at least written to tout the benefits of it. There were three that really took an even handed approach and didn’t absolutely favor one over the other. And finally, the remaining three I would consider to be in defense of generalization. I will provide a brief description of the articles grouped by their respective positions.
For the case for specialization, the first article I found(footnote – 1.) urges specialization because you are more likely to get hired on. Employers hire you based on your ability to solve a problem, not because of the breadth of your knowledge. Whatever 10 languages you know, they already have people who are skilled in nine of them, it’s just one of them they are hiring for today. The second article(2) does not provide all that much that the first one doesn’t. It is written from the perspective of marketing yourself, and how specializing will allow you to come across as an expert in something, whereas generalists will come across as being dabblers who aren’t particularly good at anything. The third article is perhaps the best written one, and is clearly written by someone who’s been in the industry for awhile and sees the evolution of web agencies. According to this article, as the web becomes more complex, and so do projects, agencies are starting to operate in a fashion that favors specialists much more than generalists. Projects are run like an assembly line with each task seperated and delegated from the next. All three of these articles seem to be geared toward those looking for a job in a corporation or bigger size web agency.
Next, I’ll skip to the three articles that lean toward being a generalist. The first article’s(4) author says that he has worked for small teams and his flexibility, breadth of skills, and willingness to work on many aspects of a given project have been invaluable for him and the teams he has worked on. Benefits of being a generalist include, the ability to communicate across disciplines and see the big picture, ability to relate to other members because you have experience in those positions, and the personal satisfaction of completing projects from start to finish. This article even lists some of his personal qualities that he feels allow him to be successful as a generalist. These qualities include: endless curiosity, love of learning, and being a control freak. If you like the act of actually picking up a new language, than you would be much more suited to generalism than someone who likes to perfect each skill before moving on. This type of skill is also much more suited to small teams, management positions, and freelancers he admits. His conclusion is not that everyone should become a generalist, only if it suits your personality and career ambitions. Even then, it is important to strike a balance, and be really good at at least one thing, but being decent at other skills will make you a great asset. The second article(5) is pro-generalist, but because of your potential to make it in a management position. Project managers and creative directors don’t need all the specialized technical know how as much as they need people skills and knowledge about a lot of things that others specialize in. The third article promoting being a generalist(6) is actually an excerpt out of a podcast from boagworld. They come at the issue from the standpoint of what the end client wants. This is geared more toward a freelance developer, or a producer, the person who is interacting with the client in any case. The end client wants to be able to communicate with one person who understands the problem and can produce the solution, and are the ones to take responsibility when things go wrong. I picture this “end client” as someone who also has to run a business and wants to hire one person who has enough knowledge to be the total solution, and advise them on everything from web design to social media, adsense, marketing, copywriting, business strategy, etc. The last thing they want is to have to spend time hiring different specialists and having the headache of having to integrate the work of two or more people.
The last group are articles that point out the necessity for both specialists and generalists. The first article(7) is in reference to AGILE development. It likens a team of developers working on a project to a sports team. A group of generalists would never be a true success, because a baseball team needs a fantastic pitcher, a basketball team needs a stellar point guard, etc. But a team of specialists only is too divided and communication is not as effective. The ideal team is comprised of members who specialize in their area, but all have the ability and willingness to jump out of their primary role and pitch in on non-core tasks. It advocates for the hybrid worker who is both a specialist and a generalist. The next article(8) really steps back and takes a bigger picture look at the issue. It examines and breaks down the stereotypes for each. It makes some good points including a.)It is possible to specialize in more than one thing b.)The demand for certain specialties will change c.)The market is big enough for both specialists and generalists d.)most freelancers will wear both hats throughout their career as market conditions change, and finally e.)there is no “right” answer for any one person. The final article (9) is actually written in reference to a career in IT, and I’m not entirely sure how well it applies to web development. It seems to me the principles would have some level of applicability, so I decided to include it. (Note – The content being referred to here is actually located in the comments-Bruce Kay- section of this article) The article basically states that specialists have the advantage in the job market, and generalists have an advantage once they get hired on. While the skills of a generalist may not stand out on a resume, once in a position, their ability to take on other tasks and be flexible in which projects they can work on are great for job security and being a valuable member of the team.
For me, the best answer is going to be a little bit of both. I think I like the position taken in article (4) which advocates for striking a balance between the two by keeping one area as a focus so that you can be an “expert” in at least something, but not afraid to learn and take advantage of the benefits of having multiple skill sets and technologies under your belt. I think the qualities of enjoying learning new technologies, being flexible, and wanting to work on small teams or in a freelance position describes me very well. After the trouble of finding, reading, and summarizing nine articles on the same subject, this isn’t exactly the most profound or ground breaking conclusion. It was worth the effort though, so now that when I hear someone passionately argue any given position, I won’t be forced to doubt my decision or path, since I have heard all the arguments already.
Now, the task remains to decide what area I should keep as my focus…
While this is a topic that will take a whole ‘nuther blog entry to explore and discuss, I’ll lay down my initial thoughts now. For the past while I have been thinking that PHP would probably be a good focus for me. I thought that because I always assumed that left brained logical/analytical thinking was my strength. But when I do that kind of stuff for too long, my brain really starts craving something a little more creative. I think it will be very important to take these things into consideration to make the best decision.
- Podcast from “www.boagworld.com” titled – “Generalise”