- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Admin
Prospective Boss: I understand that Mr Jones is an expert Brainfck programmer. Is that so? Reference: Mr Jones worked for Brains, Inc between April and November last year. Prospective Boss: Well, he claims to have been the main Brainfck evangelist on a mission-critical project during that time. Is that so? Reference: Mr Jones worked for Brains, Inc between April and November last year. Prospective Boss: Did he at least contribute to the project? What was his job title? Reference: Mr Jones worked on that project during his employment here. His job title was "Senior Systems Analyst." Prospective Boss: I hate to ask, but it was kinda dark in that interview room. Is Mr Jones a blonde with a huge rack? Reference: Mr Jones worked for Brains, Inc between April and November last year.
And so on. This is of course an exaggeration, and I'm sure you can get something from a reference, but as far as I can see they're just CYA HR fodder. Plus the references are often friends or beloved cow-orkers (I mean, would you specify your PHB as a reference?), which is why many people, including myself, hate to pass them out willy-nilly.
Of course, there is one, and only one, case where references work brilliantly as a discriminator; and that's where the prospective hire is asking for an intra-company (or inter-agency, or inter-school) transfer. This is the way it works:
"Is it a good idea for us to hire Mr Jones to program Brainf*ck?" -- "Absolutely! The man is a genius. Plus, he's a really good-looking blonde with great tits!"
(Translation: Mr Jones is a worthless idiot, and his bra-size is 32-B at best. Plus, he dyes his hair with toilet bleach.)
Or:
"No way, my man! Mr Jones was personally responsible for the Chernobyl meltdown while he worked here!"
(Guess the translation on this one.)
For 99.9% of referrals, using a divining rod, or graphology, or something, would be a far better idea. The proof is in the pudding. How many TDWTFs do you see that include the actual details of a reference?
Admin
The point of the exercise is not to actually design a house in 5 minutes. The point is to see what kind of questions the interviewee asks and how they would gather requirements and understand use cases.
Admin
My references are extremely valuable to me. They are well-known in their field, and busy.
It especially sucks for consulting companies whose only check they do on you is your references.
Admin
That justification flew out the window as soon as he started talking about a house that's actually a Transformer. If it was a requirements gathering exercise, they would have just left it at "draw a house." Now you can ask questions about how big, what color, how many windows.
No, this dude was definitely trying to "simplify" the art of software engineering by dressing it up as house construction.
Admin
Well, fuck. That's a house I'd actually want to design!
Admin
Admin
No wonder the Amish are such good programmers
Admin
Admin
Also, relevant to the house thing, houses aren't really built for extension - add a story and you had better have a sufficiently thick slab, you may need I-beams installed, and so on. You also have more consideration goven to the overall aesthetics of the thing - you don't want a new chunk of house that looks bolted on, and complicated shapes are harder to waterproof.
Can you tell what I've been look into lately?
Admin
If I were asked to design a house and I was truly that frustrated with the interview at that point I think I'd start to have fun with it. I'd start asking mind numbing questions like this:
Now if they have well-thought out answers for all of this, not just something off of the top of their head, then you're stuck. But otherwise you can keep going on all day to keep them guessing.
Admin
Well, he did start with 'how do you want it to look', which generally maps to a standard style (colonial, rambler, borg cube), which then suggests where most of the floor space is. The presence of a basement is determined partially by the ground and frost level; once you get that and have an idea how big the house should be, you can look at layout. The interviewer played the clueless moneyman well - that begs for a slapdown (which was delivered), after which point you can decide on the basic paramters of the house, which, btw, aren't easily modifiable.
Also, movable walls are just stupid. Cheaper to make the house bigger.
Admin
I have to chime in on this one...
As a developer for over 35 years, (and even having worked for MSFT for a while) I completely AGREE with the technique of asking "brain-teasers" and "non-programming" questions on my interviews.
For many years I have utilized a completely ficticious language for all programming samples that take place on the interview.
In the long hual, I am much more interested in how a person thinks and how they address situations they have never seen before.
I would much rather have and employee who can quickly aquire and then utilize new knowledge rather than an in-flexible expert in a specific knowledge domain.
Admin
Which is the same as my answer for the Boeing question, by the way: "I would call Boeing."
Someone who attempts to game the question in such a way will likely use the same techniques for real-world problems, where they make a lot of sense -- either delegate to someone much more qualified, or educate yourself. Don't just jump in on the whiteboard and attempt to solve a problem completely outside your field of expertise.
Although I have no problem with stupid interview questions if they can be answered quickly. The rope bridge one took all of two seconds of thought to realize that you just go yourself (you're the fast guy) and ferry everyone across.
Admin
I see it working this way:
Criteria: Number of Beds. Number of Baths.
-- Based on family composition.
Kitchen --With or without nook
Dining Room (or use nook) Living Room Family Room or Den TV room
Billiard Room / Games Room (kids?)
Storage space considerations? - Do you have a large collection of empty Whisky barrels you need to store/display.
What type of entertaining do you do? -- Bar? -- In home theater? -- Rubber room with easy to clean surfaces and convenient Tie-down locations?
Constraints: Budget. Lot Size. Disability (Stairs?)
Extras: These are luxury items that you have to tell me about. I can ask certain questions Do you want a pool? putting green, but I really can't reduce every possible luxury to a binary question.
etc.
Obviously theres a hell of a lot more, but this would demonstrate that I'm thinking about fulfilling your needs, not building a house.
I might determine that what you need is not a house at all, but a two bedroom luxury condo with security, pool, billiards room and bondage facilities at the swinger's club next door.
The client usually doesn't know what they need. The client asked for a house, which is a presumption on their part. What they need is a place to live. I, as the analyst will ask you various questions (as above) to help you decide what type of place to live you really want.
Admin
Why aren't you buying one of the thousands of houses currently on the market, which you can move into much quicker than it would take to design this one?
Admin
My living room is quite flexible. It can be easily reconfigured into a family room, game room, sitting room, reading room, and nap room.
I'd have been tempted to throw undue process back at the interviewer. "I'm sorry but we cannot proceed without confirmation of funding and a sign-off on the project charter. Please make sure you use the current version of the P199238-B large project charter template (customized). Only then we can allocate resources."
Admin
Another employer who uses riddles in the recruitment process is Google http://labnol.blogspot.com/2006/05/cryptic-google-recruitment-billboard.html and supposedly they are a great employer to work for.
Admin
Recruiters: total waste of time and space.
I've had one play the Linux trick with SQL instead. I have SQL on my resume, I actually have a little experience with SQL, but I am upfront with the fact that I am a beginner and still learning. When I made that clear to the recruiter at one job shop he suggested that I leave that out and if the client asked I should just lead them on. Obviously most recruiters have never been in a technical interview where real technical questions are asked about your expertise in any given area.
Then there are the recruiters who don't know the difference between AWT and GWT, or between between any other acronym and another - i.e., almost all of them (if they knew the difference they would be working in tech, not recruiting for it). And don't get me going on recruiters that demand 10 years experience in a technology that has only been around for five years, or that want experience with Oracle 11g, Oracle 10g not being good enough even though Oracle 11g has only been around for six months and many shops have not migrated to it.
Many recruiters go around finding job postings on corporate websites, try to find a matching resume and then spam you when even one word in your resume matches the requirements. I just ignore them and apply for the job directly. Many employers won't deal with recruiters unless they have an exclusive contract with them.
Then there are the recruiters who demand references up front before an interview or even seeing my resume - presumably so they can spam them too.
Anymore I just ignore recruiters - in over 20 years in the tech sector I have never gotten a job through one, and I have only ever gotten one interview (cost me travel money and was a total waste of time because the recruiter misunderstood the job requirements).
I haven't gotten many "why is a manhole cover round questions?" in interviews the last five years or so - mostly fallen out of favor. Most interviewers don't know how to ask the questions anyway, much less how to properly interpret the answers.
Admin
Ah, but that's not the fastest way. That winds up having the times for all the slow people be additive. There's an opportunity presented in the setup to create a pair of slow people so that you only have one of them affect your time.
i.e., you're sending the slow people across serially when you can do so in parallel.
serial method send 1,10 across (10) send 1 back (1) send 1,5 across (5) send 1 back (1) send 1,2 across (2) done! (in 19)
parallel method send 1,2 across (2) send 1 back (1) send 5,10 across (10) send 2 back (2) send 1,2 across (2) done! (in 17)
Personally I find certain types of brain teasers like this to be worthwhile. For instance, think of this problem in the context of an interview for a position dealing with multi-threaded design.
However, some things like weighing a jet... why waste your candidates time?
Admin
If architects built buildings the way programmers wrote programs ... the first woodpecker to come along would destroy civilization as we know it ... :\
Admin
You might want to give a few more seconds of thought.
Admin
I once saw a house in Turkey that had a first floor and a roof on top of the second floor, but no second floor.
Admin
This is Joel's fault: http://www.joelonsoftware.com/articles/fog0000000073.html
"Part 6: the design question. Ask the candidate to design something. Jabe Blumenthal, the original designer of Excel, liked to ask candidates to design a house. According to Jabe, he's had candidates who would go up to the whiteboard and immediately draw a square. A square! These were immediate No Hires."
It's all part of that "move Mt Fuji with a spoon" nonsense. The guy David J interviewed with was just parroting this woolly-headed, new age interviewing B.S.
I've actually had to tell people straight away that I won't be doing any brain teasers or the like. For some reason, people think that's all we ask here...
Admin
Throwing ideas out for problems you clearly can't solve shows that you're the dishonest type that doesn't care about the project's success and is probably more interested in getting the job regardless of his fit to the position. Whether this particular interviewer was calculated or insane is anybody's guess, but the job of the person(s) hiring is to figure out which candidate is most fitting for the position, not who claims to know the answer to every question asked in an interview. Saying you don't know is a valid response, unless the thing you don't know is critical to the position (in which case you probably shouldn't be applying).
Also, when a user is jumping all over the place with requirements it's not OK to tell them they're getting <this>. You instead need to explain to them that you need to know what they want before you can develop it for them.
It sounded like this particular candidate just wanted to get the fuck out of there though, so that's a different story, but in theory the interviewer could have had valid reasons for asking the questions.
Admin
His method takes 19 minutes, you have a better one?
A=1 B=2 C=5 D=10
So they go:
AD -> 10 min A <- 1 min AC -> 5 min A <- 1 min AB -> 2 min
Admin
Joel! On Software! Inventing dubious reasons to cull programmers since 1998! (It's how we get to be so selective, you see.)
Admin
Like the one I listed a bit above his comment that takes 17? :)
Admin
This is exactly what I would do as well. There are a lot of ways to judge my creativity, intelligence, or design abilities, as well as how I'd cope with shifting user reqs. Asking me random nonsense about a rope bridge or guys in a boat throwing stuff overboard or being shrunk down and put in a blender doesn't really provide a lot in the way of useful insight. And if you think it does, you're not somebody I want to work for.
Admin
"Design me a house," the interviewer cheerfully demanded."
See this was your mistake in not taking "the out". What you should have said was "You betcha!" and quickly walked out of the interview and said nothing more.
Then after about six weeks you could have sent some pictures of some housing complex construction site that you had taken (or jacked from Google) and sent a lengthy fax outlining expenditures broken down based on materials, labor costs and given a bank account number for deposit for "works rendered". To add icing on the cake, the report would have a good old fashioned Italian name on it with emphasis on "Family Business", "We get the job done no matter what", and "We kill the competition" references.
That would have taken good care of Mr. HR Know-it-all.
Admin
[quote user="Franz Kafka"][quote user="pythonic"][quote user="Outlaw Programmer"]I "get" the whole house metaphor, but I don't think it's really that accurate. After all, people have been building houses for 5000+ years, but have only been designing software for 50 years. If I was an architect and my customer asked me to build a house where they could rearrange rooms or add/remove floors whenever they wanted, I don't know what my reaction would be.[/quote]
The point of the exercise is not to actually design a house in 5 minutes. The point is to see what kind of questions the interviewee asks and how they would gather requirements and understand use cases.[/quote]
Which is EXACTLY what you do as a programmer, so why not ask it in the context of a programming project rather than a house project? It's like asking someone how well they touch type to gauge their dexterity in a bomb-dearming position.
Admin
Admin
It actually just occurred to me that a "fully customizable" house as per interview spec would probably violate several bylaws in most cities. So my answer to that question might actually be "I'd choose not to build your house because I think I could make more money by suing you."
Admin
cookie4LiteralBoy++;
Admin
I found out some time after I was hired that one of the reasons was because I was honest when answering the question: how do you feel about round-trip software engineering? (E.g. with Rational Rose)
How do I feel? I think it's a neat idea in theory but totally impractical in the real world of iterative development and refinement. Far more efficient to have a high-level overview design and not try to design out the minutia until you've got something that works well, then back-fill the details. Designs for the stuff in between are better left to whiteboards, doodles and face to face discussion, not CASE tools.
My interviewers looked at each other and smirked when I gave my answer. Seems they'd been doing exactly that, until upper management recently came down with a directive to use the CASE tools. They liked that I was familiar with the subject and realistic in my assessment of theoretical benefits versus reality.
Admin
I just read "Please draw a class model with emphasis on scalability aspects" in the "Build me a house" sentence. Whether this makes any sense is another matter.
Admin
I was in a general "Computers for Businesses" type class and the prof thought that a similar problem would be a good way for him to play Solitaire all day, so I argued that the task was meaningless and wasteful; even more so because the majority of students in the class weren't computer students.
He claimed that being able to correlate computer implementations and construction projects was paramount, so I looked up a construction management professor I knew well, called him on speakerphone and asked if he ever asked his students to draw out a software plan or if any CIS/CS majors had taken his classes as an elective for their degree.
My prof turned red when the other prof started rofl'ing. We still had to do the project, but nobody took it seriously. I drew a cubicle with a toilet, roof, and door.
Admin
The house question is totally legit for a consulting company.
Businesses don't hire programmers because they want code. They don't care about code. They have no use for code. They want business problems solved. A new staff programmer usualy spends a few years as an apprentice (aka jr. programmer) learning the ins and outs of that business's problem domain. A programmer hiring on to a financial services company for the first time will spend a lot of time learning about financial services before they are promoted to a major problem solving position. A programmer hiring on at an insurance company or medical imaging or whatever else company will likewise spend time learning the problem domain. Figuring out how problems in that specific field are solved. A consultant doesn't have that time. They must be able to figure out a new problem domain quickly and produce useful results... and they can't always subcontract out all the work. They certainly can't say, "your problem is stupid I'm leaving."
So...the job applicant wasn't qualified to do the work.
As for the answer... the best starting point would've been to ask where the house was going to be. Above or below land or sea? In air or space? Once they answer that (e.g. below ground) you'd ask for size and then you say, "first we detonate a small nuclear bomb at the sight to dig the initial hole, then we cast a slab floor. We bring the new homeowner on-sight to verify the work and lay a 17' thick slab of reinforced concrete over the crater with anchor pins for automated, remotely controllable, hanging wall segments and modular fixture units that can be attached to the hanging walls. We then charge time and material to remotely reconfigure the hanging wall and fixture assemblies until the customer accepts the product."
Perfect consultant answer... the house can be as big as they want, have as many rooms as they want, you can keep billing the customer forever for minor changes, and there is no door so the customer can't come after you when the radiation poisoning kicks in.
Admin
And there will be cake.
Admin
Admin
Admin
"site" not "sight". <--- full stop
"liens" not "leans". <-- full stop
Admin
Admin
"site", not "sight". <--- comma
"liens", not "leans". <-- comma
Admin
It's a trick question. They are looking for people who suggest cubicles so they can put them in one and argue that the candidate thought they were a good idea. =)
Admin
Well, considering the point of that ridiculous exercise is to see how you are at gathering user requirements...
Admin
How is weighing a jet different from weighing the front and back two sets of tires (with attached jet)? If you really need to know, it becomes a mechE problem - design a scale that you can sit a jet on.
Admin
Anybody can build a house. There are details (such as meeting code) that would make the house illegal, but you hire experts for that. It'll cost more than if you know how to do for yourself, but oh well. This is akin to asking a programmer how to start a company - nobody knows evberything they need the first time they do it, but it isn't that hard.
Admin
The thing that's not thought of is the amount of time you have to spend explaining the whole thing to the group. It would probably take more than the two minutes you save by going 'parallel' over 'serial' just explaining, and arguing, about all of the steps.
Faster is not always the most efficient.
Admin
Country is applicable to software, so are permits. And leans/financing/profitability is rather significant. Perhaps the metaphor is not all that bad.