Comment The question depends on the website and bad admins (Score 1) 402
While it would be lovely to have a perfect sys admin they don't exist. I would say about 1 in 10 problems in production are due to the admins not doing their part. I test like crazy but often times I find the following
- Crazy rules in production but not staging
- Mapped folders on production but not in staging or development
- Databases or Database permissions incorrectly configured
- Caching doing wierd things one does not see in staging
This only gets worse if you have load balanced servers etc.
I believe as a rule no developer should "develop" in production but having access to the production environment depends on your work environment and who would know best. Sys admins NEVER KNOW BEST when it comes to websites. They know their hardware but rarely do they know how to troubleshoot issues and almost always blame your app. However, at the same time developers often don't know enough about the technology their applications are running on so they instantly blame the sys admin.
Ideally, in a large scale deployment you have someone with the knowledge of both (that's me) who can identify and troubleshoot common issues. That individual would have access to production. Additionally, in smaller development shops not having access to production is just stupid. It doesn't make sense.
- Source Control is a great idea, but rarely used due to difficulty of use. Sometimes its not an option because someone has to support that.
- Financial limitations can reduce the ability to have shared development/staging areas. Working on your own machine is useless when testing. It does NOT test working in a production environment and thus... sometimes production is the test field.
We can play the blame game but in reality who has access to production should be limited to those trusted enough to not do stupid things without backing themselves up. Sysadmins should keep a backup of the production site at all times, developers should not mess with production unless it's urgent.