Why an integration is rarely the small task it appears to be, the approval processes that add weeks, and the failure mode that only shows up when the other side changes something.
The four different things sold under one word, why an application left untouched still breaks, and how to read a maintenance quote so it can be compared with another.
What you own when the invoice is paid, the components that are licensed rather than owned, and the handover package that determines whether another developer can take over.
The rejection reasons that appear again and again, why the first submission should happen weeks before launch, and the metadata work that is always underestimated.
What has to be written before development starts for acceptance to mean anything, how to run a UAT that finds real problems, and the difference between a bug and a change discovered at the worst moment.
The difference between a clarification and a change, why small changes cost more than their size suggests, and the process that keeps a project from dying by a thousand small additions.