No. At any decent shop developers do not even have access to production.
You develop your X hours in the morning (or whenever your contract says so) at a development environment. At smaller shops then the developers or testing engineers move it to the testing environment. (with sufficient documentation on what should go where). At bigger shops it is "middleware ops" who do this after a change request is approved at the change meeting (if the company somewhat follows ITIL).
Then the product is tested by comparing the wannabe you developed to the specification. Testing can be by testers/qa/customer/whoever else. Really depends on the house.
If the product is functionally OK, it is moved to staging/performance testing (one or two environments). These environments are EXACTLY the same as production in an ideal case, the performance testing many times is an environment with both worse and better hardware then production (or something you can throttle/bottleneck artificially).
After that it is production. Production should never be touched by developers (only in extremely small shops where you design, develop, deploy maintain ... errr .. and answer the door and help customers ... and clean the floor sometimes)....
We developed a product that was released early, we had lots of bugs. Our "tech dept" (kinda like middleware, but not too clever) cannot support it, because it is "all too new complicated technologies" they refuse to learn. The owners do not understand these matters very well (being old and not too much into IT), so the problem escalated, that not only our entire environment (small: 5 DBs around 20-25 linux servers (Apache, MQ, APE, some JAVA console apps, and 10 client stations that run some of our web interfaces for intranet) had to be supported by my small team of 5 guys.
Voicing my opinion that our 5 developers should probably not be forced to start setting our clients' environments up too while still finishing the product - an argument you don't want to be part of - got me dizzy today morning, with a high heart rate, sweating and slightly slurred speech. I decided that no money or company is worth ruining your health and when someone expects you to do their job you should either suck it up and do it or stand up and walk. I stood up, packed my stuff and left. Now I am sitting home and wondering what now ....
If your company is starting to push your developers into doing tasks they should not do, they should be informed of the correct procedures and pointed to the dangers of letting a developer deal with systems. Yeah, I also did 10+ years of network and UNIX/Linux before got back into development, so there are some (a lot) of us who can do it - but we should not, unless it is an emergency of some sort.
FYI we have 22.000 + registered users with 5-10K concurrent. Not an environment 5 developers should cobble together then install their crap on.
Once you let the "emergencies" in, they become the norm and you might have to design, develop, deploy and then even troubleshoot, since now they know you can do it. And then there is no going back, you are doomed. Like me. Hopefully not shaking for 10 hours and not out of a job with a family where the 2nd baby is on the way......
OTOH ... it depends a little on the product. An .exe or .jar or .app can be easily given a 3 step install with roll-back. A PHP site with 10.000 files is a little different. For a long time I helped our sysadmins with a replication script I wrote in Curses/shell with rsync doing the heavy lifting. They demanded the source (I had a good reason to keep it back) so I gave it after agreeing, that this was just "nice of me" and that they should be doing the scripts while I develop with my team. They ran the first replication test in the middle of our afternoon rush. A new customer with 10 sites was down for 18 hours. It took 5 of my guys 5 hours to fix the chaos they created. See .. just an example of when you might want to deploy instead of troubleshooting all Sunday afternoon.
But really... it all depends on the brain capacity of your management, their education and experience and the middleware team you have at your disposal. After 20+ years seeing what I have been seeing: the best is if everyone does THEIR job and not someone else's. So no developers on production for anything other than "troubleshooting" purposes or emergencies where ALL CHANGES are carried out by the Win/Lin/OS folks.
Just my 2c ... wow .. how much time you have when you have no job to worry about, eh ? :(
Just to be entirely correct: while I was walking out with my tea-cup, personal laptop, my luch-bag and other personal crap. The general manager pulled me into the conference room and asked me to take the week off (paid) take my vacation (week, already requested) and come back and present my decision. So while I am a depressed shit right now (writing long /. posts) I am not unemployed yet. But money cannot fix me if I get a stroke so I will probably bail to a less paid, less stressed, more organised outfit. OK OK .. that wasn't the OP's question ... just upset and upset and stressed and hate everyone now .....