You're Doing Interfaces Wrong Interfaces are everywhere, but still we have tight coupling, and inflexibility. Dependency inversion is the answer.
The Software Crisis Software projects run over-budget, over-time, are inefficient, unmaintainable or ineffective. This is The Software "crisis".