|
5 reasons
you don’t really want a jack-of-all-trades developer
By Rebecca Murphey
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:
- 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.
- 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.
- 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.
- 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.
- 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 near 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.
Until next time,
Rebeccca Murphey
To read
more of Rebecca's work, visit her blog.
|