After we saw why most UI developers are underpaid, let’s examine why it is hard to filter out the best ones.The problem starts with defining the job description. I wanted to build an enterprise class web based service on .Net platform.
In ideal world I would have hired the following people:
1. Product manager to define product requirements, use cases and priorities
2. User experience expert to define interaction, hierarchy and guidelines
3. C# back-end programmer to program business logic, ERD and database access
4. C#, UI architect to define and implement UI modeling , framework, components
6. Graphic designer to implement ,well, the graphics
7. Flash programmer\designer for rich client experience
In the real world I am the product manager. The user experience and graphic design positions are outsourced. The hard part is to differentiate the C# back-end programmer,UI architect and the HTML Master. Sadly we could only afford two in-house positions for the three roles.
In the beginning, we made the mistake and asked for a “Web developer”. As a result we got the resume of John. John had no computer science degree; he worked for three years as a web site administrator and studied HTML in a technical college. John could not fulfill our position since he has no coding experience and did not develop any enterprise class applications.
Our second definition focused more on the programming aspect and on the “.Net” side.
Rachel listed six years of developing VB application in big IT software integration shop. Unfortunately she had neither web based background nor C# experience.
Tom sounded very promising. He had ten years of experience, four of which as team leader for multifaceted system management software. He had a graduate degree from a top university and seemed mature, experienced and friendly. In our first talk we shared insights about UI design, modeling and common mistakes. I really liked his character and insights.
We moved on to the technical part of the interview. Now, everyone has his own type of questions in such occasions. I usually hate asking riddles or peculiar C++ fine details that only stroustrup understands. My favorite questions are real life problems I encountered, which are hard to solve and have more than one acceptable solution.
Just to get going, we asked Tom to write down binary search implementation. Amazingly, he had a great difficulty in performing the task. More surprisingly, he was not the only candidate who had trouble in this question.
Internally, this caused some debate. Some people claimed it has been ten years since he graduated, and it is possible he just does not remember the more algorithmic side of computer science. While I am willing to accept this assumption, I just fail to see how one can be a programmer and forget how binary search works. This is really elementary stuff. It’s true 90% of programmers get it wrong, but we are not very picky on the exact implementation details.
To make matters worse Tom did not seem to have a clue on the internals of frameworks he was using. While it would have been great if one could develop web application with no concept of HTTP, but it just does not work like that in the real world. An exceptional UI developer needs to know how HTTP works to test the application, debug it and improve its performance.
Jane was far more impressive in the technical aspects, she had lots of experience in C++,MFC, desktop applications and a great track record. Unfortunately she was afraid to move into a new domain after 12 years of expertise. I tried to explain MFC is a dying art, bud had very limited success.
Next Post – The Consclusions !