After a candidate has described a system to my satisfaction, however, I always ask the following
question: “If you had had more time, what would you have changed or what feature would you
have added?” This type of open-ended question is extremely important. Someone who cannot
answer this question is pretty much an automaton that simply implements the will of others. I don’t
like working with automatons; I like working with thinking human beings who have opinions on
what they’re building and who are always thinking about how they can extend the systems they’re
working on. Good programmers understand that their systems are never really complete and that
there is always something else they could have done, if only they’d had more time.