"A human being should be able to change a diaper, plan an invasion, butcher a hog, design a building, conn a ship, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve an equation, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert A. Heinlein
It seems that the topic of specialization has come into focus yet again in the web world and with it, the people who say being a "jack of all trades" is a useless thing to strive for.
A lot of web professionals are pushing newcomers to specialize in a single area to make themselves more marketable and employable. Without a doubt, specialists will always be needed in any industry. But is it really so bad to be a web generalist?
Being considered a "jack of all trades" has always had a negative connotation. It implies that you dabble in bits of everything, but never achieve the expertise needed to be good at any one pursuit.
Maybe a successful generalist should instead be considered a "Renaissance man" (or woman).
Few would argue that DaVinci should have stuck to one subject.
Speaking From Experience
Ok, so I'm not DaVinci. Despite my lack of genius, being a Jack has worked well for me.
I've always worked with small teams where being flexible and willing to learn was seen as a huge asset. I wouldn't call myself a generalist, per se, but I wouldn't call myself a specialist either.
Web design is my primary passion. It's what I spend the most energy practicing and perfecting. Still, I spend a good chunk of time learning front end development techniques and reading up on user experience principles to make sure my designs are more than just pretty pictures.
I've project managed, created databases, produced wireframes and IA documents, and written copy for marketing pieces. I even built a few ColdFusion and PHP sites back in the day that I'm sure would haunt me to look at now.
I've worked with over a dozen CMS products in a plethora of languages. I've designed everything from magazine layouts to environmental graphics. Some of what I produced might be pretty bad - like the database I built with a book in one hand to walk me through the process step-by-step, but I filled a gap, solved a problem and learned a lot in the process.
Being adaptable has earned me quite a few raises and promotions. I've been told time and time again that I'm a valuable team member precisely because I know a little bit about all aspects of the web process.
It has also allowed me to take on interesting freelance projects that I can call mine from start to finish. It makes my design work more informed because I know exactly how hard it will be to make that one little thingamajig look good in IE6.
And it's easier for me to relate to the woes of a developer frustrated by a coding bug, or a project manager trying desperately to make a customer happy, which makes me a better teammate.
It Works For Some...
Being a generalist works for me, but it won't work for everyone. There are a few reasons I think I've had success with it. They include:
Over the years, I've learned a lot about myself and have started to work with my nature instead of against it.
I'm a very curious person. I have trouble focusing on a single subject because everything seems so interesting to me. I have a broad arsenal of skills gathered over the years thanks to my curious nature. If I forced myself to pick a specialty and stick to it, I'd be incredibly bored and for me, boredom is misery.
A Love Of Learning
I truly enjoy learning new things. I could hate a subject and still enjoy the process of learning about it. It's fun for me to sit down and research a new technique or test out a style I haven't mastered yet. If it wasn't fun for me, I wouldn't want to spend so much free time doing it.
A Deep-Seated Need For Control
Let's be honest... I'm a control freak. I learned a lot of what I know so I wouldn't have to ask someone else to do it for me. I got good at front end development because I wasn't happy with how programmers missed small nuances when building out my designs, for example.
The old adage often holds true - if you want something done right, you have to do it yourself. My vision of "right" and someone else's are often very different.
Even when I don't have time to do something myself, knowing that it can be done (and how to do it) gives me a lot of leverage.
But Not For All.
If you need to know every single detail about how something works before you're satisfied, or if you don't like bouncing from subject to subject, you're probably not cut out to be a generalist.
And many people don't enjoy the learning process - instead, they enjoy putting their skills to work each day and moving closer and closer toward perfecting those skills.
Know yourself. Work with what you've got and keep yourself happy.
Making It Work
To really be successful, I suggest you strike a balance between generalist and specialist.
Be really great at one thing, but decently good at several other things related to it. Be a great designer with a solid background in user experience and SEO, or a fantastic front end dev who can do light backend coding and pull together a decent layout.
Your primary work will improve because of the secondary knowledge you pick up. And whether you freelance or work for a company, you will be a more valuable resource.
Go beyond "enough to be dangerous". Know enough to talk fluently with someone who is a specialist in that area. This way you will be able to identify problems, taking care of minor ones and communicating bigger issues to the right specialists. You can be the person who sees the big picture and understands how all the parts interrelate.
In general, Jacks are best suited to small teams, management positions, or freelancing.
Small teams will appreciate your flexibility and are usually thrilled to see you tackle extra things that aren't in your job description.
A bigger company means more toes to step on, so your eagerness might not be well received. And with larger teams you tend to see a high degree of specialization and less opportunity to try out different roles.
If you are already in a big company, a management or "big picture" position could keep you from feeling boxed in. People higher up the ladder need a broader range of skills to keep their teams interconnected.
Freelancing can be a great option if you're business-oriented. You get to pick the projects that fit into your interests, so you will always have chances to stretch your skill set and learn new things.
If you do it right, being a jack of all trades should be considered a strength.
Your ability to adapt to a business's needs will be highly sought after. There is no reason to feel that this is an inferior path.
Generalists bring much-needed balance to the workplace and make communication across disciplines a lot easier.
So go ahead.... ignore the over-specialized masses and keep learning!
Written exclusively for WDD by Mindy Wagner. She started her love affair with the web over a decade ago when a computer science major showed her how to View Source. Her goal is to design creative sites that strike a balance between usable and beautiful. See Mindy's profile at Viget. You can follow her on Twitter @graphicsgirl
Where do you stand between being a generalist and a specialist? What works best for you and why?