• P.T. Smartypants (unregistered)

    Umm...Actually, I don't think you need the constant. Duh.

  • (cs)

    If only she added, some xml, and a factory... yes we will need a factory...

    She would have got the job as Technical Architect for most of the places I've been.

  • Dion (unregistered)

    Wow, I applaud the interviewers tolerance for such stupidity. I have to say that I would have totally ripped her for giving such a dumb answer. She probably would have switched professions.

  • (cs)

    All she needed to say was "temporal modeling" dear sir and pretend that the interviewer was the real WTF.

  • (cs)

    "You mean that you wouldn't use a variable, a constant or a flag? Then what would you use?"

    Well, maybe a MaryBean.

  • (cs)

    The true WTF is any company where time off needs to be requested in a process that involves a supervisor, an unspecified "chain of command" THEN the department head until it even reaches HR.

    Can you say "beaurocractic monstrosity"? I bet the management would seriously consider suggestions to outsource whatever their actual money-making business is in order to better concentrate on administrating themselves.

  • (cs)

    I would've just kept asking questions about the first mentioned item, i.e. "what's the constant for", etc. and go until they just admit they don't know what's going on.

  • Mick (unregistered) in reply to Cheatah
    Cheatah:
    Well, maybe a MaryBean.

    No, no, no. The story has been anonymized and names changed. The actual interviewee was named Paula so it would have been a Paula Bean.

  • Tammy (unregistered)

    So exactly how would any of you have answered this question?

  • Walleye (unregistered) in reply to sir_flexalot
    sir_flexalot:
    I would've just kept asking questions about the first mentioned item, i.e. "what's the constant for", etc. and go until they just admit they don't know what's going on.

    What would be the point of that? It's obvious that she is not qualified for the job and she's not going to get it, what do you gain by humiliating her. Do you also like to pull the wings of flies?

  • (cs) in reply to Tammy
    Tammy:
    So exactly how would any of you have answered this question?
    First I'd have asked whether they wanted an object model or a DB schema. Since they wanted to test SQL skills, presumably the latter. In that case, I don't see anything wrong with one table to represent a time-off request with an enum column for status and a foreign key pointing at the person currently responsible for reviewing it - then there would need to be some way to decide to whom the request passes when one step is completed, but I'd need to know more about the business process to decide on what that can depend.
  • rd (unregistered)

    So you're saying that an effective chain of command employee time off approval system couldn't be designed with a variable, a constant and a flag? The HR department where I work implemented something in C++ very similar to what Mary suggested.

    const bool bFlag = false; const bool bApprove = bFlag; int index = 0;

    while(!bApprove){ RequestTimeOff(supervisor[index++]); }

  • Chris Kessel (unregistered) in reply to Tammy
    Tammy:
    So exactly how would any of you have answered this question?

    You just start brainstorming.

    Ok, we'd need some object to hold the TimeOff object or some such and it'd need a reference to the user, fields for the dates, and probably fields for the types of hours used (vacation, unpaid, floating holiday, etc).

    So that's the basic object we're getting authorized. Now we need to track the authorization. There can be multiple operations, so I suppose we'd need a List of TimeOffAuthorizations or some such. The TimeOffAuthorization would need a field for the authority (maybe a reference to a user), whether the time off was give a yea/nea, and maybe an optional field for an explanation of denial. For routing, we could probably assume the end of the list is the next person we're waiting for authorization from.

    We'd probably need some way to know we're done with the chain of command. Either a flag in the main time off object or maybe a special authoree in the List. That's a nit though and I'd wait until later to decide that.

    So, that's a first draft at the domain model. Now we have to map that into the database. First, I'd...and so on...

    It's not that hard a question. You just start brainstorming a soution like you would to any requirement.

  • Spell Checker (unregistered) in reply to brazzy
    brazzy:
    Can you say "beaurocractic monstrosity"?
    No, I can't. Only "bureaucratic monstrosity".
  • me (unregistered) in reply to Tammy
    Tammy:
    So exactly how would any of you have answered this question?
    Mary? Is that you?
  • bg (unregistered) in reply to rd
    rd:
    So you're saying that an effective chain of command employee time off approval system couldn't be designed with a variable, a constant and a flag? The HR department where I work implemented something in C++ very similar to what Mary suggested.

    const bool bFlag = false; const bool bApprove = bFlag; int index = 0;

    while(!bApprove){ RequestTimeOff(supervisor[index++]); }

    I like how the only way out for the supervisor is to approve the time off :-) Not getting your time off must be an exception (pun intended).

  • SomeCoder (unregistered)

    So is the position for an architect or a developer? The story says ".NET developer". Therefore, this question is absolutely the real WTF.

    If you want to test SQL skills, put a schema in front of the candidate and have them write some SQL that pulls out some specific information you require. Make it so they have to join tables together, etc. Maybe even make them write some queries that create the schema using only code if you want.

    Asking a .NET developer to design a system is not a test of SQL skills.

    Mary's answer was still a WTF but the question was pretty bad.

  • Nick (unregistered)

    She was blindsided by the “think out of the box” cliché.

  • Chris (unregistered)

    This is probably about 60-70% of graduate from the computer science program at many universities. They are given such specific requirements for the school project that they can not design anything from a concept. I am betting she was a recent graduate from a bad program.

  • (cs) in reply to SomeCoder
    SomeCoder:
    So is the position for an architect or a developer? The story says ".NET developer". Therefore, this question is absolutely the real WTF.

    If you want to test SQL skills, put a schema in front of the candidate and have them write some SQL that pulls out some specific information you require. Make it so they have to join tables together, etc. Maybe even make them write some queries that create the schema using only code if you want.

    Asking a .NET developer to design a system is not a test of SQL skills.

    Mary's answer was still a WTF but the question was pretty bad.

    Unless the position explicitly calls for "average-to-strong SQL experience", which it sounds like it did. Sounds reasonable to me.

  • gruckiii (unregistered)

    I am not trying to excuse such a poor answer, but I think they should have been more specific and asked how would you go about designing the underlying database. The words data structure, as opposed to storage, usually means the in memory data structure you use in your program.

  • elias (unregistered) in reply to bg

    Does that actually get you out? bApprove is a constant, set to false...

  • :-X (unregistered)

    The key to solving any generic problem is asking questions to get a more specific problem to solve. Instead of trying to just answer it blindly she should have been asking "the user" (the interviewers) questions. That would have led her to the solution.

  • SomeCoder (unregistered) in reply to BradC
    BradC:
    SomeCoder:
    So is the position for an architect or a developer? The story says ".NET developer". Therefore, this question is absolutely the real WTF.

    If you want to test SQL skills, put a schema in front of the candidate and have them write some SQL that pulls out some specific information you require. Make it so they have to join tables together, etc. Maybe even make them write some queries that create the schema using only code if you want.

    Asking a .NET developer to design a system is not a test of SQL skills.

    Mary's answer was still a WTF but the question was pretty bad.

    Unless the position explicitly calls for "average-to-strong SQL experience", which it sounds like it did. Sounds reasonable to me.

    I wouldn't assume that "average to strong SQL experience" for a .NET developer means that you'll be designing schemas, stored procedures, etc. If that's what they truly want, then they want a DBA. Or a VERY highly paid .NET who happens to also have DBA skills.

    shrug Requiring strong SQL skills for a .NET developer isn't unreasonable at all but it seems like the question was geared toward an architect or DBA, not a developer. A developer might need to know how to write some relatively complicated stored procedures (or since it's .NET, CLR procedures). I wouldn't expect them to know how to design the database efficiently.

    Granted, I still think Mary's answer shows that she wouldn't be good at SQL or programming in general so I guess the question accomplished its purpose of weeding out a potential WTF programmer :)

  • dkf (unregistered) in reply to brazzy
    brazzy:
    The true WTF is any company where time off needs to be requested in a process that involves a supervisor, an unspecified "chain of command" THEN the department head until it even reaches HR.
    Hey! That's our official process that you're dissing there. Stop it; you're making me feel bad...
  • (cs) in reply to Tammy
    Tammy:
    So exactly how would any of you have answered this question?
    Personally, I would have laughingly said "just buy one of the numerous ready made systems to handle that sort of task, and then requested information on what sort of real technical challenges this department faced.
  • PeriSoft (unregistered) in reply to Tammy
    Tammy:
    So exactly how would any of you have answered this question?

    I probably would have said, "What the hell? I'm here for the VP Marketing position!"

  • BitTwiddler (unregistered)

    Here's a good question for testing SQL skillz:

    Imagine that a professor needs to store a set of multiple-choice test questions, with a suite of answers for each question, exactly one of which is right. However, the programmers building this app are incredibly bad, so you want to protect the database as much as possible from bad data (two 'right' answers, no 'right' answers, answers without questions, etc), by using indices, RI, etc. Note that students' answers need not be stored; only the questions and set of potential answers.

    Propose a set of tables/indices/RI to store this data. Are there any 'holes' in your solution? What other possible solutions did you consider, and why did you discard them?


    I encourage all you non-WTF people to give this a try - it's not nearly as trivial as it seems to close all the holes, and even when you do, the solution is right on the borderline between very elegant vs a horrible hack.

  • scruffy (unregistered) in reply to Grovesy

    We will need a factory?

    No, I think you'll find that we demand a shrubbery!

  • (cs)

    Don't forget, SQL skills are unimportant and lots of skilled developers don't have them. Also, testing doesn't prove anything. The important thing is, does she have a degree? If so, then they screwed up in letting her go.

  • Me (unregistered)

    TRWTF is that someone would go and fetch a fan when a hot woman in front of you says "Oh, it's hot in here!". She was obviously trying to take the interview in another direction.

  • Anon (unregistered)

    Ooh! Ooh! I know the answer it is called 'email' or 'walk in the bosses office and ask'. How about this if you need a NON-HR database to track time off requests you either have to get approval too far up the chain or your boss is supervising too many people. So my out-of-the-box answer is: 'A database for this? You must be joking. Someone took one too many spreadsheets are bad, databases are good course.'

  • zeke (unregistered)

    More importantly, was she cute?

  • Mary (unregistered) in reply to BitTwiddler

    TBL1: Index,Question,CorrectAnswer - All fields req. TBL2: Index,IncorrectAnswer,AssociatedQ(IndexfromTBL1) All fields req.

    Professor ensures correct answer is correct, any incorrect answers associated to question are incorrect (only a human could do this). App logic only allows test to be created from questions that have at least 3 incorrect answers available to choose from.

  • Gedoon (unregistered)

    Five years from now she'll be the consultant who writes ten lines of crappy VB code and charges one gazillion $$$ for making your companys old system "enterprisy" and your boss will thank her for that.

  • (cs) in reply to Anon
    Anon:
    Ooh! Ooh! I know the answer it is called 'email' or 'walk in the bosses office and ask'. How about this if you need a NON-HR database to track time off requests you either have to get approval too far up the chain or your boss is supervising too many people. So my out-of-the-box answer is: 'A database for *this*? You must be joking. Someone took one too many spreadsheets are bad, databases are good course.'

    That was so bad it hurt.

  • Adam (unregistered)

    I've had this happen to me before.

    A guy comes in, talks with my boss for a while then he sends myself and a coworker in. We ask him about his resume for a while then tell him we're about to ask some technical questions.

    Him: "I wasn't told there would be any technical questions." Me: "Oh, sorry. [pause] Well, that's what we're here for. Do you have to be somewhere?" Him: "No" Me: "Okay then, how about we get into some technical questions then?" Him: "I wasn't prepared for technical questions? I didn't know there would be any." Me: "It's okay, they're not that difficult, just some basic ones that your resume says you should be able to answer." Him: [annoyed look]

    I started out with very basic programming questions (I usually skip them) and he tried to stammer out answers but couldn't.

    I was seriously apalled. More research into this candidate and the company he was working at had a practially empty web page. WHOIS on the website showed him as the owner. A bit more research and he also owns a laundromat.

  • (cs) in reply to rd

    lol.. she's a genius alright :P

  • (cs) in reply to rd
    rd:
    So you're saying that an effective chain of command employee time off approval system couldn't be designed with a variable, a constant and a flag? The HR department where I work implemented something in C++ very similar to what Mary suggested.

    const bool bFlag = false; const bool bApprove = bFlag; int index = 0;

    while(!bApprove){ RequestTimeOff(supervisor[index++]); }

    That doesn't seem to have any way of allowing the managers to deny your request for time off.

    I like it.

  • (cs)

    I was going to say something about how "we just want to see how well you think outside the box" is the real WTF here, but someone beat me to it.

  • bobbyG (unregistered)

    First we do some research and see if anyone has already built either a time reporting application or a work flow application. Maybe there is already one in our corporation in another division? If not, odds are pretty good we find one that is floss. Next we assemble the components.....exactly why do we need SQL skills here?

  • (cs) in reply to FredSaw
    FredSaw:
    SQL skills are unimportant and lots of skilled developers don't have them.
    The job they advertised requires SQL experience, so if you don't have any, you shouldn't apply. I know I wouldn't. I am a skilled programmer, but I have so far completely avoided (not entirely by choice) having any experience with databases. Having only read a few SQL books, I am bound to ask WTF questions like: "so, all those examples in the book have text output; does that mean I have to write a friggin parser for every query I do?", which will pretty much guarantee that I won't get the job. So why bother? I'll just look elsewhere.
  • (cs) in reply to SomeCoder
    SomeCoder:
    I wouldn't assume that "average to strong SQL experience" for a .NET developer means that you'll be designing schemas, stored procedures, etc. If that's what they truly want, then they want a DBA. Or a VERY highly paid .NET who happens to also have DBA skills.

    shrug Requiring strong SQL skills for a .NET developer isn't unreasonable at all but it seems like the question was geared toward an architect or DBA, not a developer. A developer might need to know how to write some relatively complicated stored procedures (or since it's .NET, CLR procedures). I wouldn't expect them to know how to design the database efficiently.

    It sounds like your company has pretty specialised job roles. Don't assume that's universally true. Here, we don't expect to need an "architect" (or a DBA - a database administrator) to design a database table. I consider that as much a developer's role as designing the data structures in their code. And I would consider "average to strong SQL experience" to include knowledge of how to design a database, not just how to query it. (Yes, on top of .NET coding skills - I don't think it's asking too much!)

  • x (unregistered) in reply to rd

    Isn't this an infinite loop, since bApprove is a constant?

  • (cs) in reply to Adam
    Adam:
    Him: "I wasn't told there would be any technical questions."

    Obviously you should have given him time to read "learn Java in 24 hours" and come back when he was ready.

  • BitTwiddler (unregistered) in reply to Mary
    Mary:
    TBL1: Index,Question,CorrectAnswer - All fields req. TBL2: Index,IncorrectAnswer,AssociatedQ(IndexfromTBL1) All fields req.

    Professor ensures correct answer is correct, any incorrect answers associated to question are incorrect (only a human could do this). App logic only allows test to be created from questions that have at least 3 incorrect answers available to choose from.

    Very good! most people wander around for quite a while before coming up with this (if at all). Somehow storing the correct & incorrect answers in separate places just doesn't seem to occur to people. And even when it does, it still doesn't "feel" right.

    In fact, we've NEVER had a candidate actually pass this test (we're a small company, and have only used this a handful of times). We've had to settle for people who could at least recognize the flaws in a more "obvious" approach, and since they weren't being hired as DBAs (just programmers who ought to have reasonable SQL skills) this was sufficient.

    Want a job? ;-)

  • Mary (unregistered) in reply to BitTwiddler

    Yipee! And to think I haven't touched a database in 8 years and even then only for a few weeks total.

    I'm putting DBA on my resume now. ;-)

  • (cs) in reply to Tammy
    Tammy:
    So exactly how would any of you have answered this question?

    First I'd like to know about the purpose of the application. Is it to expeditiously approve time-off requests, or to deny them through an enterprisey solution that gives appearances of activity while bogging down each request in an impassable quagmire of bureaucratic procedures.

    If the former, I'd recommend changing their business methods to avoid so much micromanagement. Let each supervisor decide on his immediate subordinates' time off requests. Then all that each of them would have to do is stop by his office and ask. It's efficient, free, and is what every sane person would do anyway.

    In the latter case there would be some serious design issues. First we must ensure that the time-off requests can be aggregated at each level into a compact report, stating total time off, total workers on time off, and productivity loss estimates. When the CEO gets approval requests one by one, he will probably sign them. If he can see the enormous numbers calculated above, which get even larger if you can include yearly projections, his pointy hair will turn white and all requests will be summarily denied.

    Second, a show of activity is needed. Modern computers are just too darn efficient, so delay fields must be introduced. For example, on the pretext of reducing managers' workload, all requests should be reviewed in bulk on a particular day of the month. Some code will also be needed to optimize the scheduling of this day for each level of management to maximize the time in the queue. Additionally, it is prudent to require supervisor approval for denials as well as approvals. This ensures that each requests goes all the way to the top.

    To track all this activity and to placate the grumbling workers, each time off request should generate a daily progress report email to the submitter. Something like "Your dedication to this company is very important to us. Blah blah blah. Your request is being processed by our highly competent computers. Requests will be processed in the order received. Your current place in the queue is 43777381928349. The approval level on your request is 445 of 12378758. Have a nice and productive day!"

    A weekly time off status report should be generated for each manager, with summary totals, yearly projections, cost estimates, etc. The report should include a detailed powerpoint presentation, bulleting each important point, displaying historical data in graphs, and calculating a manager's "approval rating" by dividing the number of denials issued by the number of approvals issued. (No pressure should be applied to increase one's rating. That would ruin the game, and besides, they'll do it anyway)

    Oh, you mean the actual database structure? Uh, sorry, I don't know much about SQL. I think I'd use a table, a join, and a, uh... what's it called... a stored procedure!

  • (cs) in reply to BitTwiddler
    BitTwiddler:
    Mary:
    TBL1: Index,Question,CorrectAnswer - All fields req. TBL2: Index,IncorrectAnswer,AssociatedQ(IndexfromTBL1) All fields req.

    Professor ensures correct answer is correct, any incorrect answers associated to question are incorrect (only a human could do this). App logic only allows test to be created from questions that have at least 3 incorrect answers available to choose from.

    Very good! most people wander around for quite a while before coming up with this (if at all). Somehow storing the correct & incorrect answers in separate places just doesn't seem to occur to people. And even when it does, it still doesn't "feel" right.

    In fact, we've NEVER had a candidate actually pass this test (we're a small company, and have only used this a handful of times). We've had to settle for people who could at least recognize the flaws in a more "obvious" approach, and since they weren't being hired as DBAs (just programmers who ought to have reasonable SQL skills) this was sufficient.

    Want a job? ;-)

    I'm not exactly a DBA so out of curiosity, how would the following compare with the above?

    TBL1: Index,Question - All fields req. TBL2: Index,Answer,AssociatedQ(IndexfromTBL1), RightWrongFlag All fields req.

  • Todd (unregistered)

    The WTF is they didn't just ask her over the phone how much experience with SQL she had. Wasted her and their own time. To me she just didn't understand the question, doesn't mean she's stupid. If I am going to go in for an interview, they should know a lot about me already.

    People at companies develop their own language and assume everyone outside uses the same terms.

    During an interview during a rapid fire on tech questions I was asked, "How do you like working with designers?"

    I answered, "They can be buggy and a pain sometimes, but I like to use them a lot and I am pretty good with them."

    3 questions later they finally figured out I was taking about code designers while they were talking about graphic designers.

Leave a comment on “The Case of the Clueless Candidate”

Log In or post as a guest

Replying to comment #:

« Return to Article