This document discusses the downsides of frameworks and provides alternatives. It argues that frameworks can do too much and constrain choices. Alternatives proposed include defining an architectural style or vocabulary, following a risk-driven design process, and documenting relevant elements of the system in a meaningful way. The key is to write programs that do one thing well and work together through well-defined interfaces, rather than relying on large frameworks.
Related topics: