I was very recently teaching a data modeling course and decided to make the normalization section a bit more interactive by asking the group to normalize a business card. Sound easy? (Actually there are lots of neat design challenges hiding in this simple exercise!). This exercise brought back memories I had during a job interview for a data modeling position…I remember my interviewer giving me 10 minutes to normalize a business card.
In today’s roller coaster market, imagine having a list of technical questions to prepare for an interview for a data-related position. There are many lists of generic interview questions (for example “What do you want to be when you grow up?”), but there is little out there on technical questions. Send me any technical questions you have been asked (or have asked) during a job interview for a data-related position. The result of this design challenge will be a handy set of technical questions that can be used for both the interviewee and interviewer for a data-related position such as a modeler, analyst, architect, etc.
So what are some of the technical questions that can be used for both the interviewee and interviewer for a data-related position such as a modeler, analyst, architect, etc.? We had some really thought-provoking questions come out of this design challenge. Many of these questions may not have necessarily a right or wrong answer but might instead test the interviewee’s thought process and problem solving ability. I enjoyed reading all of the questions and picked up a few new questions to add to my own interview question collection. Hope you benefit from these as well.
Before we get started with the questions, I mentioned in my last design challenge that we will randomly pick one person who responded to the design challenge to win a special prize. I take all of the names of people who submit responses to each design challenge, write them on little pieces of paper, and whichever piece my daughter Sadie picks up first will win the prize! If Sadie picks up more than 1 piece of paper, the first one she puts in her mouth wins! For this design challenge we had a large number of entries…and the winner is….drum roll please…Gordon Everest!
Congratulations Gordon and your prize is on the way. Here is a picture of Sadie picking the winning piece of paper.
Ok, back to the design challenge. My first approach was to put the questions into categories. I was debating between the following categories:
- Technical (“What is 3NF?”) verse the more warm and fuzzy (“Do you consider yourself to be an expert modeler?”)
- Open-ended (“Tell me about your modeling career.”) verse closed ended (“What does ODS stand for?”)
- Hands on (“Model the information on this business card”) verse spoken (“What is 3NF?”)
But I quickly realized that many of the questions submitted contained more than just the questions. They contain a certain intention and explanation and in many cases a path to take through the questions. To preserve this structure I felt the best way to list the questions is in the exact syntax as was submitted to me. Please find below the questions submitted by each contributor listed in alphabetical order by contributor.
If you are going to be interviewing someone for a design-related position, consider this the possible menu of questions in which to ask to the candidate. If you are the candidate, you can study these questions and be prepared with answers. Thanks for the contributions!
What I would suggest as a technical question (if you could construe it as such) is to ask them to logically model a marriage where 2 and only 2 people are involved in a marriage at any point in time. The 2 people are not the same person. And a marriage exists over a period of time. They cannot overlap (bigamy/polygamy is not allowed). Whether or not you want to include same sex marriages is entirely up to you. I have asked this question and seen many funny scenarios. Anyhow, I don’t know if this is “technical” but it sure weeds out some of those who are “DA experts”.
Interesting challenge. When I was interviewing for jobs, I always expected to be asked things like what the second rule of normalization. I don’t think I was ever asked that or what Boyce-Codd was. The questions were always more practical like the question you were asked. When I do interviewing now one of my favorite questions is what was the most difficult modeling problem you had and how did you solve it? I also look through the resume and ask about some of the modeling assignments I see there. From the way those questions are answered you usually can get a good feel for the interviewees skill set.
I then spend a good amount of time asking Erwin specific questions, as anyone coming on here has to have experience using the tool. If you ask about the RTB, web publishing, glossary etc. you can get a good idea about what they know. I also like to throw in a question involving a known ERwin bug to see how deep the knowledge is.
Gordon C. Everest
One question that I was asked that really took me by surprise:
“Do you consider yourself a crack programmer?”
This was many years ago when the term “crack programmer” had a well understood interpretation in our industry and any questions relating to data modeling were as yet unknown. I don’t know how that phrase would be interpreted these days. Back then, it meant a really good programmer, fast and accurate. An equivalent today might be an “ace programmer.”
The point of the question was to get a self evaluation of your own capabilities. Today, I might ask “do you consider yourself to be a crack/ace/really good data modeler”? This goes beyond just asking if you have had experience as a data modeler. With regard to programming, I have known people who would write code forever, and never be able to produce working code – a clean compile and with correct logic. With programs, it is not sufficient to be syntactically correct, i.e., follow the rules of the grammar. Similarly, with data models it is not sufficient to be syntactically correct, that is, to use the constructs correctly. It needs to be an accurate model (representation) of the universe of discourse, or the domain being modeled. So the question might be: Are you a really good data modeler?”
What is the concept of abstraction in data modeling? When and why should it be used?
Kinda off the subject … but your question of “What do you want to be when you grow up?” reminded me of a response a little girl once gave … “ALIVE!!” She probably meant physically; however, I think you could apply it to our mental, spiritual and career wellness as well. Okay … technical questions.
1) Define third normal form and give an example of placing a model in third normal form.
2) What is specialization/subtyping? Give an example.
3) What is your definition of meta data? Give some examples of business related meta data?
4) What’s the difference between a dimensional model and a third normal form data model?
5) Define as many of these acronyms as you can: (XML, LDM, PDM, EAI, ODS, DSS, CIF, etc.. Also include a bogus one to see how an individual handles not knowing one of these provided they knew the rest)
PS The thought behind these is to find a good senior data architect; however, what are the qualities of a good beginning data architect? In other words, they might not know the majority of the answers; however, they have the qualities to make a good DA. Define what qualities make a good DA (e.g. attention to detail, visually oriented, far sighted vs. near sighted, etc).
How’s this for a way to gauge the candidate’s grasp of abstraction:
Part 1: Model a ‘simple’ customer scenario (Customer is usually far from simple-but don’t tip the candidate off to that fact). Say you are a manufacturer who sells business machines directly to other businesses. (Here you can see if he allows for multiple addresses for different purposes, multiple contacts for different purposes and multiple ways to contact those folks).
Part 2: Now, a twist: How do you model the fact that one of your customers may also be a supplier. (Say a toner distributor who buys his copy machines from you). You want to make sure that all of your systems are aware of this fact to ensure consistency in name and address info, applying special discounts, etc. Feel free to modify your model from Part 1. (You’re looking for the classic party concept here. If the candidate doesn’t ‘get it’, then it’s a good sign he/she’s probably very physical-model oriented, and not into the need or concepts of logical modeling.)
– Are you familiar with normalization?
– Have you completed any kind of data modeling training?
– What data modeling software or methodology do you currently use?
– How are your communications skills? (probably the most important question)
– Do you have any application programming, project management, or other technical background?
– Do you enjoy detailed, technical, and sometimes mind-numbing work?
– Are you familiar with the concept of redundant data?
– Are you familiar with CRUD matrices?
– Can you work under very tight deadlines?