My favourite interview question
he question they asked was:How might you design a program that lets people play Monopoly with each other over the internet?
Of course there's a lot to be learned on both sides when an interviewee is asked to design something and explain their design. Both parties learn a lot about each other's communication styles and approach.
It works both ways: for example, if I were sketching out a design and the interviewers repeatedly interrupted me to discuss my UML notation, I could infer certain things about their culture.
Those kinds of issues apply to any reasonably sized design problem. Anything larger than, say, "write a procedure that reverses a string in place." But let's look at three of the characteristics of the game of Monopoly that I find attractive for this exercise:
- Monopoly is poorly defined;
- Monopoly requires more than simplistic object design, and;
- Monopoly is too big to be designed in one session.
This 'problem' makes it a great interview question. It drives a lot of valuable interaction between the candidate and the interviewers. You have to ask questions, make assumptions, and know when to stop gathering requirements and start driving the design.
If the candidate uses up all of the interview time trying to obtain perfect requirements, we have a problem. In the software development I do, the requirements are never perfect. I don't demand that a candidate try to create an agile, iterative process on the spot, but I look for someone who knows when to say "close enough, let's move forward."
Another good way to move forward for both interviewer and candidate is to say, "ok, we've covered the most important requirements. Let's make a bunch of assumptions and document them. In a real-world situation we could obtain feedback on the assumptions after presenting an initial approach."
After all, who's to say that a programmer, designer, or architect is always 100% beholden to others for requirements?
Read full article from My favourite interview question
No comments:
Post a Comment