Learnings, too: If you rely on external parties for planning and conducting application testing, you're lost. Set up tests yourself, do the test group briefing and hold their hands while they move on. Don't let anyone else take that out of your hands, and refuse to accept any compromises here. And: Do your user and customer research. Whatever assumption you make about how your users work, it's most likely wrong. You'll learn very fast, and usually these learnings will be the more expensive, the later you do them. Then: Clarify project responsibilities with external parties early on. It's not necessarily about playing a blame-game, it's just about making sure all sides agree on who has to provide which information within which timeframe. And finally: Reject making any estimations on effort required to fix issues during an ongoing call. Do yourself a favour and take some time to look into what's actually needed and how to address that well, maybe even *cough* talk to someone else and give a second brain a chance of wrapping around your issue unless it's really and utterly trivial.
(Mainly leaving this here as a mantra for myself. Not that most of these things probably aren't obvious or self-explanatory...)