I ran across this interesting article today:  Frequently Forgotten Fundamental Facts about Software Engineering.

I particularly like Requirements & Design bullet 2 (RD2) because we tend to gloss over “non-functional requirements” (e.g, performance, creating frameworks, etc.):

RD2. When a project moves from requirements to design, the solution process’s complexity causes an explosion of “derived requirements.” The list of requirements for the design phase is often 50 times longer than the list of original requirements.

Absent from the list is the Fred Brooks axiom: Adding people to a late project only makes it later.

Augmenting the Frequently Forgotten Fundamental Facts are Steve McConnell’s Classic Mistakes that prevent efficient software engineering. There is some overlap between the two.

I agree that many of these facts are frequently forgotten and that most organizations constantly make the classical mistakes.  How do I know?  A company I know tongue-in-cheekly named one of their conference rooms “Schedule Compression.”

As The Bard wrote, “Never a truer word than said in jest.”