Surviving Object-oriented Projects Link
The survival of a project often hinges on social factors. Research shows that many failed projects are saved only when new "core developers" step in to assume ownership.
Before writing a single line of code, identify the nature of your project to set realistic expectations and staffing: Surviving Object-Oriented Projects
Avoid deep inheritance hierarchies (more than two levels is often "brittle") and prefer composition to keep the system maintainable. 4. Manage the Human Element The survival of a project often hinges on social factors