All those practices are good (tdd, code review, etc) if people know what they're doing
Otherwise:
Sometimes code review will turn into a pissing match of who can find the most errors in other people's code
TDD will turn into a quest for a higher "coverage number" regardless of the actual testing quality