title: OOP Design Problems in Interviews
body: <p>I am a software developer with an experience of 2 years. I have been involved in design and development of several "small" modules.</p>
  
  <p>I have been giving technical interviews lately. I have been asked to model design of various problems (for example Apple Genius Recommendation System etc). My expertise so far has been in developing relatively small modules. I want to mention how I approach design problems in hand :</p>
  
  <p>(1) Recognize most essential use case.</p>
  
  <p>(2) Do dynamic modelling (like collaboration diagram) to model system on basis of behavior</p>
  
  <p>(3) Draw class diagram based on dynamic modelling done in step 2.</p>
  
  <p>(4) Find out more use cases and iterate this process.</p>
  
  <p>(5) When I am satisfied, I ask my peers to have a review it.</p>
  
  <p>Though I've done fair enough in my projects so far, but interviewers are not pretty happy with this approach. Am I missing something as I am modelling for a big problem?</p>
  
  <p>I'ld appreciate any pointers.</p>
  
  <p>P.S. : I don't start with class diagram because I find very centralized architecture by doing so, while dynamic modelling helps me to decentralize the design.</p>