Having lived through the development experience in MOSS with multiple teams and developers, I thought it might be helpful to post a few tips and tricks to making your MOSS development lifecycle a little smoother.
So, without further adieu....
1. Think of your development as releasing final builds rather than small solutions
What you will quickly find out when creating a customized MOSS solution is that there are a significant number of moving parts that all must work cohesively, and each component must be configured properly to be successful. You might find a master page change completely changed the functionality of some web parts on another page. Or you might find that a profile property mapped to the wrong field through the BDC can cause your entire homepage to fail to load if using custom web parts that use that property. So, to save yourself headaches, work together in a dev/staging environment to get everything working as well as it can, then backup and restore the entire solution or "build" to in one swipe.
2. Package everything up that you possibly can in an WSP, and if not in a WSP, use an MSI or EXE.
It is easy to create, deploy, upgrade and retract WSPs, so use them. Without it, you will quickly find yourself managing a complex matrix of dlls, xml files, aspx files, etc and it can quickly get out of hand. For those things that can't be easily deployed in a WSP, try using an MSI or an EXE. Try to package up as many things as you can.
3. Create and maintain a bug list and change log
Even with doing option 1, you will have bugs discovered that need to go back through the cycle. Log these and document them. Include the exact steps to recreate the bug and the location of the source files. Make the list detailed enough so that anyone can open the bug and find out everything they need to know about it. Otherwise, you may spend a lot of time going back and forth just figuring out what the problem actually is and trying to figure out where the source files are located.
4. Don't promote environments until you're really ready!
In highly customized environments, it is important to get all of the pieces working together very well before deploying them to the new environment. Do not assume that a master page change won't affect the functionality of your web parts, etc. It's those little things that you "never thought would break something" that cause problems, and then you spend significant time troubleshooting. So get your environment stable and overall solution working together and tested before jumping to the next environment.
I hope this helps others out there doing MOSS implementations, I welcome your comments anytime!