Microsoft Interview Question
Software Engineer / DevelopersSometimes I don't understand the questions about designing. I can translate this question into something like, how would you design a multiprocess system with a shared resource? Where access times to the resource vary for different processes depending on previous accesses.
Consider, you ask a building architect to give a design in 10 minutes for a software to handle real-time video streaming. No matter what the experience of the architect is he would definitely give a design that sounds stupid to the interviewer.
Why? not because he's not experienced, because that's not his specialization, he has very minimal idea of current computer systems, how technology works, what solutions exist etc...
Similarly, two computer engineers talking about building an elevator doesn't make sense at all, unless one of them already has very good idea of the problem on before hand.
The point is, not all designs are generic, an elegant software design not necessarily solves an architectural design.
A few questions I would ask is,
1. how many elevators are there?
2. is there information available about which floor has high requests (maybe from statistical data)
3. How would you define efficiency? minimizing access time? or minimizing energy usage?
4. What kind of interface is available? can a user request for elevator remotely, maybe using cellphone?
5. What is the distribution of people in the building?
6. Can we ignore emergency protocols for now and focus more on efficiency?
What is "efficient"? How will it be measured?
- Anonymous November 28, 2010