And now the third installment in the series I have been writing for Sapient Global Markets and posted on Slashdot.
Staffing for HTML5
Change is Afoot
Traditionally, web applications were built on a server in a classical programming language such as Java and backed up by some sort of database. The user interface was a thin façade over this main application layer.
Defining the Front-End Engineer
This mix is hard to find.
Software architecture is the realm of “traditional” programming and has been largely ignored by client-side developers. Client-side developers have not generally spent time focusing on algorithms, architecture, or other parts of the traditional computer science curriculum. Those that have gained this understanding are rare, and can expect to be very well compensated. They are so rare in fact, that hiring managers sometimes refer to them as “pink elephants” or “unicorns.”
Meanwhile, demand for this role only continues to grow. The U.S. Bureau of Labor Statistics estimates that the number of jobs for software developers will grow by 30 percent between 2010 and 2020. If the industry continues to evolve in the ways we expect, more and more of these jobs will require front-end development expertise.
For companies that are able to find a “unicorn,” most can only afford to keep one or two on staff. So, what is the intrepid hiring manager to do?
The most practical solution is to hire the best you can—within your budget—and train them the rest of the way.
A rigorous screening process is key for finding the best developers available in the market. If you don’t currently have an expert front-end engineer, then you’re going to suffer from a classic chicken and egg problem.
You need an expert developer to be able to identify expertise in others.
If you have yet to hire your first expert developer, and are not one yourself, consider finding a trusted partner to assist in building out a self-sustaining core development team.
Once you have expertise internally, the next step is to set up a reusable hiring process that will provide reasonable assurance that the developers you end up hiring are ready and capable of becoming future experts.
That hiring process may take different forms, but perhaps the most valuable element is the design and utilization of a technical exercise.
Using a Technical Exercise
There are no algorithmic puzzles or trick questions. The objective is not completion or technical wizardry, but instead to observe how the candidate approaches the problem and attempts to solve it.
This approach gives us a better overall understanding of the developer, as we are looking for a certain architectural mindset from developers at each level within our organization. The strategies and speed with which the candidate approaches the exercise, as well as the conversation that goes along through the interview, tells us quite a bit about where he or she will likely fit (or not fit) within the team.
Hire for Passion and Flexibility
The important lesson to remember is that skills can be taught.
What we are looking for is passion and flexibility. A passion for learning, growing, and producing outstanding work is necessary for building and maintaining expertise in an industry that is constantly changing. Developers need to be flexible in order to respond to changing requirements and industry practices; we have been known to change our technical exercise mid-stream for certain candidates in order to judge this very attribute. A candidate with passion and flexibility will tend to build expertise faster and maintain it throughout their career.
Commit to Growth
Once a passionate and flexible developer is hired, they can be trained into the skill set we require on projects and within our practice. If we have hired the right person with these qualities, they will pick up this skill set faster and with better results than an average developer.
Expertise comes with time and experience, but can also be lost. Because the industry continues to change, the only way to remain on the cutting edge is to continue to learn and grow. The onus for this is not only on the individual, but also on the organization. Providing growth opportunities is the only way to keep passionate developers engaged and to protect against attrition—which means starting again at the beginning.
Training front-end developers to become experts is hard, but finding the perfect developer is even harder. If we hire the best developers we can find at a variety of skill levels, and are committed to their growth, we can build an incredible development team that is prepared to handle the rigors of modern open web platform development.