Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Our interview process currently consists of several coding questions, technical questions and experiences at their current and previous jobs. Coding questions are typically a single method that does something (Think of it as fizzbuzz or reverse a string kind of question)

We are planning on introducing an additional step where we give them a business problem and ask them to draw a flowchart, activity, class or a sequence diagram.

We feel that our current interview process does not let us evaluate the candidate's thinking at a higher level (which is relevant for architect/senior level positions).

To give you some context, we are a mid size software company with around 30 developers in the team.

If you have this step in your interview process, how has it improved your interviewing veracity? If not, what else has helped you evaluate the candidates better from a technical perspective.

share|improve this question
3  
I've edited your question to make it a bit less poll-ish. We'll see how it flies. –  Robert Harvey Dec 14 '12 at 20:08
2  
Are we talking like... UML Class Diagrams... to spec? Or boxes and lines? –  Steve Evers Dec 14 '12 at 20:21
5  
It's totally reasonable to ask a developer to model a problem. However unless your job req specifically requires UML, you should not expect every candidate to know that specific modeling technique. –  Ed Hastings Dec 14 '12 at 20:59
    
At least you'll screen out the ones who have never heard of UML. –  user16764 Dec 14 '12 at 21:45
2  
Be careful - just because someone can/cannot draw a pretty picture in UML does not mean he can/cannot design. But if you find Fizz Buzz is a good enough test, I suppose it might work for you –  mattnz Dec 15 '12 at 9:29
show 3 more comments

5 Answers

There's nothing wrong with testing for object-oriented design skills in general, but you need to realize that for a lot of companies, perhaps even most, UML was something they either rejected out of hand as not being a good fit for their company, or something they decided to do "from now on" then quietly abandoned after a few months.

If you honestly care about UML and the candidate doesn't know it, spend five minutes explaining it. It's not that hard to learn, and presumably learning new things is in the job description anyway.

share|improve this answer
    
We really don't care if they know UML or not. All we care about is evaluating their design skills and UML was one way we thought we could do, during an interview. Is there any other technique we could use? Thanks –  DotnetDude Dec 15 '12 at 15:30
4  
Just ask them to draw the inheritance and composition relationships on a diagram. If they happen to use UML, great. If not, you can evaluate their communication skills. –  Karl Bielefeldt Dec 15 '12 at 16:22
add comment

We only include this step in the interview if the position we are interviewing is of a senior developer or one expected to perform this level of modeling. It sounds like you might be pre-optimizing your candidates for roles they may not be required to do.

Consider doing that evaluation for architect/senior as the current developers grow into that position over time or when the time comes that you need the architect role then consider testing for those skills during the interview.

All that being said, there is nothing wrong in seeing the level of skill in various data modeling techniques or in the developers ability to abstract solutions in an easy to understand manner on a white board. That is a good skill and normally during my coding interview step that comes out in the developer when they are solving the problem on the whiteboard. It just isn't a particular item we test specifically for.

share|improve this answer
    
I think even junior-level developers should be able to draw a simple class or sequence diagram. If they can't draw one, chances are they can't read one either, so how are you going to explain the architecture to them? And it isn't like basic UML is that difficult to learn, hopefully they're using it (if not teaching it) in schools these days. –  TMN Dec 14 '12 at 20:23
1  
I don't disagree @TMN I just don't specifically interview for it unless called for by position. Normally when doing the coding test at various points I encourage explaining the algorithm or design and it just naturally comes out. It hasn't been something that I added in specifically. –  Akira71 Dec 14 '12 at 20:27
    
@Akira71 Can you give me an example of what the business problem is for which they draw the UML? Also, has this helped you screen for better senior level candidates? –  DotnetDude Dec 15 '12 at 15:36
    
@DotnetDude Really it would require more space than here, but I often ask a design question like "Using any software methodology and modeling too you are comfortable with please design me a house." Normally the first thing I would expect here are what are the requirements and have them ask me questions back. A house for a giraffe that needs a birthing room is different than a house for a family of 3. After that I add interactions that they will have to model. It has helped. Note I don't ask them to use UML specifically. –  Akira71 Dec 15 '12 at 15:46
add comment

One thing that I've found about UML: with the advent of agile and other development methodologies, not every developer will have been exposed to class modeling, sequence diagramming, etc.

One thing that everyone does understand at some level, however, is a flowchart (or "activity diagram") to some aspect. I've done this in a few interviews - asked someone to sketch out a solution by drawing a flowchart on the board given a certain use case - with some questions about approaches, etc. It can get to the level of 'higher thinking' relatively quickly without getting caught up in syntactical issues, etc.

share|improve this answer
    
I really think this sort of question also lends itself to finding out if they can communicate effectively or not. Forcing them to use a diagram helps you figure out their communication style as well. –  CokoBWare Jan 7 '13 at 19:23
add comment

I have no issue with using any metric within the hiring process. What I have an issue with is companies not following up and grading their metrics. Do they work? Are the candidates with higher ratings proving to be better employees? If you do not measure, you might as well just paper a wall with resumes and toss a dart.

doug

share|improve this answer
add comment

I would put less emphasis on a particular style of diagramming, and more on just making sure they could illustrate some type of logical organization and/or flow on a white board. So long as your developers can look at whatever's up there and it make sense to them and they find it informative, the specifics of "how" it's drawn up are largely irrelevant.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.