Possible Duplicate:
Asking for a code sample of the company at an interview
Last year I changed jobs twice.. In the interviews with the companies, everything was so ideal and perfect. Latest frameworks, design patterns, distributed systems, scalable and enterprise systems, etc.. But in both cases something was not as expected..
First day after joining the company, you open the solution and find legacy code in a 10 year old technology, tightly coupled layers, design patterns incorrectly applied..
So, my questions are.. Has this ever happened to you? Is that often?
The interviewer makes sure I’m the proper developer for the company, how can I make sure this project/company is the proper one for me?
Can I ask them to show me the code???
5
Absolutely.
In my opinion, any candidate requesting an overview of the code base goes up a notch in my review. Regrettably, few ask.
Part of the challenge with this request is that they may not have scheduled time for it during the initial interviews. You may have to come back at a later point in time, or they may be able to extend out the length of the interview session to give you an overview.
I would start by asking about general architecture questions.
- What technologies are the using?
- What amount of time are they spending on defects vs. new development?
- What’s the trickiest part of their code base, and why?
- How long does it generally take to make changes?
All of those questions can give you very telling answers regarding the state of the code base.
If / when they are able to provide you a walk-through, consider asking about and looking at the following.
- How is the code organized?
- Who owns what areas and how are problems resolved (note that the names won’t be meaningful to you, but the answer can be telling.
- Ask to see the more “interesting” parts of the code. The interviewer will likely choose from some areas they have written, and that should give you some insight into the layout and structuring.
- Ask to see their common library and what routines they provide within their framework.
The key is to show genuine technical interest in their code base and how things are laid out. Every application has its warts and ugly code. Every application has faced time crunches and less-than-optimal code had to be put in place. Every application carries technical debt. Look to see that the fundamentals are in place, such as encapsulation between layers of the application.
4
You can always ask, but it is highly improbable they will show you.
You can try asking them to write a quick coding test so that you can evaluate, but I doubt that will fly either.
The closest that I have to figuring out how to detect this situation in advance is to ask about their coding standards.
- Ask for a copy of the their coding standard.
- Ask if they adhere to it.
- Ask what they don’t like about it.
The aim of these questions is to raise any red flags and let you know the depth of what you may be getting into before you get into it. I know it does not directly answer your question, but I do hope it helps somewhat.