I. M. Wright’s latest post “Green fields are full of maggots” talks about defining the problem and defining done.
My favorite quote (which is, itself, a quote):
“What’s so evil about general solutions? After all, your code could be both a floor wax and a dessert topping.”
He makes some great points about building software to solve a real, concrete problem, instead of building software as a semi-abstract-solution-that-could-solve-any-problem-possibly-the-one-people-are-paying-us-for.
My second favorite quote (second favorite only because it doesn’t quote Saturday Night Live) sums up the danger of the abstract:
“You put the problem at the center instead of the customer. When the customer isn’t at the center, your code loses its soul. It goes from being astounding to being adequate, from marvelous to mediocre.”
What is your goal? Mediocre, or Marvelous?