My Secret Life as a Spaghetti Coder
home | about | contact | privacy statement
This is the tenth and final post in a series of answers to 100 Interview Questions for Software Developers.

The list is not intended to be a "one-size-fits-all" list. Instead, "the key is to ask challenging questions that enable you to distinguish the smart software developers from the moronic mandrills." Even still, "for most of the questions in this list there are no right and wrong answers!"

Keeping that in mind, I thought it would be fun for me to provide my off-the-top-of-my-head answers, as if I had not prepared for the interview at all. Here's that attempt.

Though I hope otherwise, I may fall flat on my face. Be nice, and enjoy (and help out where you can!).

  • How many of the three variables scope, time and cost can be fixed by the customer?
    Two. (See The 'Broken Iron Triangle' for a good discussion.)

  • Who should make estimates for the effort of a project? Who is allowed to set the deadline?
    The team tasked with implementing the project should make the estimates. The deadline can be set by the customer if they forego choosing the cost or scope. There are cases where the team should set the deadline. One of these is if they are working concurrently on many projects, the team can give the deadline to management, with the knowledge that priorities on other projects can be rearranged if the deadline for the new project needs to be more aggressive than the team has time to work on it.

    Otherwise, I imagine management is free to set it according to organizational priorities.

  • Do you prefer minimization of the number of releases or minimization of the amount of work-in-progress?
    I generally prefer to minimize the amount of work on the table, as it can be distracting to

  • Which kind of diagrams do you use to track progress in a project?
    I've tended to return to the burndown chart time after time. Big visible charts has some discussion of different charts that can be used to measure various metrics of your project.

    A burndown chart.

  • What is the difference between an iteration and an increment?
    Basically, an iteration is a unit of work and and increment is a unit of product delivered.

  • Can you explain the practice of risk management? How should risks be managed?
    I don't know anything about risk management formally, but I prefer to to deal with higher risk items first when possible.

  • Do you prefer a work breakdown structure or a rolling wave planning?
    I have to be honest and say I don't know what you're talking about. Based on the names, my guess would be that "work breakdown structure" analyzes what needs to be done and breaks it into chunks to be delivered in a specific order, whereas rolling wave may be more like do one thing and then another, going with the flow.

    Wikipedia shows what I had in mind about WBS, while pmcrunch.com has info on RWP. After reading about RWP I realized that I had already known about it - it was just buried deep in my memory.

    In any case, I would think like most everyone else that I'd prefer the work breakdown structure, but it's unrealistic in most projects (repetitive projects could use it very successfully, for instance). Therefore, I'll take the rolling wave over WBS please.

  • What do you need to be able to determine if a project is on time and within budget?
    Just the burndown chart, if it's been created out of truthful data.

  • Can you name some differences between DSDM, Prince2 and Scrum?
    I'm not at all familiar with Prince2, so I can't talk intelligently about it. DSDM is similar to Scrum in that both stress active communication with and involvement of the customer, as well as iterative and incremental development. I'm not well versed in DSDM, but from what little I've heard, it sounds a bit more prescriptive than Scrum.

    I'd suggest reading the Wikipedia articles to get a broad overview of these subjects - they are decent starters. It would be nice if there were a book that compared and contrasted different software development methodologies, but in the absence of such a book, I guess you have to read one for each.

  • How do you agree on scope and time with the customer, when the customer wants too much?
    Are they willing to pay for it? If they get too ridiculous, I'd just have to tell them that I can't do what they're asking for and be able to pay my developers. Hopefully, there would be some convincing that worked before it came to that point, since we don't want to risk losing customers. However, I must admit that I don't have any strategies for this. I'd love to hear them, if you have some.

    There are a couple of stories you can tell:
    1. about 9 women having one baby in just one month. (Fred Brooks)
    2. about your friend with an interesting first date philosophy (Venkat Subramaniam)

    This guy I know on first date announces his wedding date, # of kids she'll bare, their birth time,... his name's Traditional Project Planner
How would you answer these questions about project management?

Hey! Why don't you make your life easier and subscribe to the full post or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!


Comments
Leave a comment

can you post some of the answers to the questions on your site?

Posted by Emmanuel Abanti on Nov 29, 2011 at 06:26 PM UTC - 6 hrs

Leave a comment

Leave this field empty
Your Name
Email (not displayed, more info?)
Website

Comment:

Subcribe to this comment thread
Remember my details
Google
Web CodeOdor.com

Me
Picture of me

Topics
.NET (19)
AI/Machine Learning (14)
Answers To 100 Interview Questions (10)
Bioinformatics (2)
Business (1)
C and C++ (6)
cfrails (22)
ColdFusion (78)
Customer Relations (15)
Databases (3)
DRY (18)
DSLs (11)
Future Tech (5)
Games (5)
Groovy/Grails (8)
Hardware (1)
IDEs (9)
Java (38)
JavaScript (4)
Linux (2)
Lisp (1)
Mac OS (4)
Management (15)
MediaServerX (1)
Miscellany (76)
OOAD (37)
Productivity (11)
Programming (168)
Programming Quotables (9)
Rails (31)
Ruby (67)
Save Your Job (58)
scriptaGulous (4)
Software Development Process (23)
TDD (41)
TDDing xorblog (6)
Tools (5)
Web Development (8)
Windows (1)
With (1)
YAGNI (10)

Resources
Agile Manifesto & Principles
Principles Of OOD
ColdFusion
CFUnit
Ruby
Ruby on Rails
JUnit



RSS 2.0: Full Post | Short Blurb
Subscribe by email:

Delivered by FeedBurner