Giving each developer their own database isn't a wise long term decision. Not only do they have to do perform their own DBA duties locally, they don't learn to co-exist with others well within the database space, don't utilize connection strings during development, have to duplicate custom/dynamic stored procedures identically among all the systems, apply software patches to all the individual systems, etc etc etc. Maybe if you've only got a half dozen or so developers but if you've got about 80 spread out across several buildings it's a nightmare situation.
Very good point. I would not want to have my own copy of a production DB. Much smarter to have a "staging" or non-production version (replicated often with the 'live' DB) and share with other developers.
I am currently working on an internet project for a large manufacturing company. You are not going to believe this, but they want me to do 2 versions of the same project.
One is on Linux using PHP & JSP with MySQL.
The other is in .Net using SQL Server.
I tried to explain that I could do one version of the PHP/JSP using Apache and Tomcat which would then be able to be run on both OS's, but they would not listen to it ... some "consultant" talked them into this. Luckily, I could use the same HTML for both projects, but it's still a nightmare doing this thing twice.
Talk about a waste of money. Ever hear of this being done before?
Giving them a sandbox environment (mssql) works well for me and they have been much more productive after it was implimented. No youre 100% right that doing this mean forcing them to play nice in DEV so there are not poblems in test qa or prod but thats only a metter of dicipline.