I think there are many, but, the below 5 are the easiest to recognise:
1.
Politically correct team meetings
The whole team claps for the "best employee of the month", everybody agrees to work harder for the customer and to improve the customer satisfaction index.
- No open thread-bare discussion happens on the last escalation/schedule slippage/fire fighting.
- No meeting agenda
- Team goals are not clear
- No action items with responsibility, accountability & deadlines (esp. a strong NO to follow-ups)
2. Huge gap between estimation and execution
Classic example of this would be:
- Why did 3 guys slog it out in the weekend?
- Because we had some "production issues" and next version release in the week.
- Wasn't this known when the project started?
- How many times has this happened before and what did we learn from it?
- How are we ensuring that this doesn't happen again?
3. "Perennial resource constraint" because wrong people are doing the wrong job
4. Inability to distinguish between good and bad developers
- Number of hours billed & lines of code typed become indicators of capability
- The best and the laggards are treated equally.
- No chance given to either to improve further.
- This often leads to the good ones leaving when the first opportunity is available.
5. Religious adherence to processes and templates at the expense of..... well everything else
- The whole work stops when we have a time-sheet/audit report/"process enhancement document" to fill.
- Good leadership requires a healthy disregard for processes that are bureaucratic & the ones that don't achieve the goals of the organisation in the correct manner.
Are these happening in your team?