I think your team needs to attend an agile scrum course and make a pact to follow the methodology.
When developers check-in small code changes assigned to small tasks it reduces the chance of developers going off the rails and checking-in conflicting code. This increases continuous integration.
"I've seen some junior developers check in code that breaks use cases,
which is usually identified by another developer a few days after the
check-in."
Even in a perfect world this still happens. If you find its happening frequently and/or after several days of development then you have a problem.
I think you'll find the team will work together more effectively with a planned iteration. I suggest you try out a 2 week sprint. Start the sprint with an in-depth scrum meeting. Go through the backlog of Bugs and Work Items, accepting the top priorities and writing them down on post-it notes with units/time estimates using planning poker cards.
Line up a scrum dashboard or white board and ensure people only work on one thing at a time. Once they have finished the task they need to write a unit test for it. Once they write a working unit test they will need to get a Code Review. Constructive code reviews is one of the best techniques to prevent developers accidentally checking-in code conflicts.
After the Code Reviewer has signed off, the developer does the Check-In Dance:
- Let the rest of the team know a change is coming if it’s a significant update.
- Get the latest code from source control.
- Do a merge on any conflicts.
- Run the build locally and fix any problems found.
- Run the Unit Tests locally and fix any problems found.
- Commit the changes to source control.
- Stop coding until the build passes.
If the build breaks, drop everything else and fix the build.
Team Foundation Server (TFS) faciliates all this stuff out-of-the-box.
You should fix up the tests before moving forward. But just because 80% of code is unit tested that doesn't mean its bug proof. Developers have to be active in testing their code sociability. This code integration is much easier to achieve using non-waterfall methodologies.