The Artima Developer Community
Sponsored Link

Weblogs Forum
What Questions Would You Ask?

42 replies on 3 pages. Most recent reply: Nov 3, 2006 7:33 AM by Tapan kumar Rath

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 42 replies on 3 pages [ « | 1 2 3 | » ]
Leo Lipelis

Posts: 111
Nickname: aeoo
Registered: Apr, 2006

Re: What Questions Would You Ask? Posted: Sep 27, 2006 4:29 PM
Reply to this message Reply
Advertisement
> How long does it take to run the unit test suite?
>
> How long does it take to do a complete build, ready to run
> in debug mode on a developer's machine?
>
> How long does it take to deploy the application? Including
> build time?
>
> How do you ensure that the code being checked-in by
> developers is of sufficient quality?
>
> How often are peer code reviews held? Post-Mortems?
>
> How does QA test the application? Is there a full
> automated regression suite? How long does that take to
> run?
>
> Oh how I wished I'd asked these questions a year ago.
>
> - Ted Young

These are strictly developer questions. If so, add to them "Do you maintain regular release cycles? What is the average length of time between releases? How about in the past 3 months?"

Depending on the scope of the effort things you ask about may not be necessary, but I agree that those are good questions no matter what.

Marc Loxton

Posts: 9
Nickname: spoonchops
Registered: Feb, 2006

Re: How does the group communicate? Posted: Sep 27, 2006 6:09 PM
Reply to this message Reply
Apologies for being slightly off topic here but I want to get out of the situation of being the "guy who knows everything about XXX project" as Chad spoke about here in question 1. I want to do this in an agile way though not by writing a truckload of documentation describing the tech aspects of the system, the direction i want to go with it, which parts I want to phase out and what they should be replaced with etc. I've been having some success with pair programming for some tasks but I'm wondering what do others do to share the knowledge without becoming a novelist? A Wiki with a list of key points? A Brief README file and verbose comments in key areas of the code/tests?

Peter Booth

Posts: 62
Nickname: alohashirt
Registered: Aug, 2004

Re: How does the group communicate? Posted: Sep 27, 2006 6:22 PM
Reply to this message Reply
What a great set of questions.

The question I most wished I had asked in prior occasions is "Can I see your system in operation, as well as some of your code?"

I would want to learn what is viewed as good work and acceptable work in this culture, whether this is an agile place where people work hard.

I'd wantto see if they do smart things to increase developer productivity or if they are stuck in the 90s.

If they had no wiki, no unit tests, no Ruby/Python/Groovy, no continuous builds I would see these as red flags.

Ted M. Young

Posts: 3
Nickname: tedyoung
Registered: Aug, 2003

Re: What Questions Would You Ask? Posted: Sep 28, 2006 1:02 AM
Reply to this message Reply
[Leo Lipelis wrote:]
> These are strictly developer questions.

Yup. There've been a lot of good questions posted, but most (98%) of all interview sessions I've ever had have been with developers, or front-line management where they wouldn't know the answers, or wouldn't be able to answer in sufficient detail.

What I like about these questions is that if they can answer them and the answers are good, it indicates a healthy development environment. Of course, you'd still have to ask about the business itself. :-)

[Leo Lipelis wrote:]
> If so, add to
> them "Do you maintain regular release cycles? What is the
> average length of time between releases? How about in the
> past 3 months?"

That's a great addition. If they're not doing regular releases, or they're a year or more out, then that's either a problem or they need some compensating procedures, e.g., more frequent internal QA-only or beta-only releases.

;ted

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: How does the group communicate? Posted: Sep 28, 2006 9:34 AM
Reply to this message Reply
> Apologies for being slightly off topic here but I want to
> get out of the situation of being the "guy who knows
> everything about XXX project" as Chad spoke about here in
> question 1. I want to do this in an agile way though not
> by writing a truckload of documentation describing the
> tech aspects of the system, the direction i want to go
> with it, which parts I want to phase out and what they
> should be replaced with etc. I've been having some
> success with pair programming for some tasks but I'm
> wondering what do others do to share the knowledge without
> becoming a novelist? A Wiki with a list of key points? A
> Brief README file and verbose comments in key areas of the
> code/tests?

I think a wiki is a good way to go. I'm trying to push one at my new job. There are two advantages. 1. It's a more informal type of documentation and therefore less time-consuming that a bunch of Word documents no one will ever locate before coming to ask you questions. 2. Since anyone can update them, you can create skeletons and fill in the details over time and hopefully get other people to take some ownership as they become more familiar with the project.

The other great advantage of the wiki that's not directly related to your concern is that because it can be updated easily and quickly by anyone, it's less likely to get out-of-sync with reality (for long). I don't think I've ever seen any documentation on any in-house system that was completely correct, even for brand new systems. So in-short, I think using a wiki makes documentation less like paperwork and more like an indespensible tool for team communication.

Leo Lipelis

Posts: 111
Nickname: aeoo
Registered: Apr, 2006

Re: How does the group communicate? Posted: Sep 28, 2006 4:41 PM
Reply to this message Reply
> I'm
> wondering what do others do to share the knowledge without
> becoming a novelist?

My personal top priority in such situations is to write code that:

- is not clever: it should be easy to understand without a Ph.D. in philosophy (this is hard, because when I first started, I wanted to impress the whole world with how clever I was)

- uses names properly: it's better to spend 10 minutes contemplating a good name for a single variable then to spend 10 minutes writing documentation about how it's used

- is not falling into extremes: not too factored out, so that I don't have to follow 200 5-liner functions in order to understand something simple, and not the spaghetti extreme of 2 huge 500 line functions that do everything

- implements as few features as possible: and if the feature is too hairy to implement, I strongly consider not implementing it at all

Sometimes when "best practices" are taken to the extreme, the code is harder to read. Factoring things out in the extreme is bad. Making all strings into constants is a bad idea, because some strings are better left in the code to provide more contextual meaning (otherwise you force the programmer to make more jumps around the code to read it). I think that sometimes (but not always) there is a trade off between making the code easy to modify and making it easy to read. Often making it easy to modify and making it easy to read is one and the same thing.

Generally it all boils down to writing code in a way to requires fewest eyeball jumps to read and fewest conceptual jumps to understand. It means that I must be cognizant of making an eyeball jump when I read. If I am not aware of the processes taking place in my own mind as I read and write code, then I don't even have an opportunity to write better code.

Leo Lipelis

Posts: 111
Nickname: aeoo
Registered: Apr, 2006

Re: What Questions Would You Ask? Posted: Sep 28, 2006 4:57 PM
Reply to this message Reply
> If they're not doing regular
> releases, or they're a year or more out, then that's
> either a problem or they need some compensating
> procedures, e.g., more frequent internal QA-only or
> beta-only releases.
>
> ;ted

Ted, how about when you do one gigantic release every 4 years, delivering a system that is specced out in 8 400-page binders?

Personally, I don't think internal QA is a substitute for releasing early and often. And the only beta releases that I believe can reasonably replace true releases are the types that Google does -- in other words, they are production quality beta releases meant for day to day use, and they *ARE* used day to day. If you put out a beta release that's not used in a serious manner, then I don't think it's a good replacement for releasing early and often.

Gregor Zeitlinger

Posts: 108
Nickname: gregor
Registered: Aug, 2005

Re: How does the group communicate? Posted: Sep 29, 2006 3:12 AM
Reply to this message Reply
> I think a wiki is a good way to go. I'm trying to push
> one at my new job. There are two advantages. 1. It's a
> more informal type of documentation
yes, therefore I like it, too.

> and therefore less
> time-consuming that a bunch of Word documents no one will
> ever locate before coming to ask you questions.
I had hoped so, but people usually come asking one way or the other.
However, it is easier to tell them "search 'bla' in the Wiki" than to tell them it's located in some/obscure/path/to/whatever.doc

> 2. Since anyone can update them
Although much easier, that's not happening in my experience.

> get other people to
> take some ownership as they become more familiar with the
> project.
I don't think a Wiki can make people take responsibility, but it can help them if they want to do that.

Terje Slettebø

Posts: 205
Nickname: tslettebo
Registered: Jun, 2004

Re: What Questions Would You Ask? Posted: Sep 29, 2006 6:14 AM
Reply to this message Reply
>The questions you forget to ask when you are interviewing
>for a job, but wish you'd asked after taking the job.
>
>What questions do you wish you had asked?

"Can I see your source code...?"

(For a software development job)

And I didn't "forget" to ask it, I just didn't realise such horrible code existed out there, in the case I'm thinking about... However, it shouldn't be the only major factor: The people, working conditions and opportunites were great, so in sum, it was a win, after all.

Addition: I see Peter Booth has this one, as well.

Just to add to what Ted M. Young said:

"How long does it take to run the unit test suite?

"Do you _have_ any unit tests...?"

:)

>How often are peer code reviews held? Post-Mortems?

"Do you have any of these?"

>How does QA test the application?

Ditto ("Do you have a QA department?").

Leo Lipelis:

>When the entire society is based on this type of behavior,
>we have a society of fakes and bullshit jobs that we don't
>wake to wake up for in the morning.
>
>It doesn't have to be like that.

"The Cluetrain Manifesto" (www.cluetrain.com) is a good inspiration for the alternative - a humane society.

Michael Feathers

Posts: 448
Nickname: mfeathers
Registered: Jul, 2003

Re: What Questions Would You Ask? Posted: Sep 29, 2006 6:20 AM
Reply to this message Reply
I think that the most important thing to do is to ask to look at their code. You can learn a lot about an organization by looking at its code.

In a way, getting a development job is a lot like buying a house. Look it over before you buy.. check out the plumbing.

If people don't care about the code, you'll notice it immediately.

Matt Reynolds

Posts: 1
Nickname: mreynolds
Registered: Sep, 2006

Re: What Questions Would You Ask? Posted: Sep 29, 2006 3:16 PM
Reply to this message Reply
I'm actually interviewing right now, so this is a great thread for me ;)

I always ask, "Why are you here?" to each interviewer. I can usually tell immediately if I'm getting a BS answer or not, and if so, I downgrade that job.

Other favorites are :
* How easily does change spread in this organization? From the top, or from the bottom?
* Do you care what platform I develop code/work on?

Dave Smith

Posts: 2
Nickname: dws
Registered: May, 2003

Re: What Questions Would You Ask? Posted: Sep 29, 2006 7:49 PM
Reply to this message Reply
1. What are you hoping I won't ask?

This one has actually caught a few people off guard, and they've blurted out interesting stuff. Or if they don't, sometimes their body language (e.g., "deer in the headlights" look) is a giveaway that more probing is in order.

Al Mangan

Posts: 1
Nickname: amangan
Registered: Sep, 2006

Re: What Questions Would You Ask? Posted: Sep 30, 2006 1:33 PM
Reply to this message Reply
One question I like to ask is a variation of:
If you could change one thing about your company what would it be?

I also like to ask about personnel turnover; the long term turnover, and also for the past 6/12 months.

Tony Nassar

Posts: 2
Nickname: slideguita
Registered: Sep, 2006

Re: What Questions Would You Ask? Posted: Sep 30, 2006 10:42 PM
Reply to this message Reply
I'd want to know if senior developers get to hoard knowledge / "own" parts of the code. I'm 45, and I'll be damned if I'll beg anyone for knowledge at this point in my career. I expect them to share (no "architects," please), and I want to be able to share what *I* know. I want to know how good their code is, and how they maintain standards. I want to get a sense of how every developer accepts responsibility for requirements: frequent internal releases, continuous integration. I want to know how shallow the hierarchy is. If management mutates the requirements after every meeting with the customers / VCs, I don't want to work there. In fact, if my only understanding of requirements can come through managers, I don't want to work there.

I've had more lousy jobs than I care to say, often because I didn't have the guts / wasn't secure enough (because of unemployment / recession) to ask the hard questions. Hard questions directed *at* interviewers *are* legit. You really wanna move your family in order to work with people you're not gonna like?

Roland Pibinger

Posts: 93
Nickname: rp123
Registered: Jan, 2006

Re: How does the group communicate? Posted: Oct 1, 2006 6:38 AM
Reply to this message Reply
> Generally it all boils down to writing code in a way to
> requires fewest eyeball jumps to read and fewest
> conceptual jumps to understand. It means that I must be
> cognizant of making an eyeball jump when I read. If I am
> not aware of the processes taking place in my own mind as
> I read and write code, then I don't even have an
> opportunity to write better code.

Interesting point of view. An 'old-fashioned' procedural programming style is often easier to maintain than a 'modern' OO programming style. The latter requires more eyeball and conceptual jumps.

Flat View: This topic has 42 replies on 3 pages [ « | 1  2  3 | » ]
Topic: What Questions Would You Ask? Previous Topic   Next Topic Topic: A Cat Tutorial


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us