Two interesting ideas brought up in eXtreme Programming are:
- Team Programming in which you have two programmer's per computer. One types while the other looks over his shoulder. Then they switch.
- A testing based methodology. Write the tests, then write the code to make the tests pass. In that order. Don't push a build to the group until it passes all of the tests. If you find a bug, add a new test for it so it won't hit you in the future.