Saturday, March 08, 2008

How did I prepare for my Program Manager interview's at Microsoft?

Program Manager interviews at Microsoft can be a lot tricky. The bottom line being that one has to understand what “Program Management” actually means. I had my round of interviews about 5 months ago, the memories of the interview and the questions still steadfast in my head!

The story is pretty funny though; I actually didn’t per-se apply myself to the position. A good friend of mine spotted this opening and thought I would really enjoy it and bang, I got an interview call one fine day. The first round of interview (supposed to be a bit technical) lasted for about 25 minutes. Subsequently I had another 5 more rounds of interviews (the typical Microsoft style) – I’m sure you would all have read much about the kind of questions that were asked. It’s strange though that when you wish to prepare for something, it’s the path for preparation that is the most important since the questions shared are not typically the ones that you might always get .. So it’s good to know what to expect and this blog is particularly my perspective of what to expect (pretty much covers all areas of my preparation). I do not intend to say that this is all you would need to prepare for a PM interview at Microsoft (personal judgment on this would be the best for you). My only intention of posting this blog is to share my personal experience with the outside world and throw some light on my preparation process and give some interview tips.

I’ve categorized this blog into broader subsections –
  1. General PM core competencies which I perceive are expected
  2. General background knowledge
  3. How to answer questions at PM interviews
  4. PM concepts (good to know)
  5. Other online references I had gathered.
So let us drill down into each of these subsections in greater detail now
General PM core competencies which I perceive are expected (TOP 10)
Here is a list of core competencies which in my perception are expected from a good PM –
  1. Leadership
  2. Positive attitude
  3. Interest and passion for technology, people
  4. Questioning attitude
  5. Strong technical and technological backdrop
  6. Open minded to problems – think before answering.
  7. Customer focus, user centric
  8. Aspire, plan, slog and achieve
  9. Strong interpersonal, communication skills - Is able to verbalize thought process
  10. Is open to alternate solutions/ options and not stop and stick to one personal best approach.
General background knowledge
Rule of thumb is know yourself very well .. know what you have said on the resume .. be highly prepared to answer both surface level and in depth questions on projects you have listed on your resume ..for example, my resume sports 2 years of work experience as a software engineer .. I had questions on the nature of work I was doing (to start with) .. I had actually developed a protocol/ library API for an open source call server. The next set of questions were very specific on the protocol per-se (didn’t expect it though) like was it sync/ async communication, thread model .. Also think for a minute about where you have been, where you are right now and where you would like to see yourself in the future .. remember a good PM is also someone who knows where his team has been (past learning’s, in this case, the team is just you), knows where the team is today (delivered as status update), has a target goal (project finish, in this case would be where you want to be in say 5 years) and has a future plan (project plans?). Some great questions (please look to reference section for more links to questions) which are always good to be prepared for –
  • Where do you see yourself in 5 years?
  • How do you plan to get to where you aspire to get to
  • Why do you wish to work with Microsoft?
  • Why Program Manager position?
  • What are your expectations on this position?
  • What is your understanding of the position?
  • What are your strengths? [very important to know]
  • What are your weaknesses? [very very important to be self aware]
  • Your previous experience in Project Management?
  • Which is your most favorite place to work? (company)
  • Tell me the courses you liked and why did you like them.
  • Give an instance in your life in which you were faced with a problem and you tackled it successfully.
  • What is your ideal working environment.
  • Questions on the projects listed on the Resume.
  • Do you want to know anything about the company.( Try to ask some relevant and interesting question).
How did I prepare to answer questions at PM interviews (the most interesting section)
Well, if you have had done your homework well by now, you would have known that one tip which is almost shared by every blogger for interviews at Microsoft is – to ask a lot of relevant and timely questions and to use the white board when you start drawing in air! .. that is quite true and made perfect sense to me. I prepared myself in a different style. I have always been methodical in my approach to things .. and so came up with this approach and it worked! Let me know what you think :)

1. Approach to Programming questions
  • Start out with basic block with input, output, what it does, what to do on exceptions.
  • Define the input and output further
  • Define the functioning algorithm of the block for the input
  • Define how exceptions are handled within the block or added as output
  • Define the test cases
    • Identify the break points for the variables passed in and processed like size limit on int or float or double
    • Pass non-expected input value (in all combinations)
    • Pass exception conditions (null pointers, divide by zero or whatever)
    • Attack on algorithm (breaking points)
  • Write the pseudo code (algorithm)
  • Write the code
  • Test it to prove it delivers the expected behavior

A figurative example of how I used the white-board

2. How to approach design questions
  • Redefine the problem in your own words to make sure you have understood the question – problem statement
  • Requirements gathering
    • Understanding who the end users are
      • Age
      • Personal preference?
      • Some background information
    • Understand what would be the core features of the system
    • Identify areas which are likely to change – what kind (if possible)
    • Identify and jot down business dependencies (if any)
    • Identify and jot down hardware dependencies (if any)
    • Identify performance, security, UI needs (if any)
    • Propose technological alternatives
      • Compare them against core-strengths
        • Security
        • Scalability
        • Accuracy
        • Ease of use
        • Consistency
      • Propose an optimal or personal choice
    • Assumptions/ limitations
  • Understand what kind of minimal (essential) functionality the system should achieve – from requirements gathering
  • Architect the system discussing about making it scalable, robust, secure, extendable
    • Discuss the limits of the architecture
    • Identify the integration thread
    • Identify the difficult design areas
  • Iteratively add the accidental/ additional features/ fine tuning
  • Define the use cases for the system (if they exist)
  • Design the system with data flow diagrams, how the functional blocks interact
  • with each other, what each functional block does (inner working of each block), error handling techniques/ modules for feedback and corrective actions [if applicable]

A figurative example of how I used the white-board

3. How to approach a Mind Teaser question/ logic questions
  • Rephrase the question in your own words
  • Just think out loud.
4. Personal questions about projects/ previous experience
  • Be true and honest and don’t hesitate to bring out past experience and accomplishments.
PM concepts (good to know)
  • SDLC?
    • Software Development Life Cycle – phases of software development.
    • Software Elements Analysis - Requirements gathering
      • Know who are the customers?
      • Know what has to be done – problem statement
      • Know when does this have to be implemented – discuss possible time lines (get a gut feeling)
    • Domain Analysis
    • Specification
    • Software architecture/ Design
    • Implementation
    • Testing
    • Documentation
    • Training and support
    • Maintenance (bug fixes, patches)
    • Models
      • Waterfall model
      • Iterative process
      • V-model
      • Extreme Programming
    • RUP
    • Agile Programming
  • Project tracking techniques
  • Estimation techniques
    • Effort estimation
    • Work break down structure

    • Estimating code size
    • Time estimation
    • Resource estimation techniques
    • Conflict resolution
    • Customer Relations Management
    • Change Management
    • Project Risks/ Mitigation Strategies
  • Technological decisions
    • Which programming language to choose?
    • Which technology to propose?
  • Improve existing software/ functionality addition
  • Design/ Architecture Related Preparation
    • Design principles
      • Features of a good design
    • Constraints to choose a particular design
    • Difference between design and architecture
Other online references I had gathered
  1. Questions - http://www.emicrosoftinterview.com/default.aspx - MUST SEE for RIDDLES
  2. http://www.sellsbrothers.com/fun/msiview/default.aspx?content=question.htm
  3. Questions - http://halcyon.usc.edu/~kiran/msqs.html
  4. http://blog.mattgoyer.com/technical-interview-at-amazon-sde-and-microsoft-program-manager
  5. http://adamjh.blogspot.com/2007/03/microsoft-program-manager-interview.html
  6. http://blogs.msdn.com/jobsblog/archive/2004/04/26/120598.aspx
  7. http://radio.weblogs.com/0105395/stories/2002/03/27/whatIsAMicrosoftProgramManager.html
  8. http://blogs.msdn.com/descapa/archive/2007/03/24/program-manager-pm-interview-tips.aspx
  9. http://blogs.msdn.com/farshid/archive/2007/05/10/what-does-a-microsoft-program-manager-do-demystifying-the-pm-role.aspx
  10. http://www.tylerbutler.com/dailydose/Pages/MicrosoftProgramManagerInterviewTheBreakdown.aspx
  11. Great one - http://blogs.msdn.com/farshid/archive/2007/05/10/what-does-a-microsoft-program-manager-do-demystifying-the-pm-role.aspx
  12. Logic problems - http://www.cut-the-knot.org/algebra.shtml
  13. Just great source of PM questions - http://www.pmconnection.com/modules.php?name=News&file=article&sid=27
  14. Steven Sinofsky's Microsoft TechTalk - http://blogs.msdn.com/techtalk/archive/2005/12/16/504872.aspx
  15. More Questions - http://www.interviewrx.com/discuss/fullthread$msgNum=34
  16. What Janelle expects - http://blogs.msdn.com/jobsblog/archive/2007/10/30/whatwelookfor.aspx
  17. Janelle Preparation help - http://blogs.msdn.com/jobsblog/archive/2007/11/05/problemsolvingquestions.aspx
  18. Unix Design Philosophy - http://www.faqs.org/docs/artu/ch01s06.html
  19. Microsoft F# - http://www.eweek.com/article2/0,1759,2212215,00.asp

Hope you would find all these information useful and good luck with your interviews :)

To end this post on a good note - here's a poem I wrote about PM a couple of days ago --
“Dawn to dusk with a husky voice,
not to wonder it could really be noise (to a few)

Things lined up on all directions,
no wonder they should actually be the reflections

Of the team and the vision,
something that we could envision!

United we stand and divided we fall
- a wonderful thing indeed to hear, for all!

To use it and use it correctly lies the key,
We would ultimately manage and prosper, the farther we see”

24 Comments:

Blogger Sridhar Katta said...

Cool Stuff! I really liked the way you have painstakingly put all the details.

One free advice! You should chose a Program Management topic and talk about it in depth every now and then.

Example: "Requirements Engineering" or "Managing Change Requests" etc.,

Monday, March 10, 2008 2:24:00 PM  
Blogger vishwac sena said...

Thanks Sridhar,

Phew! talk in depth .. I'm too young now for indepth talks .. :) .. anyways .. i'm overwhelmed by your thoughts! ..

Monday, March 10, 2008 4:36:00 PM  
Anonymous Anonymous said...

Just like to comment on this simple part.

It's interesting to see somebody else out there taking a job and turning it into art.

Thumbs up on both getting the job and the poem... :)

Wednesday, March 12, 2008 4:44:00 PM  
Anonymous Anonymous said...

I enjoyed your experience. I am sure it will help definitely!

Thanks!

Friday, March 14, 2008 9:40:00 AM  
Blogger vishwac sena said...

Thanks Sean, Dennis . .I'm glad that you enjoyed the post! :)

Sunday, March 16, 2008 11:43:00 AM  
Anonymous Anonymous said...

Thanks for fabulous overview of Product Manager thinking.

Monday, March 17, 2008 12:40:00 PM  
Blogger NotestoMyself said...

I was really confused where to start as there's so much to do and this is a great place to read about interview prep and get an understanding of what's expected. Great job on the blog!!! Would you be able to share some more on the prep around design questions, did you refer any books for this ?

Sunday, March 23, 2008 12:40:00 AM  
Anonymous Anonymous said...

This is really useful and an excellent approach to PM interviews. Thanks for the post!

Tuesday, April 08, 2008 2:25:00 PM  
Blogger Unknown said...

Good work! There was not much info for PM interviews, It is really going to be of a great help for people aspiring for PM role!

Thursday, April 17, 2008 2:58:00 PM  
Anonymous Anonymous said...

Good Job! I have an interview for PM in 2 weeks. Sure this will help!

Monday, September 22, 2008 6:26:00 PM  
Blogger pink_pearl said...

Thanks for the awesome post. I had a question about the scalability and security issues that should be addressed during design. Could you post an example of this ? I'd really appreciate it. Thanks!

Monday, November 03, 2008 6:49:00 PM  
Blogger the clairvoyant said...

Hi Vishwac,

Link 1
Questions - http://www.emicrosoftinterview.com/default.aspx
is no longer valid it seems

Nice Job,
I have a PM Interview scheduled in a few weeks and I am very scared about preparing for it.

Thanks

Thursday, October 15, 2009 9:50:00 AM  
Blogger SurenK said...

Great Blog for Program Management aspirants

Wednesday, January 13, 2010 8:16:00 AM  
Anonymous Vidya said...

Ur post was extremely useful and helped me a lot in my PM interview preparation. I am just curious to know... How different is a intern interview diff from that of a full time ?

Monday, January 03, 2011 4:59:00 PM  
Blogger Avni said...

Great Stuff!!
Thank you so much!!

Wednesday, November 09, 2011 12:20:00 PM  
Anonymous Gireesh said...

Hello Vishwac,

Your blog is a great source of information for Program managers however I will be going in a project Manager interview very soon.

Can you help me on how I can prepare best for this interview.

Thursday, January 19, 2012 6:53:00 AM  
Blogger Unknown said...

quite helpful and given a direction to prepare for program manager interview

Thanks

Saturday, November 24, 2012 9:01:00 AM  
Anonymous Anonymous said...

Nice Article really shows your efforts and keen interest in the topics.
Good Job :)

Tuesday, August 27, 2013 1:17:00 PM  
Blogger Unknown said...

Great post. I hope you write more good stuff like this article.

program management

Thursday, December 12, 2013 12:12:00 AM  
Blogger Matthew said...

A key skill that the individual taking on the responsibility of project management in an industrial build is the ability to fully appreciate the entire construction process from start to finish. This might involve being familiar with a range of equipment and materials. Also, it will be necessary to have the required knowledge and experience to eliminate any problems that might occur throughout the build.

what is contract management

Wednesday, January 22, 2014 10:41:00 AM  
Anonymous Anonymous said...

Good Post. Thank you so much for sharing this post. Visit https://www.levo.com/asanga-gunaratne
to know more.

Monday, July 16, 2018 11:57:00 PM  
Blogger Unknown said...

برنامج مكاتب الإستقدام - برنامج استقدام اونلاين

Wednesday, August 15, 2018 5:51:00 PM  
Blogger Unknown said...

شركات المياه فى السعودية

Wednesday, August 15, 2018 6:09:00 PM  
Blogger waled mohamed said...

برنامج ادارة استثمار عقارى

Tuesday, September 11, 2018 10:11:00 AM  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home