You need a robust development environment as well as source code control.
Yes, use svn or cvs for source code control, but that is useless if not used correctly.
The RIGHT way of doing it is for each developer to have their own development copy of the web application, which they exclusively work on. This would connect to their own database (of course you need to have enough config in the application to allow dev emails to go to the appropriate developer, correct databases be used etc).
Then no developer can tred on any others' toes, because they have their own exclusive copy of the app that they can break as much as they like (provided they fix it before they commit).
A typical work cycle would look like:
- Checkout the app (or update if already checked out) - run any database modification scripts etc
- Do a change, being a bugfix or new feature
- Test the new feature until it works
- Update the files to merge changes from any other developers in the inter
- Test again to ensure no problems arising
- Provided no problems found, and everything is working correctly, commit the changes
It's not rocket science and it works really well. Nobody needs to "lock" any files for editing.
Mark