Performance Problems Survey

Gentle Readers, see if you can comment on the following Hypothetical Situation:

Your project is "In Trouble."  The Big Boss has just walked into your office and told you that he needs you to save the day. Again?

Which of the following is more likely the culprit of this crisis that has your boss in a panic.

1) A developer failed to code a good algorithm in some module and now a very smart person must come along and replace that module with something much better.

2) The project has far too many layers of abstraction and all that nice readable code turns out to be worthless crap that never had any hope of meeting the goals much less being worth maintaining over time.

Are both of these really crises?

Which of them should we work hardest to prevent as performance professionals?

Has either or both of these happened to "Some Other Team" that you once heard about? :)