>1. Every piece of unpolished, unfinished code that management decided should ship to the customers regardless
Looking back, I view this as a pro. You get to work on more projects that way. I spent five years working with an "ideal" manager that trusted coders to make the deadlines. When I look back on that, while it was the only time I've ever gotten to code things to "perfection", it was also a big black hole of working on a single project for way longer than it really needed.
Of course there's a limit beyond which the lack of polish and finish makes everyone less happy.