Slashdot Mirror


Should Developers Have Access To Production?

WHiTe VaMPiRe writes "Kyle Brandt recently wrote an editorial exploring the implications of providing developers access to the production servers of a Web site. He explores the risk introduced by providing higher level access as well as potential compromise solutions."

402 comments

  1. For me by enderjsv · · Score: 5, Insightful

    Whenever an error occurs that I can't replicate in a dev environment, I'm always SO tempted to hop into prod and start adding in some output statements.

    Yeah, it's probably a good thing I don't have access to prod.

    1. Re:For me by xaxa · · Score: 1

      Round here, it needs to be the other way round.

      My manager likes to stick to the processes, so we (the developers) fill in forms before doing anything (or asking to have it done).

      The sysadmins hate processes, so they just change whatever they feel like on the production servers and make some excuse for why it didn't need any discussion. Unfortunately, since we work quite closely with the users, we get the complaints when it all breaks :-(.

    2. Re:For me by IICV · · Score: 4, Insightful

      That's why you shouldn't have access to prod, but you should be able to either A. get a clone of prod made fairly quickly or B. already have one running so you can mutilate it however you want.

      Seriously, hardware is cheap and people are expensive. Minimizing person-time is worth a bit of hardware gluttony.

    3. Re:For me by stillpixel · · Score: 5, Funny

      User: There is an error on page X
      I tweak that page code on the production server after looking at the error log. Me back to User: An error really? Have you tried pressing F5?
      User: Oh.. hmmm I guess I must have done something wrong. Sorry for bugging you!
      Me: Hey, no problem.

    4. Re:For me by Anonymous Coward · · Score: 0

      The way I work it here to be in line with compliance is through roles. We are a tiny shop, so I need my developers to help troubleshoot when production breaks. The Application Production Support role people get accounts for prod, but the Developer role people do not. Thing is, it's mostly the same people filling both roles, but allows for a clean break as we grow. Auditors love roles.

    5. Re:For me by x2A · · Score: 2, Interesting

      Eugh yeah I hate that. So what I try to do is code in such a way that if a bug should occur, the whole thing stops working, that way there's no point in my /not/ fixing it on the production server! I'm a freakin genius! No of course I'm joking, but a recent project has hit some problems where I've been able to explain and the client has actually been able to understand the challenges of trying to reproduce an intermittent undiagnosed problem without touching the production code (ie, is just not worth the time trying to do) and lets me fiddle with the code. Usually tho it's enough for me to be able to add logging code where it's needed and there's no end-user-visible effects. There've also been problems that have languished, but as soon as I've had the go-ahead to try resolve it on the live system and resolved it quickly and without interruption, so they're getting more okay with letting me do it that way. Sometimes I'll just fix a problem and not tell them, to avoid all the hassle. At the end of the day, I know better than them (which is why they come to me) and sometimes you do just have to make a judgement call. BUT, it's not a massive project with many developers, and in those conditions obviously you need to retain more order.

      rm -rf /^H^H^H^H^H^H^H^Hoops wrong window

      --
      The revolution will not be televised... but it will have a page on Wikipedia
    6. Re:For me by FatSean · · Score: 4, Insightful

      Test environments are essential, but they do require people-time to keep them matching production.

      --
      Blar.
    7. Re:For me by Anonymous Coward · · Score: 1, Insightful

      I specifically refuse access to PROD so that there is never a question of whether I touched anything. I provide installation scripts and instructions to the DBA/SysAdmin to install my changes in an orderly, documented process.

    8. Re:For me by gorzek · · Score: 1

      I make changes directly in production on a pharmacy benefit management system. If I screw up, people can't get their pills.

      It's fun to live dangerously. :-p

    9. Re:For me by idontgno · · Score: 3, Insightful

      If I screw up, people can't get the correct pills.
      It's fun to make other people live dangerously. :-p

      FTFY. Well, for certain values of "pharmacy benefit management system". If your production hacking can botch scrip fulfillment, please say what company you're working for so I can try to avoid it like the plague it is.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    10. Re:For me by rwven · · Score: 1

      While it's not always a good idea to allow devs unrestricted access to prod, sometimes it IS needed in order to solve problems.

      The fact is that most Infrastructure teams that generally manage the production environment simply don't have the technical chops to debug and ferret out issues that are only appearing in production.

      If the infrastructure teams were "team players" it'd be one thing, but they tend to be overbearing, territorial types that insist on debugging by proxy which takes 100x as long and often flat out fails.

      Without some semblance of prod access, at least for emergencies, it's just a world of hurt waiting to happen.

    11. Re:For me by gorzek · · Score: 1

      Production hacking very rarely breaks anything, fortunately. The system has been developed for 20+ years so it has a lot of fault tolerance built into it by now. The worst possible case is a break in script fulfillment, which might happen for a couple minutes out of an entire year.

      I'm sure it's going to give me gray hairs, though.

    12. Re:For me by Americano · · Score: 3, Insightful

      Deploying to an extra "prod-clone" test server should require pretty trivial amounts of people-time if it's set up properly - it's just another test server, if it takes ridiculous amounts of manual effort to deploy to a single extra test server, you're probably doing something remarkably inefficient.

    13. Re:For me by TheRaven64 · · Score: 4, Informative

      Depends on how your deployment system is designed. Mainline Xen now has support for brining up complete live duplicates of a running VM and keeping them in sync (or letting them diverge), and this support has been in high-availability hypervisors for decades. If you're using a system like this, it's just a couple of commands to clone the production VM and get something that you can break without impacting users.

      --
      I am TheRaven on Soylent News
    14. Re:For me by PotatoFarmer · · Score: 2, Interesting

      Use an automated process that rebuilds your test environments nightly from production backups. Test environment synchronization and backup verification rolled into one.

    15. Re:For me by Anonymous Coward · · Score: 0

      Whenever an error occurs that I can't replicate in a dev environment, I'm always SO tempted to hop into prod and start adding in some output statements.

      Yeah, it's probably a good thing I don't have access to prod.

      yeah, it complete opposite for my employer, Only development has access to Production servers.

    16. Re:For me by Lion+XL · · Score: 1

      Please send an email to my boss explaining this to him, he thinks the purchase order system we updated three years ago should still have relevant data for testing today!

    17. Re:For me by dmgxmichael · · Score: 0, Troll

      Hi, I work for a competitor. I take the fact the system could kill if it gives out erroneous results or becomes unavailable very seriously. Knowing fucktards like you are out there gives me that much more motivation to make my product superior so we can eventually drive your dumb ass out of a job.

      Have a good day! :)

    18. Re:For me by Anonymous Coward · · Score: 0

      Test environments are essential, but they do require people-time to keep them matching production.

      That's assuming that the Test environment matches production at some point to start with. I work in an environment where not only is the Test environment not matching production (OS version, DB version, App server vs non-app server) but neither Test or Production match the Development environment either.

    19. Re:For me by Gerzel · · Score: 3, Insightful

      This article also assumes that the developers (or often developer) is not also the server admin. Many shops have one or a few IT people wearing many hats.

    20. Re:For me by characterZer0 · · Score: 2, Funny

      Unfortunately, copying prod to test does not copy the users, which are often an integral part of the error.

      --
      Go green: turn off your refrigerator.
    21. Re:For me by dmgxmichael · · Score: 1

      Script fulfillment is unlikely to kill anyone. As the knucklehead points out in his response to your post it's unlikely to cause a delay of more than a few minutes - an inconvenience at best.

      However if his software is anything like mine it checks the new prescription against existing prescriptions for possible dangerous drug interactions. I wouldn't want to trust my life to someone someone so callous human life and cavalier about their code to make his previous statement. Admittedly, the code has the fail, the doctor has to fail and the pharmacist have to fail to spot the dangerous interaction for someone to get hurt, but the chance of this is going to be non-zero no matter how diligent the parties involved are. You just have to pray all parties involved are as diligent as they can be - and gorzek obviously is not given his comments and attitude.

    22. Re:For me by recharged95 · · Score: 1

      Just make sure those printf()s aren't printing out CC numbers or passwords in hex, etc...

      Answer to the TFA:

      Nein! nein! nein! nein! nein!

    23. Re:For me by Anonymous Coward · · Score: 3, Insightful

      Yes, we call that staging.

      We work on dev.

      We promote changes to stage, which is a dup of the prod environment.

      When stage is approved we promote to prod.

    24. Re:For me by gorzek · · Score: 1

      Judging from your attitude, you must be a joy to work with. :)

    25. Re:For me by tomhudson · · Score: 2, Insightful
      And it's sometimes necessary.

      The article is crap. Sample quote:

      Account privileges, file permissions, web server configuration are often not what developers have experience in or are very interested in

      Retarded. Absolutely retarded. Anyone who can write that hasn't got a clue.

    26. Re:For me by gorzek · · Score: 2, Interesting

      The whole article is absurdly vague, anyway. Sometimes developers need access to production--such as on a critical system--and sometimes they don't. Had the article between written toward a narrower domain, something more specific than just "Web sites," it might actually be useful. As it is, it's too light and fluffy to have much real-world impact.

    27. Re:For me by es330td · · Score: 2, Funny

      I did this once and hosed a production Informix system. We had over 100 external users call in before it was realized and fixed. Fortunately, I did it because my manager told me to so I kept my job and she was reprimanded for A) changing production and B) asking someone else to do it and not doing it herself. I learned my lesson and in the subsequent 10 years have never modified a production system without thorough dev testing first.

    28. Re:For me by Oligonicella · · Score: 0, Redundant

      "Sometimes developers need access to production--such as on a critical system..."

      No, they don't. Not for any meaningful definition of the word critical. Developers have a mirror system with whatever adjustments they're doing. Fix the problem in test, move it over. Developers have no need of touching a live system.

    29. Re:For me by nigelo · · Score: 1

      rm -rf /^H^H^H^H^H^H^H^Hoops wrong window

      THAT is one problem with devs with privs working on Production system, right there.

      With the best will in the world, it can all go sideways when you type in the wrong window.

      --
      *Still* negative function...
    30. Re:For me by mwvdlee · · Score: 4, Interesting

      In the mainframe shop we used to have 5 stages; (production, shadow (with similar load to production), functional acceptance, system integration and development), next to that 2 well secured "emergency" stages linking to prod and shadow and a single "free for all" development area outside the control of the basic stages.

      Mainframe shops tend to be much more closed and mature than more modern environments, and hence much less goes wrong.

      I've also worked in a Java shop at the same company, where they had 3 stages and a locally for dev, but the stages were much less controlled and you could easily skip straight to production. Obviously only the most experienced of programmers did this and only when they were absolutely certain. Obviously quite some more fixes went wrong on production.

      Currently working in an environment without stages, I try to work on test copies as much as possible but the temptation of bugfixing directly in production is quite large.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    31. Re:For me by Anonymous Coward · · Score: 0

      You do understand that sometimes bugs happen on production that don't happen on test, right? Sometimes the peculiarities of a customers set-up can really screw things around in an odd way. Developers need access so that they can diagnose the problem, find out the cause and THEN they can go about replicating it on test to make a fix. Access to system log files, network tools and just being able to observe the load on the server can be invaluable in diagnosing a bug. Developers have lots of reasons to want direct access to a production server. What developers don't need is permissions to CHANGE anything on production.

    32. Re:For me by tomhudson · · Score: 3, Insightful

      You've obviously never had your boss direct live traffic to your "test" server at the datacenter, and not tell you for 2 weeks.

      I'm comfortable working without a net - but I'd like to know about it.

      Obviously, from that point on, any time we did a make, we made sure that we could install the new code within a few seconds, so as to avoid downtime (we could tolerate a delay of 15 secs once or twice a day without raising eyebrows).

      And sometimes a fix HAS to be done live to prevent bad data from propagating. If you don't trust yourself to get the command just right the first time, then step away from the keyboard and find someone who can type the right sql command the first time with 5 people hanging over their shoulder sh*tting bricks. In other words, you need one of the devs - fast. You certainly wouldn't let a sysadmin do it.

      In theory, you may be right. In theory, theory and practice are the same. In practice, they're not. There are ALWAYS exceptions. Not realizing this, and being flexible, is a mistake.

    33. Re:For me by idontgno · · Score: 1

      A checks-and-balances error prevention regime is nice, but the number of startling disasters brought about by the sequential failure of numerous error gates makes it pretty clear that it's not a cure-all. In the specific situation you cite, diffusion of responsibility is a real risk among the human elements. "I'm sure so-and-so checked this out, and he passed it, so I don't have to bust my butt to double check that." Followed, tragically, by mutual fingerpointing and a chorus of "You were supposed to check that!"

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    34. Re:For me by sqldr · · Score: 1

      All of our servers build right up to being online automatically. In a cluster of more than 3, I'm happy to take one out of the load balancer for them to have a poke around at it. Even if they completely screw it up, I can have it back in its working state in 10 minutes, so it's really not a problem.

      The database on the other hand... that contains difficult to replace customer data. I'm much more wary of that.

      Then again, the author of the question should really be asking "have I done enough to recover from a catastrophe in a hurry?". If the system is a mess and can't auto-build itself, then a developer is bound to break it, and the sysadmin is partly to blame for not doing a complete job in the first place.

      --
      I wrote my first program at the age of six, and I still can't work out how this website works.
    35. Re:For me by Lord+Ender · · Score: 1

      if it takes ridiculous amounts of manual effort to deploy to a single extra test server, you're probably doing something remarkably inefficient.

      If you work on something bigger than a PHP CMS for a dog-walking business, it really can be a lot of effort. There's all the networking gear you need to buy in duplicate, the extra Oracle licenses, the SAN gear, etc.. It isn't cheap or easy to duplicate a big IT system.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    36. Re:For me by Gulthek · · Score: 1

      Virtualization has changed all that. It's worked wonders for us (major University Library, serving...quite a bit).

    37. Re:For me by Americano · · Score: 2, Informative

      I can't disagree with that, but the stuff you're listing is more or less a one-time setup cost: The point made by GGP was that deploying to a prod-clone system ('keeping it matching production') takes time - and that should not take any more time or effort than deploying to your existing prod or qa or uat systems.

      If it takes great, ongoing manual effort to install your software on a single extra system, you're doing it wrong.

    38. Re:For me by johnlcallaway · · Score: 1

      Damn kids .. we just used to use shell scripts, tarballs, and configuration files for deployments and promotions. You young-ins have it so easy today.

      Oh wait ... that was easy.

      .... AND GET OFF MY KEYBOARD!!!!!!

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    39. Re:For me by Gulthek · · Score: 1

      That situation is the end result of really bad planning; that doesn't mean that that's the only way to do it.

    40. Re:For me by tomhudson · · Score: 3, Interesting

      ... and really bad planning happens all the time in the real world.

      Look around you. Try to convince yourself that all this was properly planned. The real world is messy.

    41. Re:For me by CAIMLAS · · Score: 1

      Yes; yes it is.

      We deal -constantly - with developers who have been granted to one+ of our production sites for political reasons. It's infuriating.

      Thankfully we do binary snapshots every night, so it's trivial to restore a developer's fuck up. It just happens so often....

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    42. Re:For me by TheLink · · Score: 1

      > With the best will in the world, it can all go sideways when you type in the wrong window.

      And how sure are you that people handling the production systems won't do that? In the end, someone still has to handle those systems.

      I've seen nondevelopers in charge of production machines use "!" on production machines with rather bad consequences.

      So to me it's the wrong question. It's not "Should Developers should have access to Production". The correct question is "who is careful and competent enough to be allowed access to important production systems?".

      Yes most developers aren't careful and competent enough to administer critical systems, but most people aren't either. Do the bosses and customers really care?

      --
    43. Re:For me by Anonymous Coward · · Score: 0

      Eh... not really. It sounds like you work in a business where you have many instances of the same build running all over the place, or maybe very few instances, and perhaps there are very outside dependencies.

      However, I have seen instances where its quite hard to keep a QA or stage environment in sync with production:
      Systems running on "Big Iron:" Mainframe type systems are expensive, often there is a separate system around, but it is shared and not running full speed- which can make certain types of race conditions difficult to replicate (though those are often difficult no matter what).
      Systems running against huge databases: These are again expensive to replicate and business logic type bugs that only affect a small number of edge cases can go undetected in environments that only replicate a certain slice of the dataset. You can try to replicate the bug by having a test system connect in a read only fashion to the DB, but that doesn't help much if you have a problem involving something writing data to the database.

      Systems with expensive outside datafeeds, or lots of "external" dependencies: I work in finance, and marketdata, which is a basic component of any financial system, is extraordinarily expensive, both in terms of costs from the exchanges or providers themselves, and the networking lines required to bring them in. Vendors restrict what you can do with their marketdata, you can't just take their pipe and start feeding it to everyone in your firm who needs it- you have to essentially buy a license for each of them for the most part. Equally expensive and onerous are symbology systems, and in larger firms you will often need to make "external" connections to exchange test systems, account databases, trade reporting facilities, and a slew of other systems that you need for even the most basic functions of a system to run. You can build test adapters or simulators for a lot of these, but keeping them all up and running like they would in prod is no easy task.

      Systems with many different permutations in configuration:
      We have about 30 different applications deployed, each having certain configurations to support different business lines. Its not feasible to have a live stage/QA instance up for each of our production hosts.

    44. Re:For me by dixiecko · · Score: 0

      it is possible to provide symptom patch for production system which collects addition information when given un-reproducible bug happens (e.g. additional traces, dumps, logs).

    45. Re:For me by x2A · · Score: 2, Insightful

      That was kinda my point, 'tho in reality I don't tend to do that... you learn quite fast after you accidentally shut down a remote server thinking you were rebooting your local firewall! Custom and highly different prompts helps here though.

      One thing that does from time to time happen though is the mistake-paste, where the contents of the clipboard weren't as expected (for example, while clicking to select the ssh console, maybe accidentally selected a few characters which replace the clipboard). This can mean that *anything* can happen.

      Either way, you do have to apply changes to the live system at some point, and I've seen problems come up here before, like permissions not being changed correctly, live system log file overwritten by a development system log file, killing any chance of debugging anything that needed that log etc - although once I pointed out that this was going on, the update proceedure could be corrected so it no longer happened, but it does demonstrate that the more actions you have to take, the larger the mistake-surface-area is. You just hope that the intersect of mistake-surface with the live system is smaller, even if the overall mistake-surface is larger.

      --
      The revolution will not be televised... but it will have a page on Wikipedia
    46. Re:For me by n0tWorthy · · Score: 1

      Agreed, a strong installation document, good Dev and Test environments, separation of duties between programmers and installers and strong change control make a MUCH more stable environment.

      --
      "Be kind, for everyone you meet is facing a great battle." - Philo of Alexandria -
    47. Re:For me by The+Clockwork+Troll · · Score: 1

      Yeah, that's tempting.

      But to the extent this happens more than once in a while, what would you rather have, a reputation for fixing bugs quickly, or a reputation for building systems that are unpredictable/unreliable?

      --

      There are no karma whores, only moderation johns
    48. Re:For me by dmgxmichael · · Score: 1

      You prefer it only get checked once?

    49. Re:For me by HereIAmJH · · Score: 1

      Developers have no need of touching a live system.

      Keeping developers off of production systems by removing their privileges isolates them from the users. While I know there are plenty of code monkeys out there that would prefer to be isolated in their cube, churning out code, you get a better product when users and developers interact. Developers need to see the users' work process so they can understand the challenges that the users have with a system.

      Over the years I have saved myself more work by making suggestions on process flow than it has cost me dealing with over demanding users. And I'll bet there were enough labor savings in those improvements to pay my salary. Quite often system requirements get defined in a way that mirrors the current (or manual) process because the developers can't/won't provide useful input on what is possible with a new system.

      --
      Another day, another update to a Google android app.
    50. Re:For me by idontgno · · Score: 1

      Strangely enough, if I can have to checked only once, but checked nearly fool-proof, yes.

      Redundancy can be a negative reliability impact: "Double-engine aircraft have twice the engine failure rate of single-engine aircraft. Put all your eggs in one basket, but make sure it's a really good basket."

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    51. Re:For me by mcvos · · Score: 1

      In the mainframe shop we used to have 5 stages; (production, shadow (with similar load to production), functional acceptance, system integration and development), next to that 2 well secured "emergency" stages linking to prod and shadow and a single "free for all" development area outside the control of the basic stages.

      How do you get shadow to have the same load as production? That's the really important part that often makes the production-clone quite different: much lower load.

      Anyway, we develop locally, deploy regularly (once or twice a week) to test (which has mocks of all external services). Then it goes to it (integration-test, which uses real external services), then there's acc1 and acc2, training, prod, and probably a couple more. I've only ever had anything to do with the test, integration and training servers. Everything else is way beyond my reach. (This is a Groovy shop, by the way.)

      I've also worked in a Java shop at the same company, where they had 3 stages and a locally for dev, but the stages were much less controlled and you could easily skip straight to production. Obviously only the most experienced of programmers did this and only when they were absolutely certain. Obviously quite some more fixes went wrong on production.

      Currently working in an environment without stages, I try to work on test copies as much as possible but the temptation of bugfixing directly in production is quite large.

      At the previous job, I have on occasion done bug testing and fixing on production. But all my changes were always absolutely guaranteed to be completely safe very much nearly all of the time. Only rarely did I completely fuck up the production environment.

    52. Re:For me by mcvos · · Score: 1

      Exactly my thought. It makes it very easy to make an exact copy of the production environment.

      Of course you do need to be careful that it doesn't accidentally still talk to the production database.

    53. Re:For me by rathaven · · Score: 1

      I can see both sides of this, however, the real answer is that it depends on the environment required for testing and required for development:

      1) The easy scenario:

      We clone the live servers from snapshots or disk files and make them available to a test system which is a mirror of live but is only accessible via private network - no ip changes, config changes because of hostnames embedded in software or databases (either rightly or wrongly). The downside is the accessibility - you can't just bring it up on your main lan as it will clash with the live system.

      2) The slightly more difficult and more time consuming scenario:

      We clone the live servers as a base config, spend some time configuring them for the live environment so that they don't clash with the live system, this breaks things which we analyse and fix, tracking the changes so that we know what we are doing next time and can maybe script some of then. Once we have it we have to either have a data transfer method to ensure the data is up to date or re-do the work from scratch. Data transfer methods depend upon the table structures and are therefore likely to be version specific or require data migrations changed.

      3) From this you can then enter the very time consuming scenario:

      Neither of the first two are particularly difficult if you are developing the app and therefore know what pieces are server specific, however, there are likely to be large environmental differences between your live and test systems - not the least the traffic patterns and system utilisations. Test systems also tend to be cheap hardware or virtualised servers setup as quickly as possible whilst the live environment could involve clusters of servers, multi-site failover/load balancing/caching engines all of which can impact the functionality of the app. The closer you want the app to be live the more you have to mimic.

    54. Re:For me by Anonymous Coward · · Score: 0

      True enough. Careful production hacking won't break anything. The problem is managing changes, so your one-off hacks don't get clobbered at the next install cycle.

    55. Re:For me by dindi · · Score: 1

      you should have a dev, testing (staging??), pre-prod and prod environment.

      Pre-prod should be the same as prod (same hardware, net, everything). In large environments developers have access to only dev, everything else is deployed by middleware ops ....

      this model was used in both a 24-7 manufacturing environment and bank I supported..... where I develop now, I have access to everything, but my role is somewhat special, I am involved in server related planning and deployment too to some extent....

    56. Re:For me by David+Gerard · · Score: 1

      I'm a sysadmin to developers. IME devs get all the production logs they want, at the logging level they want. Writing to live, we work as a pair. A very good and experienced dev gets live write access without a sysadmin, his phone is one of the ones that rings at 3am when it goes wrong. This provides the feedback loop that keeps everyone's attention focused and stuff running smoothly ;-)

      Development and system administration are different jobs; experience in one is not experience in the other. The competences do not transfer, either way.

      --
      http://rocknerd.co.uk
    57. Re:For me by mabhatter654 · · Score: 1

      The true purpose of not allowing developers is for stability and reliability. Nothing is worse than an untested program erasing a single field from 100k lines and having to put it back. I know since my company went to keeping devs separate, our production system only shuts down for regular patches. We also went from having 6 people (plus contractors) dedicated to taking user calls down to just me and the contractors help with debugging.

      I would say keeping devs out of production for security purposes is the wrong idea. Ideally, devs should have an identical system on which to program and access to any data files for troubleshooting.

    58. Re:For me by Mack428 · · Score: 1

      It isn't always as easy as just firing up another server. Depending on the complexity of the systems involved and how they tie in together, to reproduce a certain issue you might need multiple different servers, applications and databases. It is usually never as trivial as just deploying a single extra test server.

    59. Re:For me by gooneybird · · Score: 1

      "but they do require people-time to keep them matching production."

      Not really. Not if the production machine is a virtual machine. Clone it, and depending on how your DB is set up (separate machine or same machine) point the cloned vm towards a different DB and you are up and running in minutes.

    60. Re:For me by Cederic · · Score: 1

      Seriously, hardware is cheap and people are expensive. Minimizing person-time is worth a bit of hardware gluttony.

      With all respect, the prod environment for just one of my apps cost around £8m.

      To do a full prod equivalent end-to-end process, including all the systems, using as-live data, would require substantially more hardware than that.

      So no, hardware is not cheap.

      Luckily almost all issues can be replicated on substantially lower spec test environments and/or detected and resolved through appropriate logging mechanisms. Anything else needs dedicated time on the prod equivalent performance test environment (which tends to be booked pretty solidly for performance testing) or (and we're talking category one bugs jeopardising the company) run on the DR kit (leaving us with no DR).

      But that's all theoretical, in my experience the admins will bugger up Prod with no dev help anyway.

    61. Re:For me by Cederic · · Score: 1

      Erm. The person you quoted meant touching a live system in a non-user capacity. Developers do not need non-user access to production systems to shadow a user and understand how the system is used.

      If developers do need a system generated audit trail, they should write it into the system and ask the admin to grant them access to the audit trail (i.e. email them the log or give them a login to the web UI they wrote onto their logging DB).

    62. Re:For me by mabhatter654 · · Score: 1

      At my company we put it as part of our recovery testing in addition to development. After all, if you don't have all the pieces for a DR/HA box or at least a good development box, then you don't REALLY have a recovery program. And if you can't PRACTICE recovery, you don't have a backup plan! On our system we use our backup tapes from production to go through the whole process of pulling a regular backup tape and restoring our production data files to the development system. This has the side effect of forcing the devs to "clean house" and practice setting up their programming changes again... sure there are issues... but you WANT the developers to have them, not the users.

    63. Re:For me by shentino · · Score: 1

      It's a shame where covering your own ass has to be more important than fixing things.

      In an ideal environment, once you've taken advantage of a duly provided opportunity to prove your mettle and become trustworthy, you get to glide through red tape like greased lightning.

    64. Re:For me by canadian_right · · Score: 1

      Developer access to prod may be required if the bug can't be found on test, but it should not be normal for devs to have access to prod.

      We all know how it should work: develop on dev, push to staging and test it, then push it to prod.

      --
      Anarchists never rule
    65. Re:For me by pixelpusher220 · · Score: 1

      having played both sides of this particular fence, I find that developers quickly gain production access when the prod support and mgmt teams realizes what mimicing the production environment *exactly* in test and dev environments would actually cost.

      obviously not unfettered access, and monitored as well, but you just can't fix things you can't reproduce without oodles and oodles of time and expense that is much easier rectified by just letting them access the prod environment.

      Likewise building a program capable of completely logging it's exact environment and conditions so that any unknown future bug can be properly troubleshot just isn't going to be approved as part of the budget. Give them the access and verify *everything* they do.

      --
      People in cars cause accidents....accidents in cars cause people :-D
    66. Re:For me by mwvdlee · · Score: 2, Informative

      How do you get shadow to have the same load as production? That's the really important part that often makes the production-clone quite different: much lower load.

      The idea of shadow was to test real-life production. It was basically identical to production in every way (including that developers had no access to the data; AFAIK it was anonymized anyway), except the data wasn't used for anything. Software had to run uninterrupted for a number of weeks before it would be allowed to go to production.

      Sometimes all those stages are a pain, but in the end it results in a much more stable production.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    67. Re:For me by Anonymous Coward · · Score: 0

      As a developer I tend to agree if some conditions are met :

        - read access to log files are a must imho
        - test setup available, preferably a clone of the prod system

      If not, how are you going to be able to do much testing, debugging ?
      Try going around blindfolded, that would pretty much what you would be doing without the above.

      Well unless you are an avid follower of Dirk Gently's holistic methods ;-)

    68. Re:For me by HereIAmJH · · Score: 1

      Erm. The person you quoted meant touching a live system in a non-user capacity. Developers do not need non-user access to production systems to shadow a user and understand how the system is used.

      Most of the posts seem to assume the only reason to access a production system is to debug or make code changes. If that is the only exposure they have to the production system then they have a limited utility for the company they work for. They are simply coders.

      Over the years I have seen a lot of reasons why developers should have not only access to production, but more access than a common user. I know you're thinking in terms of data and code, but as a developer I have had access to do whatever a user is expected to do. And I have done all the jobs, in production, that my users were doing.

      I have also seen times where IT was expected to make data changes since it was the most efficient way for the business to fix a data problem. An easy example, one of your customer changes addresses and they have hundreds of blanket orders in your system. Many order processing systems store the ship-to address in the order header to allow for things like drop-ships. So it makes sense for IT to do a SQL update rather than Customer Service updating all those orders. There are just times when it's better for the business to 'back door' a data fix. But you can't leave that to the sysadmins, they know how the servers and network operate, they don't know how bits of data interact with each other. You need the developers to know where and when it is safe to make data changes.

      All the reasoning I have seen for not allowing developers in production have to do with someone doing something stupid, bypassing procedures, or keeping them isolated from the users. Developers shouldn't be isolated. And if they regularly do stupid things with production systems or bypass procedures, then their managers should be discussing their future with the company with them.

      Developers should have the access that makes them the most effective resource for the company. If that means helping the income producing departments fix data problems, then they should have the access to do it. Particularly since many data issues are the result of poor data validation in the applications. And if a developer can get a call on a system down at 2am, they should have access; to production to identify it, to dev/test to fix and test, and again to production to install a patch. There is nothing worse than being on call to fix problems you don't have the privileges to fix.

      Its not like developers are getting away with something. With access come responsibilities.

      --
      Another day, another update to a Google android app.
    69. Re:For me by mjwx · · Score: 1

      That's why you shouldn't have access to prod, but you should be able to either A. get a clone of prod made fairly quickly or B. already have one running so you can mutilate it however you want.

      I think that's backwards, Test environment should snapshotted to be identical to prod just after the last change occured. So all we would need to restore is last nights database backup to test if required.

      If a change is done to prod, it's already running in test. If you make changes to test, restore the damn thing back to the snapshot of the last prod change (or use another copy altogether, which is easy with Virtual Machines although that introduces a versioning issue).

      Test should be treated as 2nd prod and only used as a precursor to making a change on prod, Dev versions are what the developers can mutilate to their hearts content because you can just take another copy from test. Plus this keeps dev's very far away from mission critical prod systems.

      --
      Calling someone a "hater" only means you can not rationally rebut their argument.
    70. Re:For me by Cederic · · Score: 1

      I fail to see any correlation between access to production servers and isolation from the user.

      Developers (whether software engineers, code monkeys or heroic creators of beautiful masterpieces) are not system administrators. Those are two different roles.

      Both roles need exposure to users, but neither role requires production server access to go and talk to a user or to be setup as a user (power user or otherwise) so that they can use the system from that perspective.

    71. Re:For me by Anonymous Coward · · Score: 0

      I worked for Medco (prescription drug coverage insurance and mail order pharmacy company) through a contractor before Merck (the pharmaceutical research and manufacturer) sold them. (The insurance biz was only make 9-11% returns year over year and drugs were 12-15% so they cut the low preforming investment.) Now lets not even discuss the problem with a drug company also overseeing the drug coverage benefits for 25% of all insured Americans and instead move on.

      So, having moved on, let me tell you a story told by a Medco pharmacist in the whistle-blower lawsuit the federal government brought against Medco (as the DoD used Medco for drug coverage). There was a management goal to keep labor costs low. The pharmacist we so short staffed they could not fill all the prescriptions with the staff they had. You know how the workers on the floor handled the impossible predicament management put them in? They incinerated the prescriptions they could not fill in time to hide the evidence of their medical malpractice. The customer would call the 800 # for the mail order pharmacy to see where their prescription was in the shipping process because it was over due arriving by mail. The CSR would say, "Our records don't show a prescription was ever sent by you." Because the computer system never showed its arrival (because it had been burned before processing to hide Medcos inability to fill it.) The patient had to go back to the doctor and get another script, mail it again and cross their fingers. Very efficient and we wonder why healthcare costs are so high. Because . . . (wait for it) . . . because . . . the investor need to be paid more than sick people need to be made well. At least that was the healthcare GIANT Merck/Medco's take on it. I bet you will find that in the executive level in all major healthcare corporations, those executives will cut every corner they can to make sure the shareholders are happy, the customers and employees be damn - if necessary. Anything for money.

      I know I said, " Now lets not even discuss the problem with a drug company also overseeing the drug coverage benefits for 25% of all insured Americans". But let's do so anyway. Anyone familiar with prescription drug coverage? Know the terms "formulary" and "non-formulary" medications? It means low-copay and high-copay in layman's speak. Do you think maybe the Merck drugs were formulary while competitors drugs for the same treatment were not? Not in every case, but in many the answer was "yes". Merck used its power as an insurance provider to favor its own products. Efficacy be damned.

      Maybe, what you need to avoid like the plague is the entire healthcare system in America. Unless you are filthy stinking rich. Then you can get whatever treatment you and your doctor prefer and pay for what the insurance company won't. There have always been "death panels". The Democrats would have made them government panels. The Republicans wanted the corporate death panels to stay. Looks like corporate greed for the win, useless Democrats.

    72. Re:For me by Anonymous Coward · · Score: 0

      User: There is an error on page X
      Me: I put on my wizard robe and hat.
      User: WTF?
      Me: I cast Level 3 lightning. You are burnt to a cinder. You no longer care about the error on page X
      User: WTF? BBQ? You crazy b*st*rd! I'm calling your supervisor!
      Me: Ok. My name is [insert name of despised "colleague"]. Have a nice day, f*ck face!

    73. Re:For me by rwven · · Score: 1

      Any LAMP developer worth his salt, especially a self-trained one, is going to understand almost all the fundamentals of being a sysadmin.

      They most definitely do transfer both ways in a LOT of instances.

    74. Re:For me by David+Gerard · · Score: 1

      They will understand it if they have done it, you mean ;-)

      Development is building new things; system administration is making them work robustly and reliably in the real world. These are different jobs, even if they're being at least partly done by the same people.

      --
      http://rocknerd.co.uk
    75. Re:For me by rwven · · Score: 1

      Haha, I see it from your angle, but I also see it from mine. :-P

      I think it's all about the context, the circumstance, and the particular technology.

      You also find that while you may be a great sysadmin to work with, many are controlling, territorial, and generally hard to work with.

    76. Re:For me by David+Gerard · · Score: 1

      I'm just fantastic, me. Because I am in no way a programmer and see my job as computer roadie, to make developers look like rock stars and make sure THE SHOW GOES ON.

      There do exist horrible sysadmins, and there do exist devs who just don't understand the attitude needed for a robust service. The sort of devs who seriously advocate Gentoo over CentOS for a stable and well-supported server environment. *shudder*

      Thankfully my last two workplaces, with a reasonably strict dev-integration-staging-production chain in the last one and dev's PC-dev-staging-production chain in this one (which is functionally the same chain), had considerable excellence on both sides ... and one or two dickheads on each side. (None at all in the present job, of course!)

      (Both have serious availability requirements. The previous one needed broadcast reliability, and the crippling SLA penalties for any outage were certainly a tremendous incentive for the sysadmins to be fair but firm. The current one, only needing website levels of reliability, is like a holiday by comparison.)

      --
      http://rocknerd.co.uk
    77. Re:For me by lewiscr · · Score: 1

      Just make sure it disables that credit card billing cron before leaving the test environment running with production data...

    78. Re:For me by FatSean · · Score: 1

      There's more than deployment. One has to ensure that the staging/test servers have the exact same software levels as the production servers. Make sure your test teams and production teams are in synch.

      --
      Blar.
  2. One thing I do know by Anonymous Coward · · Score: 0

    Is that marketing definitely should not have access to production. They ... they wiped out the site a couple months ago, while trying to update an image.

    1. Re:One thing I do know by BoberFett · · Score: 1

      Marketing should have limited access to THEIR OWN data. Never has any other department required so many restores...

    2. Re:One thing I do know by thejynxed · · Score: 1

      Marketing should be walled off from everything but a large, caged enclosure in a sub-basement, with the only other external access being to a restroom door marked, "Beware of Hungry Jaguar."

      --
      @Mindless Drivel: 100% of Twitter posts ever Tweeted.
  3. Short answer by Issarlk · · Score: 5, Insightful

    LOL! No.

  4. Yes. DBA's are no longer needed... by bodland · · Score: 1

    All we do is run scripts and get in the way of developers trying to "git'r done!".

    1. Re:Yes. DBA's are no longer needed... by swanzilla · · Score: 1

      All we do is run scripts and get in the way of developers trying to "git'r done!".

      Well, that, and apparently confuse your roles with those of systems administrators.

    2. Re:Yes. DBA's are no longer needed... by AffidavitDonda · · Score: 1

      right. and root access can fix everything...
      don't you have some packages to pack?

    3. Re:Yes. DBA's are no longer needed... by xero314 · · Score: 1

      Yes. DBA's were never needed...

      FTFY

  5. What a silly question. by Score+Whore · · Score: 3, Insightful

    No. It just encourages sloppy development practices.

    Would you want to drive over a bridge that wasn't actually designed and engineered, but rather they just piled some stuff up and will fix it if it collapses? Or have a surgeon chopping you open with the idea that they'll figure it out as they go? So why would we want developers to work with the expectation that they get to intervene at the last instant to resolve their failures?

    1. Re:What a silly question. by Anonymous Coward · · Score: 0

      > So why would we want developers to work with the expectation that they get to intervene at the last instant to resolve their failures?

      I interpreted the question to be whether developers should have access to log files and data(-base). I would hardly think about serious developer would start modifying anything on the fly in a production environment. Sometimes it's just really hard/impossible to figure out what a problem is if you just go by the description of the customer and or helpdesk. We have this power struggle all the time in our company. If you have to ask for the data/logs, it only helps if you actually know exactly what you are looking for. And usually it takes way too long and way too many emails to finally get the correct set of data from the sysadmins.

    2. Re:What a silly question. by jameson71 · · Score: 5, Insightful

      On the other hand, I wouldn't want the surgeon to have to give instructions to a trained monkey on how to do the the surgery because the surgeon does not have access to the production patient.

    3. Re:What a silly question. by atisss · · Score: 1

      That wouldn't be correct comparison. Good developer would correspond to experienced surgeon who have just done surgery on you and is coming by often to see if you have some complications. In case of complications he always keeps scalpel available and fixes whatever is necessary.

      In my project I'm the only dev with access to production, and having it really helps resolving some issues instantaneously, as it would otherwise take significant amounts of time to replicate issue on development machines. Having an experienced person available to fix problems when they occur saves my employer a lot of money, as each minute of downtime is pretty expensive. Essentially the dev must have good knowledge of System Administration.

    4. Re:What a silly question. by dkleinsc · · Score: 5, Insightful

      So why would we want developers to work with the expectation that they get to intervene at the last instant to resolve their failures?

      Because if there's a problem, there will be an expectation that they need to intervene to resolve their failures.

      To play Devil's Advocate here, there are some semi-legit reasons why developers might get production access:

      • If there's a serious production failure, developers are often called upon to assist the admins, because while they aren't admin experts they generally have some administration skills.
      • If there's a bug that makes it to production, the time it would take to fix the bug using proper procedures may cost more than doing a quick-and-dirty fix now and cleaning up using proper procedures later.
      • Diagnosing production-only bugs, which frequently require read-only access. For instance, developers may need read-only access to determine that their software didn't deploy correctly.
      • Helping admins properly configure their software.

      Now, none of this should be done willy-nilly. The basic rule at my workplace is that a developer can do nothing that could potentially alter behavior without managerial approval and admin approval where appropriate. At the same time, the primary enforcement of that rule is trusting our devs, so very little of that is actually enforced technologically.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    5. Re:What a silly question. by Anonymous Coward · · Score: 0

      It might be excusable in a perfect storm where you deploy something to production, it fails in prod (but of course didn't on dev), and you can't rollback due to trollkin (again, perfect storm.)

      Also, people are less likely to die than in the bridge and surgeon scenarios.

      You can be as clean and tight as a nun's cunt with your development practices, but IMO provisions should still be made for debugging extreme unforeseen situations. (e.g. Flags to produce call traces and debug info, JTAG or breakout boards for embedded devices, a debug or scripting console for client standalone applications, and so on. Better to not need the tool and have it rather than need the tool and not have it.)

    6. Re:What a silly question. by jellomizer · · Score: 3, Insightful

      Bad analogy.

      It is more like having a Cardiologist diagnosing the problem then telling the heart surgeon what to fix.
      We don't give our fixes to a trained monkey we give them to System Administers or implementation specialists.

      I would say that I am a good developer. However I am only an OK System Administrator and I often when my code is done and working well. Deploying the code offers a new set of issues to work threw.

      However If I give to people who are good at taking my code and implementing it, the process runs much smoother without much problems.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    7. Re:What a silly question. by Desler · · Score: 2, Insightful

      We don't give our fixes to a trained monkey we give them to System Administers

      There's a difference?

    8. Re:What a silly question. by cpscotti · · Score: 1

      Hey! Don't use surgeons for that reasoning!
      Whoever thinks Medicine is "Science" or that Surgeons know exactly what they'll do when they have your belly wide open: a) lives in a beautiful world where nobody dies, b) never seen a surgery in real life, c) knows nothing about the huge difference between math and medicine.

    9. Re:What a silly question. by mini+me · · Score: 2, Insightful

      I do prefer to drive over a bridge that is well designed, but if that bridge is found to have design flaws, I prefer to have them fixed right away. I do not want to wait for the crew to build a second identical bridge next door in order to test their patches.

    10. Re:What a silly question. by rtfa-troll · · Score: 2, Insightful

      Ahh. Well then I don't advise you to visit any medical colleges or hospitals. 'cos, whilst the doctors that will be treating you aren't going to be exactly trained monkeys, they definitely won't be the ones that developed the procedure. In fact, most of the time you will find that they are pretty much following the documentation.

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
    11. Re:What a silly question. by SatanicPuppy · · Score: 4, Insightful

      I work for a big company where every significant business unit has it's own devs and own processes. And while I'm primarily an admin, I still deploy some dev-level stuff a few times a year.

      And nothing, nothing annoys me more than going to a shop where the admin doesn't understand the tech, doesn't read the project requirements, and will not, under any circumstances, let me see his production hardware before he tries to deploy.

      Because inevitably it fails and then he tries to throw me under a bus, and I have to get on a conference call and try to use my magic mind powers to debug a system I'm still not allowed to see.

      Back when I was primarily a java dev, I used to have to configure Tomcat all the time, and it was the sort of thing were you needed to have some experience. And time after time I'd end up dealing with some windows admin who knew absolutely nothing, but was utterly convinced that I could never know more than him about a server technology.

      In short, common sense and a reasonable respect for experience beats a hard and fast rule any day.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    12. Re:What a silly question. by hsmith · · Score: 1

      Admins not following install instructions because they "know a better way" - hogwash! Never has happened!

    13. Re:What a silly question. by John+Hasler · · Score: 5, Funny

      > There's a difference?

      Sure. The monkey is trained.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    14. Re:What a silly question. by balbeir · · Score: 1
      The correct answer as always is : it depends

      It just costs more that way and takes longer. Which may or may not be acceptable for the people running the site. Your bridge/surgeon metaphor only works for a certain category of mission-critical sites.

    15. Re:What a silly question. by vegiVamp · · Score: 5, Funny

      As a systems admin, I can assure you that there is definitely a difference.

      Trained monkeys get free bananas and are allowed to fondle their bits in public, to name but two.

      --
      What a depressingly stupid machine.
    16. Re:What a silly question. by TheRaven64 · · Score: 1

      It's an even more silly question when you consider that it's being asked on Slashdot. How often have random things broken here because the developers just pushed changes without adequate testing?

      --
      I am TheRaven on Soylent News
    17. Re:What a silly question. by Anonymous Coward · · Score: 0

      Or have a surgeon chopping you open with the idea that they'll figure it out as they go?

      They do that all the time. I saw it on House M.D.!

    18. Re:What a silly question. by John+Hasler · · Score: 2, Insightful

      I do prefer to drive over a bridge that is well designed, but if that bridge is found to have design flaws, I prefer to have them fixed right away. I do not want to wait for the crew to build a second identical bridge next door in order to test their patches.

      How about if, having built the bridge, they could build a second one in a few minutes for a dollar or so, store it out of the way in hyperspace, and swap the two at will? Would you still not want them to work on the offline one? Read I35 Bridge before you answer.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    19. Re:What a silly question. by DJRumpy · · Score: 1

      It has always been my companies philosophical belief that those who implement (operations) should not know what they are doing. The idea is that those who do know what they are doing have no access, and those that have access have no knowledge. It makes for an interesting environment. You have to document everything to the finest detail, and not only get your package QA'd, you must also get your implementation documentation QA'd. The minor problem with this is that eventually, someone doing this long enough will develop skill with the system they work on.

      Although the system is cumbersome, I can see the reasons for it, and understand the risks implied by giving too much access in production. At some point, the ability to fix something will be too tempting to go through change control to get it done.

      For instances where a developer needs access to production, that is allowed, but their actions are logged.

      We don't give our fixes to a trained monkey we give them to System Administers

    20. Re:What a silly question. by spazdor · · Score: 1

      Not to mention the ability to occasionally write like Shakespeare.

      --
      DRM: Terminator crops for your mind!
    21. Re:What a silly question. by Mongoose+Disciple · · Score: 1

      I think this is a pretty good compromise, actually -- some senior subset of developers allowed some kind of access.

      That way you have somebody who can diagnose and fix the big unexpected problems (and it's rare to see the level of testing rigor necessary to catch them all) quick without worrying that random new dev X is going to cock up something he doesn't understand.

    22. Re:What a silly question. by DrgnDancer · · Score: 2, Insightful

      You work for Boeing don't you? God I hated that place. Needed 4 people looking over my shoulder while I followed a script designed for a monkey. If you wanted a monkey, why did you hire an experienced HPC analyst/engineer?

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    23. Re:What a silly question. by recharged95 · · Score: 2, Interesting

      Then again, when I interviewed with Google for youtube:

      "We develop on the main servers, it's typical here, but now, aside from that and more importantly, I have a question : can you show the result of inserting the following values into an empty AVL Tree ... in a Python context"

      Being more of a software engineer than a pure CS wonk (couldn't answer the question completely), and having worked on spacecraft control software........ just say not working there was mutual.

    24. Re:What a silly question. by smooth+wombat · · Score: 1

      The reason there is a script a trained monkey can follow is because if, at the end, things don't go as planned, the steps taken can be reviewed. Since the process is documented and has been shown to be accurate, the obvious answer to why something doesn't do what it should lies elsewhere.

      I do the same thing with any procedure I have to document. I provide detailed, step-by-step directions, including screenshots, so anyone, even the new guy/girl, with basic knowledge can follow the steps and get the same results. If they don't, guess where the problem lies.

      --
      We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
    25. Re:What a silly question. by DrgnDancer · · Score: 1

      If what you need is a trained monkey just literate enough to follow a script: advertise for, hire, and (I would think most importantly to a business) pay for a trained monkey just literate enough to follow a script. Don't advertise for, hire, and pay for a systems analyst and designer with 10 years experience designing, building, and troubleshooting high end Unix systems. I shouldn't complain really. They paid me pretty well, I had an idea what I was getting into from the interview, and I needed the job at the time. None the less, it was boring, I hated doing it (though I was happy to get my paycheck from it), and I can't get over the idea that it was foolish as Hell to hire me for so much money to do such pathetic work (not that I'm not grateful they did).

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    26. Re:What a silly question. by berashith · · Score: 1

      I have noticed though, when I get angry and throw poop at people, they all just shake their heads and shrug it off.

    27. Re:What a silly question. by Anonymous Coward · · Score: 0

      I was going to reply somthing like that to GP but figured that I would just be trolling but now that you have broken then ice i might aswell do it anyway.

      To som up the original analogy; I don't have a clue of what I am doing, but the bridge I just built sort of works. At least it still stands as long as no one is driving on it.
      Or: Hey, I just operated on this dude and he is still alive, come her and let me cut you up!

      The problem is that even if your test system is an exact replica of the production system it will be used in a different environment. Having a test system is a good thing to have but you should generally develop on a developer system, then test it out on the test system (This way you also test the deployment of the changes.) and then move to production. Even if you take all these precautions things will still break if you don't take the production environment into consideration and unless you get fired the first month you will eventually miss a detail, everyone makes mistakes from time to time. (Well, some people don't admit their mistakes but I put them in the category that should have been fired the first month since they make it almost impossible for others to help fixing their problems.)
      So, regardless how good procedures you have there will be problems on you production system. What you need is a method to fix those problems before they become too expensive.
      It is a really good idea to let your developers have access to the production system, but first you will have to make sure that you have the testing system in place so that they do not have to fsck things up royally. And then you have to get rid of the developers that are too proud to do things carefully.
      Way too often I see geeks that try to build the perfect system/procedures but since it is not supposed to break they fail to build in the methods to fix/work around a broken system.

    28. Re:What a silly question. by Yakasha · · Score: 1

      As a systems admin, I can assure you that there is definitely a difference. Trained monkeys [snip] are allowed to fondle their bits in public [snip]

      allowed being the keyword in that difference.

    29. Re:What a silly question. by CAIMLAS · · Score: 1

      What happens when you give a million monkeys keyboards, then?

      Programming.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    30. Re:What a silly question. by crowne · · Score: 1

      @jellomizer, As a good developer, the braces in your sig should be correctly balanced DoItFaster(DoWhatIWant() ... DoItFaster(DoWhatIWant()) Could that be indicative of why developers shouldn't have production access?

      --
      RTFM is not a radio station.
    31. Re:What a silly question. by tophermeyer · · Score: 1

      Posts like this make me wish Slashdot had a +0 Disturbing.

      I don't really want to affect your Karma, I just want some way of communicating to you that I am concerned with the mental image that you just place into my head.

    32. Re:What a silly question. by Anonymous Coward · · Score: 0

      It's not 'gets to'. It's 'has to'.
      I used to write out an *exact* command-by-command you-can-cut-and-paste this script for a prod deployment.
      I would then test it on a staging environment.
      I would then hand it to an admin who was responsible for doing it.
      Yes, I know it's insulting to the admins to be told to cut and paste, but believe me, I didn't start there. I only got there after years of being screwed by "go here and copy this then run this" directions proving to be insufficiently specific.

      Admins would routinely decide to do things differently - run a program as root instead of su'ing to the right user, or skip a cd and run it from a different directory, or skip the ./ in a command name, or not stop the old process first, etc.
      I would then be required to join an emergency call to explain why 'my deployment didnt work', which always started with me being incorrectly informed that the script had been followed exactly.
      Every time I would learn a bit more about how to write a foolproof start script, like the script should cd to the directory it lives in before starting the program because lord only knows where it was launched from, and that if you want a ps + kill to work on hpux + solaris then good luck. But I had to learn a lot of admin stuff just to deal with working around the troubles my admins would cause and then blame on me and require me to figure out for them.

    33. Re:What a silly question. by Anonymous Coward · · Score: 0

      Au contraire - if the bridge is showing signs of the Tacoma Narrows, I'd rather fixes were tested on the second identical bridge already built (see, I can spot the fallacy) next to the one you're proposing I drive over.

      And even if the proposed changes are improvements, you're not getting me driving over it until you've proven that I'm not going to end up in the river. Aprez Vous, mon ami.

    34. Re:What a silly question. by HereIAmJH · · Score: 1

      Haven't you read the Mythical Monkey Month? That's way too many monkeys.

      --
      Another day, another update to a Google android app.
    35. Re:What a silly question. by DwySteve · · Score: 1

      You work for Boeing don't you? God I hated that place. Needed 4 people looking over my shoulder while I followed a script designed for a monkey. If you wanted a monkey, why did you hire an experienced HPC analyst/engineer?

      There's a lot of 'military thinking' that goes on at defense contractors: everyone should be interchangeable, everyone should follow orders to the letter. Some of that is because of the 'Quality' and 'Security' requirements too. Add together Top Secret clearances, ISO-9000, 6-Sigma, CMMI, WYSIWYG, AFK, WTF and BBW and you get a lot of fun documentation that doesn't really help anyone, needs to be updated every 5 minutes to make it reflect reality, and can't be looked at without five signatures from people you've never heard of and are perpetually on vacation.

      --
      http://angryee.blogspot.com
    36. Re:What a silly question. by NoOneInParticular · · Score: 1
      Really, if you need to describe your process in such excruciating detail, you might want to hire something called a computer to execute it, not a human. Computers are great stuff, you write your commands in some pseudo natural language (no screenshots necessary!) and you will have something called an interpreter or even a compiler that can translate it to computerese. It will run itself! Furthermore, there are tools that allow you to examine why stuff was not going as planned, called debuggers, and it will allow you to log anything you want.

      It's really cool stuff these new-fangled computers. You might be surprised by the number of people you no longer need if you trust your sacred process and procedure to these things.

    37. Re:What a silly question. by DrgnDancer · · Score: 1

      Now that I think about it, that's probably why they were willing to hire me and pay me much more than the job would appear to be worth. A more senior level analyst probably looked good on the project. Or more to the point, they could charge the government for a senior systems analyst, as opposed to a more junior (and less profitable) position. Ah well, not important really, I did the grunt work, they paid me, I moved on when the project started winding down. I have a much more pleasant job now.

      --
      I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
    38. Re:What a silly question. by David+Gerard · · Score: 1

      Making a developer's phone ring at 3am is, in my experience, an *excellent* way to make them a far better developer!

      --
      http://rocknerd.co.uk
    39. Re:What a silly question. by Cederic · · Score: 1

      * If there's a serious production failure, developers are often called upon to assist the admins, because while they aren't admin experts they generally have some administration skills.

      So sit next to the admin while he drives. Been there, done that.

      * If there's a bug that makes it to production, the time it would take to fix the bug using proper procedures may cost more than doing a quick-and-dirty fix now and cleaning up using proper procedures later.

      Again, ask the admin to make the change. Ideally give them a deployment to roll out.

      I've detected, fixed, tested, regression tested, packaged, had admin deploy to a test env, regression tested and had admin deploy to production a bugfix in a couple of hours before now. (The bug was caused by legacy data quality issues.)

      However, even if the fix needs to be "Add that value to the config file", "Delete that entry in the DB" or some other on-the-fly change, get the admin to do it for you.

      * Diagnosing production-only bugs, which frequently require read-only access. For instance, developers may need read-only access to determine that their software didn't deploy correctly.

      Sit with the admin. Get the admin to do ls -lRF and email the output to you. Get the admin to send you the log files. Write a deployment validation script and use it in the automated deployment process.

      * Helping admins properly configure their software.

      Absolutely sit with the admin.

      At no point do developers need to log into the production system. You could possibly argue that the cost of my "sit with the admin" recommendations is too high. I would counter that the risks of any other approach are too high, and that the incidences of needing to sit with an admin will be low anyway. (If they're not, you have fundamental development process issues that will be costing you far more.)

    40. Re:What a silly question. by berashith · · Score: 1

      so, are you concerned that I throw poop, or that it doesn't register with my co-workers as a significant event?

      (monkeys throw poop btw)

    41. Re:What a silly question. by IICV · · Score: 1

      Damn, I thought your link was going to be to one of those cheap hyperspace bridges you were talking about.

      What a letdown.

    42. Re:What a silly question. by dkleinsc · · Score: 1

      As I mentioned, I'm playing Devil's Advocate. I agree that in an ideal world with lots of admin resources available a developer never has any reason to log into a production system.

      * If there's a serious production failure, developers are often called upon to assist the admins, because while they aren't admin experts they generally have some administration skills.

      So sit next to the admin while he drives. Been there, done that.

      The sorts of situations I'm talking about here are massive outages which overwhelm the admin team's ability to respond. I as a developer have been called on to do things like monitor servers and explain to admins what's going on with them, let them know when they have something working correctly, that sort of thing. It's always very clear in those situations that the admin is ultimately in charge, and a developer is acting solely as a technically-skilled lackey.

      * If there's a bug that makes it to production, the time it would take to fix the bug using proper procedures may cost more than doing a quick-and-dirty fix now and cleaning up using proper procedures later.

      I've detected, fixed, tested, regression tested, packaged, had admin deploy to a test env, regression tested and had admin deploy to production a bugfix in a couple of hours before now. (The bug was caused by legacy data quality issues.)

      The situation I'm talking about here is one where downtime = significant amounts of cash out the door. If you're system normally takes $20,000 worth of orders an hour, and if it can't take orders your customers will go to a competitor, those 2 hours it took to test and deploy a bugfix cost your company $40,000. Better here from a business standpoint is to put in the q&d fix right now (with, say, an 80% chance of working correctly and getting orders coming in again), then start the 2 hour process to put things through QA and the like.

      * Diagnosing production-only bugs, which frequently require read-only access. For instance, developers may need read-only access to determine that their software didn't deploy correctly.

      Sit with the admin. Get the admin to do ls -lRF and email the output to you. Get the admin to send you the log files. Write a deployment validation script and use it in the automated deployment process.

      Which is more cost-effective: having 1 developer looking into a production-only problem, or having 1 developer and 1 admin looking into a production-only problem?

      Also, I don't know about you, but when I'm diagnosing a problem, it's not a matter of "check one log file and read the output." It's "start with a log file, see some suggestions of what might be going wrong, come up with non-destructive tests of that theory, rule out possibilities until I'm reasonably sure of an answer, then figure out what needs to happen to fix it". There may be multiples logs to correlate (e.g. an access log and multiple application logs) and which one you need isn't clear until you start diving in.

      As far as the deployment failure, the reason we'd be in a deployment failure situation in the first place is that the automated deployment process failed. There's nothing that proves that the automated deployment validation script can't also have the same problem that the automated deployment process had.

      * Helping admins properly configure their software.

      Absolutely sit with the admin.

      With read-only access, a developer can look at things at different times than admins, can look for different things from admins, and instruct admins on what their software needs to work properly. While in theory everything should work fine with good documentation, being able to actually look and verify things yourself helps immensely when things don't work fine.

      I'll agree with you on this much: Under no circumstances

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    43. Re:What a silly question. by xenobyte · · Score: 1

      Unfortunately the reality is that stuff is put into production that is created by sloppy development practices all the time. When it breaks (production is down) the system administrators have no chance to fix the application problems as they know nothing about it. No choice but to involve the developers as the alternative of restoring backups takes a lot longer and might not fix the problem (think a date-related bug for instance) - and the hosting game is all about uptime. That happens daily around here.

      --
      "For every complex problem, there is a solution that is simple, neat, and wrong." -- H.L. Mencken (1880-1956) --
    44. Re:What a silly question. by terryducks · · Score: 1

      and a scratch monkey is mounted.

  6. Backdoors by Anonymous Coward · · Score: 0

    If you deny developers access to production servers, then don't be surprised if your web sites end up with some backdoors. Not saying it is right or wrong, but you're pissing in the wind if you think you can cut off the developers.

    1. Re:Backdoors by Score+Whore · · Score: 1

      One would hope that developers have a greater level of professionalism than that. However if it turns out that they aren't mature and professional then they shouldn't be surprised when they end up losing their jobs and facing criminal charges.

    2. Re:Backdoors by roblarky · · Score: 1

      Yep. I did this for a few of my applications. When the business would call and had a major problem that needed to be resolved immediately, I would use it instead of the 1+ hour of time and 5 additional people involved.

      Was it "right"? No, but when the Production support/engineers are worthless, what is one supposed to do?

    3. Re:Backdoors by alanebro · · Score: 2, Insightful

      I don't think he meant malicious backdoors. I read that as backdoors to allow debugging/etc.

    4. Re:Backdoors by roblarky · · Score: 1

      I completely agree with this, but I also have an undying commitment to my customers and when it's my name on the application and as the primary POC, you better believe I'm going to do everything I can to support my end users in any way I can.

      Yes, I could've lost my job or got in trouble..in the end, I would never condone it or defend it as reasonable, but I just couldn't stand to be shackled and ultimately cost the business more money by having an entire department sitting around with their thumbs you know where because of a stupid process.

    5. Re:Backdoors by iPhr0stByt3 · · Score: 1

      That may very well be a true for a small shop, but in a small shop you may not actually have dedicated systems for a complete Dev cycle anyway (Dev, Q/A, Prod) and if you do, it may be acceptable to let the devs have access to production systems (they may even be the only people capable of maintaining them anyway). In a large environment review processes should prohibit backdoors - if not, then you need to fix the review process. But somewhere in-between are those businesses where it can be difficult to balance system integrity and security with development access.

    6. Re:Backdoors by Anonymous Coward · · Score: 0

      MS windows is a large dev project, yes? It's rife with backdoors.

    7. Re:Backdoors by rtfa-troll · · Score: 1
      er.. design your application so it gives debugging feedback you can use? Put in assert statements so that you spot when something is wrong? Make the debugging facilities and instructions for using them so that the support people can give you useful bug reports?

      Sorry, was it a trick question?

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
    8. Re:Backdoors by hal2814 · · Score: 1

      Mister Potato Head! Mister Potato Head! Back doors are not secrets!

    9. Re:Backdoors by thewils · · Score: 1

      It wasn't strictly a 'backdoor' but a few years ago when our ADABAS DBAs decided to lock the developers out of the production db I wrote a suite of direct-calls ADABAS/Natural programs so I could diagnose what was going on in the live db (in ADABAS the database to use is just another parameter, you see). It worked so well that people were coming to me for information instead of using the applications designed for the purpose, and I ended up rewriting my tools in regular Natural for the users.

      --
      Once I was a four stone apology. Now I am two separate gorillas.
    10. Re:Backdoors by Locke2005 · · Score: 1

      ...when the Production support/engineers are worthless, what is one supposed to do? Send out resumes?

      --
      I've abandoned my search for truth; now I'm just looking for some useful delusions.
    11. Re:Backdoors by roblarky · · Score: 1

      Suffice it to say, I did leave the company because I couldn't take it. The company itself was phenomenal, but they hired and promoted from within the retail side of the business..so we wound up with a lot of people who really had no place in IT, but due to their tenure weren't going to be leaving the position for who knows how long.

    12. Re:Backdoors by bzipitidoo · · Score: 1

      Having worked in a small shop where the devs had access to production, I can tell you it is not a good idea. Just in case you had doubts. A few are responsible, and do know better than to screw around with the production system. But many just don't understand.

      We'd install the latest version, and test it and find minor problems which they'd try to fix on the spot, by editing the source code right there on the production servers! Even when it works, which isn't nearly often enough, that's not a good process. If there's some problem, the live site stays down while they figure it out. Sometimes they'd have to give up and revert to the old version, which had to be rebuilt from source (took about 20 minutes) as the update process they were using threw all the old stuff away. If that sounds insane, there was a reason for that. It was an attempt to make the devs keep their code clean. Had too many cases where the only reason a new version worked was because it was installed over an old version that had maintained various files, states, caches and what have you, and which would crash in their absence, i.e., on a fresh install. Still, it was so easy to force a fresh start while keeping the old stuff, just in case, that trashing it never did make good sense. After all that fun, they'd try to copy their fixes back to their development environments, and that never went smoothly either.

      This also meant we had to have the build environment on the production servers, so they could compile the code there. Adds more complexity, and makes updating take even longer as the production servers are given the additional burden of compiling everything. Was quite usual to have downtimes of 30 minutes when everything went smoothly. When they didn't, well... an hour or more was common. One thing I was tasked with was setting up a suitable message to be served to web site viewers, complete with estimates on when we'd be back up. The developers demanded some handy way (through a web interface of course) to set the estimated time. What a waste of effort that was. I set things up so that updates could be done nearly instantaneously, with code already compiled elsewhere. Don't need estimates when it's always under 1 second, right? All the production servers had to do was install which I set up so it happened while continuing to operate on the old version, and then flip a switch to change to the new version. No more lengthy builds on the production machines. And definitely no more hacking on the source on the production boxes! If there was a problem, the switch could be as quickly unflipped. If there was a big problem, say something that corrupted the databases, they could be rolled back or restored, which took a bit longer but nowhere near 20 minutes. The switch would have been truly instantaneous except for some very hastily and poorly designed daemons the devs never found time to replace or redo so they'd restart quickly. As it was, only that part of the switch was not instantaneous.

      By all means, let them look at logs and such. Here, remote logging can be a help. But when they try to treat production like another sandbox, draw the line. If a problem can't be reproduced in a test environment, the first thing to do is NOT to go running to the production environment to poke around, it's to figure out why the test environment isn't reproducing a problem and fixing that. One other difficulty to note: sometimes debugging messages were spammed to syslog, or other files. Have to be careful about that sort of thing, or the production servers could very quickly run out of hard drive space trying to hold millions of debugging messages. Logrotate can be overwhelmed. If hundreds of debug "tweets" are being generated every second, can take only a week to run even the largest hard drives out of space. Even without that, the software was a timebomb. It had enough leaks it would crash and burn in about 2 months if not restarted, and only the weekly updates masked this. Fixing such problems was, understandably, a low priority.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    13. Re:Backdoors by Anonymous Coward · · Score: 0

      What planet do you live on?

      I personally know and work with a few very capable admins that made the jump to being very capable software developers and architects.

      I still won't give them root on any of the production hosts, and because they have been really good at both sides of this particular fence, they don't want or need it.

      To wit, if your developers truly have that 'greater level of professionalism' they would recognize that developing on production is always a bad idea.

    14. Re:Backdoors by Anonymous Coward · · Score: 0

      I'm cool with developers having access to production, as long as I'm permitted to carry my shotgun to work.

    15. Re:Backdoors by meadowsp · · Score: 1

      I'd fire you for introducing security holes and bypassing all procedures.

  7. no. by pdp1144 · · Score: 2, Insightful

    It is my experience that giving development access to production gives you a production environment that looks like it has been vandalized. Although meaning well and trying to make the best application as possible; they need their own development lab, and their own staging / production lab.

    1. Re:no. by GravityStar · · Score: 1

      No access to production? +20% on my estimate.

  8. Uhm... by drolli · · Score: 1

    No.

    If needed there should be a mechanism to automate bug reports in a meaningful way, as most professional software has.

  9. Not just no.... by Anonymous Coward · · Score: 0

    hell no.

  10. Read-only, if that, and nothing more. by Junior+J.+Junior+III · · Score: 4, Informative

    If you want to have control over your production code, you need to have assurance that it is not changing in an uncontrolled fashion. Allowing developers to have access to production locations makes it all too easy for this to happen. Read-only access allows developers to see the running code and perform file comparisons which can be useful in troubleshooting. They should never need more than this.

    And in some cases, even read access can be risky -- I've seen production web sites with resources linking back to development server URIs. It's a good idea to firewall your production servers in such a way that it is not possible for them to reach resources on development servers. This shouldn't prevent developers from being able to read the files on the production server, though.

    --
    You see? You see? Your stupid minds! Stupid! Stupid!
    1. Re:Read-only, if that, and nothing more. by SatanicPuppy · · Score: 4, Interesting

      See, to me this is more an issue of devs not obeying the rules. They damn well shouldn't be changing production code, and they damn well shouldn't be linking code from other servers.

      Either your devs are a bunch of barely trained lunatics, or they're breaking the rules in a vain attempt to get things done in a timely manner.

      Most times, when I see devs screwing with production it's either a "hero" coder who is way too good to use best practices, or a situation in which the environment is so hostile that the "best" solution seems to be breaking the rules.

      I once did some contract work for a company where the Q&A and testing process took a minimum of two weeks for the most trivial changes, and where the admins on the production servers refused to deploy things like security patches without a testing period that ran close to a month. The devs there had a hundred tricks for sneaking their code into production, and linking production code to the development servers in an attempt to meet their productivity goals.

      Fucking nightmare. Once we ironed out the Q&A thing, and split the admins into two groups (one who maintained, and the other who upgraded and approved changes) the whole process evened out and the devs stopped screwing around on production.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    2. Re:Read-only, if that, and nothing more. by hsmith · · Score: 1

      My favorite is, developer writes the install instructions.

      Works great in dev. test. uat. production staging.

      Doesn't work in production, because something is configured differently.

      Of course, it is the developers fault to not account for it!

    3. Re:Read-only, if that, and nothing more. by GigsVT · · Score: 1

      I once did some contract work for a company where the Q&A and testing process took a minimum of two weeks for the most trivial changes, and where the admins on the production servers refused to deploy things like security patches without a testing period that ran close to a month. The devs there had a hundred tricks for sneaking their code into production, and linking production code to the development servers in an attempt to meet their productivity goals.

      Fucking nightmare.

      Wow you worked for Linden Lab?

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    4. Re:Read-only, if that, and nothing more. by idontgno · · Score: 1

      Well, system architecture and tools selection should make it possible for the developer to write a single set of deployment artifacts and have it work on dev, test, and production. Done right, the prod environment shouldn't be the deep dark jungle. And in that case, a deployment failure could start out as the dev's fault. Hopefully, the prod system managers will do the investigation and track down the actual root cause of the problem. If it turns out to be something the dev did (hardcoded paths and URIs, for instance, instead of configs and environment variables), then yes, it's the dev's fault to not account for it.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    5. Re:Read-only, if that, and nothing more. by corbettw · · Score: 1

      Either your devs are a bunch of barely trained lunatics

      Is there any other kind?

      (Posting in rebuttal to http://it.slashdot.org/comments.pl?sid=1765854&cid=33370852)

      --
      God invented whiskey so the Irish would not rule the world.
    6. Re:Read-only, if that, and nothing more. by Fulcrum+of+Evil · · Score: 1

      And what actually happened was that the sysadmin ignored the deploy doc and did as he damn well pleased, then complained when it didn't work. Never mind that production doesn't match what the available docs claim.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    7. Re:Read-only, if that, and nothing more. by Anonymous Coward · · Score: 0

      See, to me this is more an issue of devs not obeying the rules. They damn well shouldn't be changing production code, and they damn well shouldn't be linking code from other servers.

      Either your devs are a bunch of barely trained lunatics, or they're breaking the rules in a vain attempt to get things done in a timely manner.

      Back in the real world, it's more likely the management doesn't want the overhead of full process management for applications, particularly shitty apps using browsers. Management also want to tweak things when devs are on holiday, that means making trivial adjustments on smartphones these days.

    8. Re:Read-only, if that, and nothing more. by syousef · · Score: 1

      And in some cases, even read access can be risky -- I've seen production web sites with resources linking back to development server URIs. It's a good idea to firewall your production servers in such a way that it is not possible for them to reach resources on development servers. This shouldn't prevent developers from being able to read the files on the production server, though.

      Development and production support are different roles even though it makes sense to have the developer perform both roles due to their unique understanding. I do both. If you want me to troubleshoot your system efficiently I had better have read access. I do not want write access. I've seen people make mistakes with write access that have almost cost them their job. In fact I've come to the conclusion that ideally your production and development systems should not just be firewalled but that they should be on completely different networks accessed via completely different machines. Then a developer can't easily mistake their production link for a dev link. You're either on a dev box or a prod box. Sharing data between the two should be done using physical media.

      --
      These posts express my own personal views, not those of my employer
    9. Re:Read-only, if that, and nothing more. by idontgno · · Score: 1

      Well, any system can be circumvented or generally defeated by an insider with (im)proper motivation. Or, to borrow an old phrase, "It's impossible to idiot-proof, because idiots are so ingenious."

      Heh, FWIW, I've been on both sides of that situation. Either can be wrong. And Murphy insists that at least one of them be wrong, at the worst possible opportunity.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    10. Re:Read-only, if that, and nothing more. by ADRA · · Score: 1

      But access to the development servers was why it was working perfectly fine before! You shut off production's access to dev and now the system's hosed! FIX IT!!!

      --
      Bye!
    11. Re:Read-only, if that, and nothing more. by Fulcrum+of+Evil · · Score: 1

      I'm just channeling my experience at $job-1

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    12. Re:Read-only, if that, and nothing more. by gullevek · · Score: 1

      More than once I had that. A hardcoded URL with the dev server domain name. Hard to catch if you just click-test.

      --
      "Freiheit ist immer auch die Freiheit des Andersdenkenden" - Rosa Luxemburg, 1871 - 1919
  11. Everyone agrees... by SatanicPuppy · · Score: 5, Insightful

    Everyone agrees that developers should never have access to production...Unless they're the developer, in which case it's different.

    Its a good practice to keep them separated, but in the end its just a pissing contest. The server admins don't want some filthy dev messing with their stuff, and I can appreciate that.

    However, admins often lack appreciation of some dev-specific issues, and their ignorance can lead to problems down the line.

    In the end, its the best practice to have everyone work together sensibly, than throw down inflexible rules that cause more trouble than they prevent.

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    1. Re:Everyone agrees... by Anonymous Coward · · Score: 1, Insightful

      Its a good practice to keep them separated, but in the end its just a pissing contest.

      No, it's not a pissing contest. It's a legitimate best practice.

      However, admins often lack appreciation of some dev-specific issues, and their ignorance can lead to problems down the line.

      I know a lot of sysadmins, and they are all developers of something as well. It has nothing to do with ignorance.

      Comments like these act like we're some caricature of a human being.

    2. Re:Everyone agrees... by SatanicPuppy · · Score: 2, Insightful

      I work both sides of the fence myself, so I have a better than average appreciation of the actual risks and the actual benefits.

      It's my experience that the Berlin wall-like separation that many companies enforce between dev and production causes it's own set of problems, and that, instead of treating everyone involved as if they are involved, they just impose even stricter separation, which causes other issues, and makes the whole process glacial and inefficient.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    3. Re:Everyone agrees... by Aceticon · · Score: 2, Insightful

      Everyone agrees that developers should never have access to production...Unless they're the developer, in which case it's different.

      Developers should not have access to Production and I say this as a developer.

      Having a way to check logs in Production, maybe read the databases yes, more than that, no.

      Two reasons, one "good" and one bad:
      - If people have access to Production willy-nilly, sooner or later they will break it. This can even be true for Support people only they're the ones getting calls at 5 AM to fix it, so they soon learn not to do it.
      - Forcing a proper release procedure avoids creating expectations on non-developers (read managers/clients) that minor changes are fast to do and put in prod. Nothing like a Release Procedure in place to instantly kill any expectations of the "you can do this change in 5 minutes" type and create some space for actually doing UAT testing of even those seemingly innocuous changes that sometimes end up poluting a database with garbage beyond the point of recoverability.

      I work in finance and I've seen more than once cases of seemingly innocuous fixes done in Prod that brought down the systems for several hours, pretty much paralising the business and costing millions in lost business. This more often happens is seemingly non-mission-critical systems (where Prod access is more likelly to be open) that turn out to be required for know critical systems to keep on working.

    4. Re:Everyone agrees... by Anonymous Coward · · Score: 0

      OK, I'm not logged in so you'll probably never see this, but....

      You said

      Unless they're the developer, in which case it's different.

      Well, I *AM* the developer, and while I would appreciate read-only access to production (I don't have that now), I sure as anything don't even want write-access to production.

      I've worked with read/write access to production before, and it's just too easy to make a mistake. You know, being human and all of that.

      But read access without having to go to I.T. and saying "please get me a copy of XYZ" would make troubleshooting a bit quicker.

    5. Re:Everyone agrees... by wytten · · Score: 1

      Agreed, and I think it depends on your environment and what type of staff you have and how qualified they are.
      For example, if a required service has moved to some other TCP port and production is down because of it, you can wait hours
      for a solution, or a well-qualified and trusted developer can edit the port setting in the deployed code and get everything
      back up in minutes.

    6. Re:Everyone agrees... by avandesande · · Score: 2, Insightful

      I don't think developers want access either- if something goes wrong, do you want to be responsible? I never want access to anything I don't need access to.

      --
      love is just extroverted narcissism
    7. Re:Everyone agrees... by SatanicPuppy · · Score: 1

      And I'm fine with that. And there are certainly admins I wouldn't trust with a pointy stick, more less production hardware.

      My real point is that the people who need access, and who ought to have access, tend to include some people who are more dev than admin, and it makes no sense to put down a rule when you should be using your judgement.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    8. Re:Everyone agrees... by Thuktun · · Score: 1

      I don't think developers want access either- if something goes wrong, do you want to be responsible?

      In my experience, it's often the developers held responsible rather the ones that install and maintain it, at least with non-shrinkwrap software. The administrators usually don't know how to diagnose and fix something outside the OS, filesystem, network, and maybe application server, so the developers are hauled in and told "OMG fix it fix it fix it fix it fix it". Over time this becomes practice rather than an exception.

      I'd much prefer to stay out of production, myself, but businesses generally hold results above ideals, and as the developer I'm generally better at "making it go" than the one in charge of keeping the system alive.

    9. Re:Everyone agrees... by mcrbids · · Score: 1

      Everyone agrees that developers should never have access to production...Unless they're the developer, in which case it's different.

      This is all 100% correct if you don't have a sane replication strategy. If your devs don't have access to copies of recent production data, they are hamstrung. If there isn't a well managed release process that allows for timely testing and release of needed updates, they are hamstrung. If your backup, rollout, and update processes aren't almost automatic, your organization is paying serious overhead and losing money every day.

      Devs should not be hamstrung. They should be free to to access the tools they need to get their job done, and hampering that in any way costs serious money. But they should basically *never* be touching production environments - instead the focus should be on replicating the problem trivially in a development environment so that devs are free to develop without risking crashing the production environment with a spurious die() statement!

      If any of these capabilities aren't present, and you have more than 1 developer, you are shooting yourself in the foot.

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    10. Re:Everyone agrees... by ADRA · · Score: 1

      I've generally seen the opposite in my years. Developers often overlook the environment in so many fundamental ways, that just being a developer of the product overlooks many of the fundamentals of the environment that applications are actually run in. Examples: Front-side caching / load balancers, nightly backups, peek/volatile latency, limited bandwidth, resource sharing with other apps, intermittent peripheral service downtime.. All these things and a hell of a lot more are rarely in the minds of devs that just want to write code.There are usually senior dev's that have been annoyed so often with bugs that they're well aware of production concerns who can help development catch possible problems before they're shipped.

      The problem I usually run into with Operations people is that once they've decided that the problem isn't theirs they tend to take the issue hands-off and just rely on development to find the solution to -their- problem (though dev's do this as well in reverse). Personally, I've rarely run into admins that wouldn't allow access to things needed to diagnose the bugs, but sometimes that falls into the subjective category where one dev may think X is reasonable where another would say 'security violation', etc..

      --
      Bye!
    11. Re:Everyone agrees... by hibiki_r · · Score: 1

      Can I get some of those sysadmins that can develop something? Mine couldn't write a 5 line perl script.

      It's an issue of competence: If the sysadmins are competent, actually know how to configure the system and have the time to set up the facilities to handle remote logging for application code, separating concerns is a great idea. But people are stuck in situations where admins sadly know less about system configuration than the developers, and are uninterested in learning more about it. If, in that situation, your developers are not horrible, you might be better off giving them access, and even letting them do admin work.

    12. Re:Everyone agrees... by Cederic · · Score: 1

      If your devs don't have access to copies of recent production data, they are hamstrung.

      Conversely if your devs do have access to copies of recent production data, you risk contravening the DPA, pissing off the FSA (or the Federal Reserve, if you're in the US), breaching PCI compliance rules or otherwise leaking sensitive data.

      There are reasons software engineering is a challenging discipline, and oddly 'programming' isn't one of them :)

    13. Re:Everyone agrees... by dbIII · · Score: 1

      It's the mindset. A developer typically gives no thought to consequences before putting something on both primary and backup domain controllers and then rebooting them at the same time during peak business hours, then not worrying at all when they don't come up. That's no insult, it's simply not their job to think of such consequences because others handle production.
      A developer that has been in non-development roles (or even previously worked as a process line worker) will think twice before hitting the switch that stops the work of hundreds.
      So the answer to do you let developers touch production is: "Fuck no! Unless it's *insert name here* who has a clue what he is doing".
      Sysadmins typically have a very low opinion of the developers we work with because we typically see incredibly stupid mistakes in stuff developers try to rush into production. We are the annoying old farts that will not let you put the company accounts system naked and passwordless onto the internet even if it's going to take a week for you to do some sort of protected system only accessable internally.

    14. Re:Everyone agrees... by dbIII · · Score: 1

      But people are stuck in situations where admins sadly know less about system configuration than the developers

      However the admin will never know more than the developers about some specific confiuration details that only affect whatever the developers are working on.

    15. Re:Everyone agrees... by mjwx · · Score: 1

      Everyone agrees that developers should never have access to production...Unless they're the developer, in which case it's different.

      I cant agree with that.

      I have three levels, Dev, Test and Prod. Do what you like in dev, prove it in dev and I'll let you into test. Test is identical to Prod and is used to determine if whatever you are doing is going to break anything. So if you can deploy it in test then you give it to me and I'll do it in Prod as it's my arse on the line there (your deployment in test should be properly documented, it should be mostly documented before you get to test). If the deployment needs some specific knowledge then show me, if that doesn't cut it we'll do the damn thing together (be prepared to stay back out of business hours). In no way will I let a dev (or marketing analyst or PHB for that matter) anywhere near prod without me.

      Its a good practice to keep them separated, but in the end its just a pissing contest.

      Whilst I admit the dedication of some (many) sysadmins to their servers borders on the pathological, they do it for good reasons. As XKCD put it, they are the only thing stands between the forces of darkness and you cats blog. Often it's one crazy sysadmin that keeps an entire company running (OK, this is bad you need at least two crazy sysadmins, for redundancy).

      In the end, its the best practice to have everyone work together sensibly

      I can agree here, but the separation of prod and developer, whilst onerous is vital.

      --
      Calling someone a "hater" only means you can not rationally rebut their argument.
    16. Re:Everyone agrees... by MojoRilla · · Score: 1

      Everyone does not agree. I work on websites, and developers are the only ones that really understand the code. Having them shut out of the production boxes means they can't look at the logs, run top, look at configuration, and help diagnose the problems.

      In some industries, it makes sense to have developers not access production systems. For us it does. Blanket statements are stupid.

    17. Re:Everyone agrees... by SatanicPuppy · · Score: 1

      We're effectively agreeing: my point is that the people who understand the work should be the ones doing it, regardless of which "team" they happen to be on.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    18. Re:Everyone agrees... by ukyoCE · · Score: 1

      Everyone agrees that developers should never have access to production...Unless they're the developer, in which case it's different.

      More like "unless they're the ones being held over the fire". It doesn't matter how many rules are in place, when someone's add is on the line, sometimes to as little an extent as "I might have to work late", those rules will get broken.

      I was recently given read access to a production DB because the DBA had his own work to get done and didn't feel like being my query bitch all day.

      I got access to the java container server's admin because there IS no server admin for that project, and the higher-up devs who double as admins didnt feel like being available to restart the node.

      If it were up to me, I'd always have a QA process between my bug fixes and production. But once again, someone else's code broke earlier this week, and they were off-site in meetings. The boss' boss wanted the thing fixed yesterday. Instead of taking the flak for being another day late, the manager asked me to fix the code, test it myself, and deploy it to production. No QA or server admins anywhere in there.

      But then again, practically speaking, the fix was out in 1-2 hours instead of 1-2 days, it worked fine, and even in the worst case it's a robust AND non-critical process that could have been reverted to a backup if I had somehow totally screwed prod. Sometimes the risks just aren't that high compared to the risk of NOT fixing the code right away.

    19. Re:Everyone agrees... by GravityStar · · Score: 1

      I *like* not having write access to production. Problem with the server? Can't help you guv, here's the admin's phone number.

      I like having read access to production.
      Problem with the application? Look at logs. Oi, there's apparently a funky problem where the Database version on PRD is 9.077.0554 which doesn't happen on QUAL where the Database version is 9.065.0479. Maybe we should upgrade DEV, INT and QUAL and then we can debug the problem? Oh yeah, here's the admin's phone number.

  12. No, if you can afford for them not to by dmomo · · Score: 2, Insightful

    So, yes.

  13. Uhm, no. by HerculesMO · · Score: 4, Insightful

    This is why there is a change control process, and a testing environment.

    If you're doing it wrong, you're asking for trouble.

    --
    The price is always right if someone else is paying.
    1. Re:Uhm, no. by John+Hasler · · Score: 1

      > This is why there is a change control process...

      There is? Where? Many sites exhibit evidence of change and others of control but I don't recall seeing evidence of both on the same site.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    2. Re:Uhm, no. by Anonymous Coward · · Score: 2, Insightful

      The issue I have with this attitude is that the testing environments are never identical copies of production environments. You can have exactly the same hardware / software, but the instant the network topology differs, you no longer have identical environments. I've seen far too many config / routing / firewall / Akamai / replication issues that were initially flagged as software bugs, but were in actually environment bugs. The problem is that the SAs typically do not have the internal knowledge of the apps required to diagnose those kinds of configuration problems. I'm not arguing that devs should have unfettered r/w access, but a controlled measure of r/w access on at least one server in prod makes complete sense for senior devs.

    3. Re:Uhm, no. by sitkill · · Score: 1

      Depends on what type of access they want.
      To change code? Hell no
      To get access to production logs? Yes
      To get database-read only access? Maybe

      With our company, we use to have full control, but with compliance issues, that changed in a hurry. The only time this ever became a problem is because our product integrates with a moderate (10+) 3rd party integrations. Most of these integrations have garbage UAT environments that never behave as the production environments, and what that means is when something goes wrong, the only recourse you have is to look at production to see what went wrong.

    4. Re:Uhm, no. by camg188 · · Score: 1

      "compliance issues"
      HIPAA regulations can be a real roadblock to a developers or testers. Time is never allocated to properly scrub and copy production data to test environments. Plus, I've never seen a test environment that could functionally match a production environment. Licensing issues force some 3rd party modules to be limited in how many environments they can be installed. But you got to do the best with what you got. That's why you get paid the big bucks, right? ...yeah, right

    5. Re:Uhm, no. by Just+Some+Guy · · Score: 1

      This is why there is a change control process, and a testing environment.

      Which does nothing to help with production problems that never came up in testing because it never occurred to anyone to test for them yet. In practice, that's just not always possible.

      My company has a very old, very complex legacy system that runs everything. We're actively developing its replacement, but the new version isn't live yet. I'm in charge of the external website that customers use to interact with that internal application, and sometimes I get urgent bugs like "customer can't see any of their invoices and we're losing a few thousand dollars a minute, please fix ASAP." Most of the time, the fix is as easy as adding a new condition to some report or another, and our standard practice is to make the fix, then immediately document and commit it back to version control so that it's now part of the main codebase.

      No, it's not "pure". Yes, it gets our system back up and working so that it can resume making money for us. The replacement system is on track to clean up the process a lot, but right now, today, we just don't have the luxury of sending all changes through formal code review, testing, and staging.

      I bet you'd find a majority of shops have at least a couple of legacy systems that are handled this way until they can be phased out. Everyone knows that's not the "right" way to do things, but if it makes the customers (and the boss and my paycheck) happy, then it's hard to say that it's completely wrong.

      --
      Dewey, what part of this looks like authorities should be involved?
    6. Re:Uhm, no. by HerculesMO · · Score: 1

      Sorry, but I don't buy it.

      Testing environments should mirror your production environments very closely. If you are developing a 'fix' for production, then you test out that fix in a hurry on your test system -- everything looks good, submit your emergency change, document it all, and put it in.

      Otherwise you risk the idea of breaking MULTIPLE systems more, by doing this in production. Just because you have an extreme need doesn't mean that a DEVELOPER should touch a PRODUCTION system. If it's a critical work stoppage, then you work with your production team to implement the change -- quickly.

      Again, if your testing system is the same as production (as it should be), then you can test your fix in your test environment, and immediately port it over to production. You don't need your fingers to control it, and the amount of time difference there is would be negligible. But one fatfinger from a developer without at least running the query, and instead of SELECT you do a "DROP", and boom -- all your production data is in the shitter.

      Sorry, your idea isn't valid, even in emergency situations. That's why they make such a thing as "after the fact" change controls. Do the work, implement it, and fill out the change control later. But you still do the work on a test system first. It's not about elegant or "right", it's just smart.

      --
      The price is always right if someone else is paying.
  14. No correct answer by Motard · · Score: 3, Insightful

    There's no correct answer to this question. It depends on the size of the organization and the nature of the system. I've worked in different companies that have been on either sides of where I thought the line should be. The line is drawn in a very different place for a 20 employee company than where it is in a 20,000 employee company.

    1. Re:No correct answer by RyuuzakiTetsuya · · Score: 2, Interesting

      Bingo, and I don't think the line is drawn at the size of the company but how mission critical the application is. Granted, in a 20 person firm versus a 20,000 person firm, the developer's probably also the administrator. But OTOH, if your business is 20 people big and one of them is a developer, it's easy to assume it's probably IT based and as such, some sort of administrative control is probably a good idea in general. Think about it. Well, sure, 20 people but how many machines? Half rack? rack? 5 racks? A whole datacenter?

      --
      Non impediti ratione cogitationus.
    2. Re:No correct answer by hedwards · · Score: 1

      More than that it also depends upon how it's dealt with. It's a completely different situation if you've got proper auditing, revision tracking and revision control to if you're allowing the files to just be copied without such measures being in place. Not to mention how the accountability when a mistake is made gets handled and how clear the delegation of authority is.

    3. Re:No correct answer by CBravo · · Score: 1

      I think the answer lies in the amount of risk that you are willing to take when you don't follow procedure (e.g. a test cycle) compared to the risk you take when you do follow one.

      At the moment I work at a small company: there is no test team and there is no team that formally accepts responsability.

      --
      nosig today
  15. Jesus no by BigJClark · · Score: 2, Informative


    The day developers can write code that compiles the first time, then yes, otherwise, jesus, no.

    I work as an Oracle DBA for a mid-size company, and I provide a day-old cleaned copy of production in a different environment/box, and it does the trick.

    --

    Hi, I Boris. Hear fix bear, yes?
    1. Re:Jesus no by herring0 · · Score: 1

      We use DataGaurd and part of the process for opening the standby for use sanitizes any sensitive data and resets all the passwords to the development passwords. This has been an excellent resource since devs can see exactly what is on production at any point in time.

      Then you just close it up and it reapplies all shipped logs for DR and you're good to go.

      Love it.

    2. Re:Jesus no by unformed · · Score: 1, Troll

      Yep because code that compiles is guaranteed to work properly.

      Stick to what you know best, the database. Let us do what we do.

    3. Re:Jesus no by rednip · · Score: 1

      The day developers can write code that compiles the first time, then yes...

      I use an IDE (Eclipse), and the builds I do always compile, so, like, thanks for the access! What I think you mean is that the day when developers can guarantee the expected results...

      Personally, I like the QA process, as it gives me 'cover' if something expected happens.

      --
      The force that blew the Big Bang continues to accelerate.
    4. Re:Jesus no by klui · · Score: 1

      Getting stuff to compile first time is easy. Getting it to work properly the first time, that's something else.

    5. Re:Jesus no by EricWright · · Score: 1

      As a developer, I agree 100% with this. However, my company doesn't provide a day-old cleaned copy of production, so I still need read-access to debug what piece of data is causing catastrophic failure in the customer billing process.

      When I have all the tools I need to do my job, then no, I don't need any access to production.
      When I don't have all the tools I need to do my job, I need to have the ability to look at production.
      I should never be given the ability to touch production.

    6. Re:Jesus no by Anonymous Coward · · Score: 0

      Personally, I like the QA process, as it gives me 'cover' if something expected happens.

      That makes you a sociopath too.

    7. Re:Jesus no by Aceticon · · Score: 1

      It's worse than that:
      - Most large systems are not designed by people that know how to design large systems

      Essentially most large systems where grown organically and are not properly modularized with clean well defined compartments and interfaces.

      This results in crazy dependencies across seemingly unrelated parts of the system (as in Part A treats a certain kind of data in a certain way because it "Always come from part B like that", while Part B just passes the data over from Part C, so A depends on C but it's not visible).

      The end result of this is that sometimes even miniscule changes in configuration (say, enable empty values in a certain field in a GUI) can result in massive errors downstream where you least expected them.

      In such systems, pretty much any change is a risk, be it code, configuration in files, configuration in database or even having a new guy in the department that enters a certain kind of data.

    8. Re:Jesus no by Abcd1234 · · Score: 1

      I'm *fairly* sure he was exaggerating, and just using "code compiles the first time" as an example of how developers are, at best, imperfect, and that until they are perfect, he wouldn't let them touch production (which, speaking as a developer, strikes me as a very good idea).

    9. Re:Jesus no by BigJClark · · Score: 1


      I'm not sure I'm being trolled here, but compiled code is not garunteed to work properly, ever hear of a little thing called "logic error".

      --

      Hi, I Boris. Hear fix bear, yes?
    10. Re:Jesus no by russotto · · Score: 1

      The day developers can write code that compiles the first time, then yes, otherwise, jesus, no.

      I wrote code to solve a Project Euler problem which compiled, ran, and produced the right answer the first time. And another which required only one fix. Of course, there are hundreds of problems, and none of the others worked so nicely...

    11. Re:Jesus no by russotto · · Score: 1

      It's worse than that:
      - Most large systems are not designed by people that know how to design large systems

      Furthermore
      - For complexity C > Cmin, there is a size S such that for all systems larger than S with complexity C, no one knows how to design such a system.
      - For any given C > Cmin, S always is smaller than you think.
      - Cmin is smaller than you think.
      - For every system, C is higher than you think.

    12. Re:Jesus no by Anonymous Coward · · Score: 0

      I work as an Oracle DBA

      a.k.a. tool of satan

    13. Re:Jesus no by Mongoose+Disciple · · Score: 1

      I use an IDE (Eclipse), and the builds I do always compile, so, like, thanks for the access! What I think you mean is that the day when developers can guarantee the expected results...

      He really might not. I've certainly worked in Java shops using Eclipse where developers routinely broke builds. Usually it's the case that the code builds on their machine, but they either neglect to check in a file that would be necessary for their new code to build, or they neglect to rebuild against the latest source in source control before checking in.

      Sometimes, of course, people just plain check in code that even on a single file level simply does not compile.

    14. Re:Jesus no by Monkeedude1212 · · Score: 1

      Stick to what you know best, the database. Let us do what we do.

      While he may not be versed enough in programming to provide sufficient descriptions on why developers shouldn't be touching production items, he didn't exactly step over his boundaries and tell you how to do your job. In fact, he accurately described how he should be doing his job to make your job easier.

      "Letting you do what you do" - you should never be touching production anyways, so you really need your DBA to be setting up a good test environment, ideally one that replicates the current production data, like he stated.

      Show your DBA's some love, they may not get why you want bad data in your database, but without them its a lot harder to do your job. Everyone in IT should work as a cohesive unit.

    15. Re:Jesus no by Anonymous Coward · · Score: 0

      So you're saying him providing a day or so old copy of the production environment for testing is completely unacceptable and you should be able to make untested changes to a production environment? You sir are either insane or wanting to quibble over something that is beside the point.

      I keep stuff from breaking. Its not m

    16. Re:Jesus no by bloobamator · · Score: 1

      How do you restart DG after opening the standby read/write and updating its data? The SCN's will no longer match.

      --
      "Crude and slow, clansman. Your attack was no better than that of a clumsy child."
    17. Re:Jesus no by rjstanford · · Score: 1

      Exactly. And if developers (and I'm speaking as one in this case) can't be counted on to produce code that complies 100% of the time, which we'd all agree is a realistic statement, why assume that the developers will produce code that works perfectly, which is a lot harder?

      --
      You're special forces then? That's great! I just love your olympics!
    18. Re:Jesus no by herring0 · · Score: 1

      Use the dgmgrl to convert the standby database to 'Snapshot Standby'. Once it is in that mode you can make any changes you want to the system and then convert the standby back to 'Physical Standby'.

      During the conversion back to Physical Standby it brings the database back to the point in time that it was converted to snapshot and applies all the logs that have shipped while in snapshot mode. Just make absolutely sure that you've got enugh space in the FRA to hold the initial snapshot and any changes before the database is reverted.

      All the while the DG brokers are still running and you never 'stop' DG, just change the standby to something more usable for those instances where devs need current production data.

    19. Re:Jesus no by kenrblan · · Score: 1

      Code that does not compile properly is guaranteed to not work properly. So I think he is stating that if the developers can't get the code to the bare minimum of successful compilation on the first try, they shouldn't be making those attempts against production. Logic errors and poor performance are still possibilties in the code that actually does compile, and that shouldn't go straight to production either.

      --
      Make everything as simple as possible, but not simpler. - Albert Einstein
    20. Re:Jesus no by rednip · · Score: 1

      I've certainly worked in Java shops using Eclipse where developers routinely broke builds.

      Really? Sounds like a carpenter blaming his tools. Where I could build with Eclipse, I've never seen such problems. However, you can set up projects to be Unix only, and that's the reality I work with right now. No problem, I've been working with Linux and Solaris since '97. Still, I use eclipse to write, just as it's a whole lot easier.

      Frankly I'm always amazed at the general negativity of some people, wildly slinging out mud, typically at things of which they have little understanding. I like to say that the less that one understands about a critical job related function, the more stress and fear that's created/endured by them.

      --
      The force that blew the Big Bang continues to accelerate.
    21. Re:Jesus no by Mongoose+Disciple · · Score: 1

      Really? Sounds like a carpenter blaming his tools

      Nope. I'm just saying that even with good tools, you can still do stupid things. In your post you seemed to be saying that the tools were so could you couldn't do stupid things.

  16. Hmm by mark72005 · · Score: 2, Insightful

    I think it's helpful in analyzing real-world data and getting an idea about real system loads, testing issues to see if they are in the wild today, etc. For a good developer, it makes life much easier.

    In a very healthy development ecosystem all this data is replicated and there is never any need for a developer to touch prod. In the development ecosystems that exist in the real world though, most are very unhealthy, frustrated by ham-fisted security, process flaws, red-tape, inconsistency, and incompetence ranging from scattered to mostly cloudy.

    The answer is, do you have the class of developer that knows what not to do and desires to play nice, or do you have the usual.

    1. Re:Hmm by TheDarkMaster · · Score: 1

      I agree. I are a developer from a reasonable big system. In this system, unfortunately is common the user make mistakes completely unexpected that should be fixed as soon as possible, which are trivial to fix with the integrated data editing interface in the system (access to system admin only, of course). If I don't have this mechanism, I would have to wait for the good will of the DBA and hope that he did not do anything stupid to run any SQL script to fix.

      In conclusion, when you know what you're doing is often useful to have access to production.

      --
      Religion: The greatest weapon of mass destruction of all time
  17. Developers need access to production DATA only by mikein08 · · Score: 2, Insightful

    As a developer I can tell you that it's impossible to test programs properly and thoroughly without access to production data. However, developers should NOT be granted access to production logins/sites - production data should be copied into development work areas so that developers have an appropriate "sandbox" in which to work/test.

    1. Re:Developers need access to production DATA only by Anonymous Coward · · Score: 0

      Exactly. We snapshot production's database every 2 hours and post the dumps on a local intranet page that our developers can download and restore to their local system. We utilize Hudson to automatically build packages that have all of their dependencies listed so you can aptitude install the frontend app on any new system and have everything pulled in and configured. Logging is all done to syslog which is fed back into a tool that the developers can track down issues with individual users by looking up their session ID and pulling the history for that specific user interaction.

      That's for an app that's getting pounded by 10k users. You obviously have problems as the data set gets bigger or the load goes up, but you can always scale things back as you get larger and have more staff to implement a proper Dev->QA->Staging->Production cycle.

    2. Re:Developers need access to production DATA only by DragonWriter · · Score: 1

      As a developer I can tell you that it's impossible to test programs properly and thoroughly without access to production data. However, developers should NOT be granted access to production logins/sites - production data should be copied into development work areas so that developers have an appropriate "sandbox" in which to work/test.

      And, even then, perhaps only on an as-needed basis. If your production support people can do a reduced test case replicating the problem without production data, you don't need prod data in that case. If your production data includes sensitive data, minimizing exposure of it to the minimum necessary is desirable (and, in certain cases -- HIPAA comes to mind -- legally mandatory, as well.)

      Of course, in addition to what kind of data you are handling, the scale of the operation matters. If you are small enough, "dev" and "production support" may be two hats worn by the same person.

    3. Re:Developers need access to production DATA only by alcourt · · Score: 1

      I hope you never have to work with credit card processing applications then.

      PCI DSS 6.3.4 prohibits using actual production data (live PANs) for testing or development.

      --
      "I may disagree with what you say, but I will defend unto the death your right to say it." -- Voltaire
    4. Re:Developers need access to production DATA only by rjstanford · · Score: 1

      Although these days you can work around that by having your gateway hold it as a CardOnFile - assuming that you're not implementing at a gateway level, that is. Makes life a lot easier :)

      --
      You're special forces then? That's great! I just love your olympics!
    5. Re:Developers need access to production DATA only by mikein08 · · Score: 1

      Well, actually, I worked for two health care companies, and ran into that problem. It makes reasonable testing nearly impossible, as you simply cannot dummy up data that contains the range of possibilities extant in live data. But so what; that's what management wants, so that's what they get. And management knows best - right?

  18. And the concensus is ... NO by mr_stinky_britches · · Score: 2, Interesting

    And the concensus is ... NO

    Who let this question through? It doesn't even seem controversial. I am not aware of any good reason to routinely give developers access to production.

    --
    Censorship is obscene. Patriotism is bigotry. Faith is a vice. Slashdot 2.0 sucks.
    1. Re:And the concensus is ... NO by I_Wrote_This · · Score: 0

      Well, I'd argue that the Developer should be the person who supports production *as well*.

      • No hand-over procedures
      • An incentive to get it right, and produce a self-maintaining system since you are responsible for the live version and really want it to look after itself so you can get on with *new* things.

      But this is a view not approved of by people who reckon that documenting a procedure is the best way to make it work and who seem to be happy for the internalized knowledge gained during development to never reach the production environment. The result is lots of procedure and less actual results.

    2. Re:And the concensus is ... NO by mr_stinky_britches · · Score: 1

      Your insight is worthwhile, thanks :)

      --
      Censorship is obscene. Patriotism is bigotry. Faith is a vice. Slashdot 2.0 sucks.
  19. The argument made is a sound one. by jd · · Score: 1

    I dislike blog postings on Slashdot as a rule - they can get a Slashbox like everybody else - but the arguments made in the article are well-reasoned if somewhat short on detail. How do developers troubleshoot in a production environment? The article acknowledges that troubleshooting in production is necessary and mentions the installing of software, but installing software alone changes the environment (generally a bit of a no-no for debugging, due to Heisenbugs) and debugger hooks can pose a potential security threat (a big no-no for sysadmins). Further, there was no discussion as to whether developers should be the ones troubleshooting - first rule of testing is that you should never rely on programmers to test their own code. They're way too close to it. Either have testers or have programmers test other programmers' code. It is the only way to ensure that there's proper coverage of sufficient corner-cases.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:The argument made is a sound one. by jDeepbeep · · Score: 1

      For one thing, i want SELECT privs on any databases my app is leveraging, if you want me to troubleshoot, and a way to read the app-specific error logs.

      --
      Reply to That ||
    2. Re:The argument made is a sound one. by ADRA · · Score: 1

      True, if you need to install a debugger in production, I think you've already lost any benefit you had in being able to reproduce a problem. The only reason you're on production is because the bug can't be reproduced, so changing the parameters that case the issue only increases the chance that the bug will disappear before a developer has a chance to diagnose it.

      The tools for analysis should ALWAYS be installed, and the tools installed should be sensible and only grant as much information as needed to reasonably diagnose most problems while not affecting run-time performance/stability. Sometimes this is just impossible. Ideally, there should never be bugs that can't be fixed, but the amount of effort to diagnose can at times be so insurmountable that a workaround is preferred over the detection/fix. If you start to get many of these 'unfixable' problems, you should be thinking on how flimsy the code/environment are to begin with and consider how to increase the reliability of either/both of them.

      --
      Bye!
  20. No by SquirrelCrack · · Score: 1

    As a general case, I say that no, developers should not be given access to production. While giving us access to production might seriously speed up the resolution of an issue, in my experience, it always eventually introduces more problems than it fixes. It also tends to create an environment where testing is devalued because it creates the perception that any issues can be quickly resolved in production. This encourages management to compress timelines and causes the dev team to waste a lot of time fighting fires.

    The best environments I've worked in have a fully replicated "break fix" mirror of production that can be used to test and rapidly deploy emergency production fixes outside of a normal test cycle if absolutely necessary.

    1. Re:No by Myopic · · Score: 1

      You should consider putting an apostrophe before the s in "cares" in your sig; or maybe in "begs".

    2. Re:No by bloobamator · · Score: 1

      It's "For all INTENTS AND purposes".

      --
      "Crude and slow, clansman. Your attack was no better than that of a clumsy child."
    3. Re:No by Anonymous Coward · · Score: 0

      Separation of powers is important and so is specialization. However, when I hear that a certain sysadmin can't script (write code/develop) I cringe. Our best sysadmins are accomplished programmers. Same goes for testing. If they don't know how to write code or use an automated testing tool they tend to be ineffective. Administration, development and QA should be separate, but all 3 need basic programming skills to work effectively together.

    4. Re:No by istartedi · · Score: 1

      That's a good point. I'd say, "do your job, but don't be blind". So yes, your admins should be able to write Perl scripts... but you might not want to base your entire product on that. Your developers should write unit tests... but you want system tests done by testers, and perhaps even unit tests written by testers, which bolsters your point. As long as the testers are writing code for test purposes, it makes perfect sense.

      That said, I know cases where these rules have been violated and it's a winner. The first mover wins, or as Joel Spolsky said "shipping is a feature". If your admin had to write the product code because it's a startup and everybody wears multiple hats... so be it.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    5. Re:No by vux984 · · Score: 1

      People specialize for a reason. If you want half-assed administration, give root to a developer. If you want half-assed code, let admins write software. If you want half-assed testing, have admins and/or developers do it.

      Why exactly would a non-mission critical intranet app for doing X for department Y running on its own box (or at least VM) need to be managed the same way a mission critical app on a mission critical server?

    6. Re:No by soliptic · · Score: 1

      Whoosh.

      On topic, reading the comments here is funny. I muck about on production all the time. No other choice - there is no dev environment. No budget for one. After arguing the point for a couple of years they compromised and gave us a dev "server" on a virtual server with a load of other stuff. Yeah, turns out that didn't work so well. SQL Server virtualised = massive silent data corruption, apparently. So now I'm back to remote desktopping onto the live box and hoping I can fix things faster than the public are likely to notice them. I know it's so very, very wrong, but in a weird way I dread leaving this job and going somewhere where they do it properly, it'll feel so stuffy and constricting.

      (To forestall all the indignant outrage, no, I don't work on anything remotely relevant to public health or safety. No matter how much I screw up, nobody is going to lose their life, or even their money. If this weren't the case, I dare say that dev box would have a duly higher organisational budgetary priority.)

  21. Biggest issue for us... by i.r.id10t · · Score: 2, Insightful

    Biggest issue my cow-orkers and I have is that the sysadmin *claims* that the dev box and production box have the same packages, configuration, etc. but in reality, they don't. Most often we find out when we ask for production stuff to be copied over to the dev site to test errors, etc. and just loading it - which works on the live site - generates errors on the dev site.

    --
    Don't blame me, I voted for Kodos
    1. Re:Biggest issue for us... by PPH · · Score: 2, Interesting

      Good point. Lots of people are jumping in with remarks about developers tweaking production code. But there are other sorts of access. As a 'developer' I've had very good experiences with having shell access to production systems to read logs, inspect packages and even run little test suites to verify the configuration of the production system.

      For example, at one outfit, I was one of the few non administrative users with shell access to production servers. One day, everything came to a screeching halt. Nothing worked and the admin claimed no changes to the application. So I logged in and got a message to the effect that the /tmp directory was inaccessible. It turns out that IT management was under orders to clean, sweep and get rid of all unneeded 'junk'. So this manager asks his admin what each directory structure is for and is told that /tmp is where 'junk' is written. Orders went out that 'junk' was not to be kept on production servers and /tmp was to be deleted. Now, the admins knew better. But at this company, nobody bucks the chain of management. If the boss says, "Bolt the wings on this one backwards", you do it and move on. Being outside that chain of command, I was able to get things put back the way they were supposed to be. But having shell and read access to that system was what enabled me to see the problem (of course, being a *NIX geek gave me the experience to know what /tmp was).

      There's a large debate going on in many organizations on how much information to give each employee. DoD security requirements aside, giving everyone broad read access empowers employees to handle exceptions and solve problems without having to go up through the management chain. The down sides are: When it's easy to fix instances of problems, some people settle for that. Rather than searching for the root causes and making the necessary changes to eliminate them, the decision is often make to maintain the status quo. Because its so easy to fix things when they inevitably break. It creates the image of the hero or industrious worker when one can be seen to jump in and save the day. Repeatedly. I'm motivated by sloth. I like fixing things so they don't keep bothering me. The other down side is that undocumented work arounds make processes hard to reorganize and eventually outsource. If one needs to move their IT process offshore, for example, its much better to have everything compartmentalized and documented. This minimizes the amount of information the supplier will need in order to perform the job.

      --
      Have gnu, will travel.
    2. Re:Biggest issue for us... by corbettw · · Score: 1

      So the code that works in production (where the devs don't have access) doesn't work in dev (where they can do whatever they want), but somehow this is the SA's fault?

      --
      God invented whiskey so the Irish would not rule the world.
    3. Re:Biggest issue for us... by Abcd1234 · · Score: 1

      No, the *converse* is the problem. I release code that I've tested on a dev machine, and everything is copacetic. The code is deployed to live, then something breaks. That's a failure in managing the dev environment.

      IOW, until dev always perfectly mirrors live, every now and again, I'm gonna need access to live (at minimum, to diagnose bugs that only seem to happen on the live system).

      That said, as a developer, the idea of developers having routine access to live fills me with dread...

    4. Re:Biggest issue for us... by i.r.id10t · · Score: 1

      Yeah, it is. The SA is supposed to keep identical configurations, versions of software, etc. between 2 boxes. Us developers just write the code. Since we don't keep code on the dev box that isn't actively being worked on, we frequently will copy existing code that runs great on the production environment, only to find out that the dev box has a different config or something that causes the code to not run properly....

      Our dev cycle for a new app is dev environment, get it working properly, test it, copy it to production and call it done.

      When changes/updates need to happen, we will copy from the production environment back to dev, and start making changes - unless of course it doesn't work when it hits the dev box.

      Not an ideal situation, but with only 3 of us doing dev work and only occasionally at that (some php scripts like a calendar of events, form processing to mail or db, etc) it works for us... when our SA does his job and keeps the environments in sync.

      --
      Don't blame me, I voted for Kodos
    5. Re:Biggest issue for us... by bloobamator · · Score: 1

      You need to use package signatures to help you quickly compare environments. For example you can hash your jar files, and then simply compare the hash values to confirm or deny that your environments match. The db is a bit trickier, but it's also possible to compare databases.

      --
      "Crude and slow, clansman. Your attack was no better than that of a clumsy child."
    6. Re:Biggest issue for us... by corbettw · · Score: 1

      Since we don't keep code on the dev box that isn't actively being worked on, we frequently will copy existing code that runs great on the production environment

      Wait wait wait, back up. You're not checking the code out of source control into dev to do your work? You're just copying it from production? What the fuck kind of SDLC is that? What kind of monkey do you have doing change control and release management?

      It sounds like your entire SDLC process is broken. Any OS-level updates should be done in dev first, then test, then production/DR. Not only will this keep things humming along, but it allows you to test the code against any changes to make sure nothing breaks. From what you're saying, it sounds like the SA is just applying patches in production without having gone through the dev and test environments first. He's lucky nothing's broken in prod yet.

      I have to seriously wonder what kind of leadership you're stuck with that this kind of situation is allowed to fester. You have my condolences.

      --
      God invented whiskey so the Irish would not rule the world.
    7. Re:Biggest issue for us... by i.r.id10t · · Score: 1

      We aren't a dev shop, just a few websmiths that need some code for calendar, includes, etc. A form to email script, a form to database script, little things. Maybe 10% of our job is coding, the other 2 guys are web design guys, I work with faculty and using technology for education.

      Far from an ideal solution, but not too broken and it works for us... as long as the sysadmin keeps the dev and production synch'd.

      --
      Don't blame me, I voted for Kodos
  22. Production by CFBMoo1 · · Score: 1

    I use error handling to give me as complete a picture as possible of stuff on production. I don't want anymore access to production then I absolutely need.

    --
    ~~ Behold the flying cow with a rail gun! ~~
  23. Yes and no. by RyuuzakiTetsuya · · Score: 1

    Yes, certainly developers should have access to their production machines.

    No, they shouldn't be allowed to do anything they want with them.

    Troubleshooting application breakdowns are much easier for the developer to do. Thus, the access should be limited to logging data, etc. Unless the admin worked on the application itself, diagnosing those kinds of issues through someone else can be extremely difficult at best.

    --
    Non impediti ratione cogitationus.
  24. Depends on the size of your organization by jaymz2k4 · · Score: 3, Insightful

    If you are a small software shop then I can see reasons for allowing your small technical staff to have access to production. It's all well and good saying that only the admin of that server should have access and there's a full rollout procedure in place to be followed only on certain days, certain times; but even when I've seen that sort of structure in place there are times when it's useful for the developers to have access to production. Nothing is perfect and we'd all love to have multitude's of staging servers, replicating the typical load and uses of production but for a hell of a lot of (non critical I'd add) systems that just doesn't happen.

    There simply is no one rule fits all. Sometimes I wish we had extremely rigorous rules & regulations in place - I'd probably get to go home a hell of a lot earlier. I'm not suggesting you start chucking exceptions all over your checkout code on live but I think you should asses your own situation (and staff for that matter).

    --
    jaymz
    1. Re:Depends on the size of your organization by Anonymous Coward · · Score: 0

      If you are a small software shop then I can see reasons for allowing your small technical staff to have access to production. It's all well and good saying that only the admin of that server should have access and there's a full rollout procedure in place to be followed only on certain days, certain times; but even when I've seen that sort of structure in place there are times when it's useful for the developers to have access to production. Nothing is perfect and we'd all love to have multitude's of staging servers, replicating the typical load and uses of production but for a hell of a lot of (non critical I'd add) systems that just doesn't happen.

      There simply is no one rule fits all. Sometimes I wish we had extremely rigorous rules & regulations in place - I'd probably get to go home a hell of a lot earlier. I'm not suggesting you start chucking exceptions all over your checkout code on live but I think you should asses your own situation (and staff for that matter).

      This. Our organization has two developers. They are also the production admins, because nobody else has the skills. Naturally they have full access to production, and they try not to abuse it, because it's their ass if something goes wrong.

  25. Install Good Logging Practices by FatSean · · Score: 2, Informative

    With some fore-thought and some discipline an application can be developed with very robust logging techniques. It takes development time, but there is nothing cooler than asking the production guys to turn the logging detail up for a few packages and seeing tons of data in the logs. It's not perfect as you can't log every variable at every moment but it certainly does help.

    I understand some shops can't or won't modify the logging levels on production servers.

    --
    Blar.
    1. Re:Install Good Logging Practices by Abcd1234 · · Score: 1

      With some fore-thought and some discipline an application can be developed with very robust logging techniques.

      Yeah, no one has perfect foresight.

      There will *always*, without fail, be a condition in production where you wished you'd chosen to log operation X at debug level, but at the time either didn't think of it, or didn't think it'd be needed...

    2. Re:Install Good Logging Practices by GuidoJ · · Score: 2, Informative

      That's why you should always try to log all inputs and outputs (which includes configuration data, etc.) along with a timestamp. Afterward you can replay the situation in a test environment. If you properly set this up during development phase, this will already pay back during test phase. The developer can analyse the problem offline and proof that the fix actually solves the issue before it is shipped to production. It could even be part of an automatic testing environment.

    3. Re:Install Good Logging Practices by GryMor · · Score: 2, Insightful

      I don't know where you work, but when dealing with a few hundred or thousand tps per server, logging can account for a good chunk of latency.

      --
      Realities just a bunch of bits.
    4. Re:Install Good Logging Practices by FatSean · · Score: 1

      So?

      I already made your point for you...one can't foresee every possible issue. I have been doing this for years and I've never regretted the extra work. In fact, my development tool templates automatically insert entry/exit log statements to streamline the processes.

      There is very little downside if you are wise about checking log levels in your code.

      --
      Blar.
    5. Re:Install Good Logging Practices by FatSean · · Score: 1

      That's why you take advantage of modern logging subsystems that allow you to enable the higher level of detail for only the sections of the program you want.

      We often do this on only one server in the cluster if possible to reduce impact.

      --
      Blar.
  26. ... am I the only one? by merlinokos · · Score: 2, Interesting

    I work in an environment where the devs fix bugs before adding features, so the code is stable almost all the time. I have less than 1 callout a week that's caused by something a dev has done to the code.
    We hire the best devs, and work in an environment where fixing bugs is more important than adding features. The result is that our devs get full access to production, and even offer to provide support in order to ensure that they're the ones that are woken up if something they've broken falls over OOH.
    I've been at my current company long enough that I'd forgotten there were places where devs and ops didn't trust each other.

    1. Re:... am I the only one? by corbettw · · Score: 1

      We hire the best devs, and work in an environment where fixing bugs is more important than adding features.

      And I'll bet there are free hookers and black jack for everyone.

      --
      God invented whiskey so the Irish would not rule the world.
    2. Re:... am I the only one? by merlinokos · · Score: 1

      Do annual trips to Vegas count? Because we've got those.

    3. Re:... am I the only one? by david_thornley · · Score: 1

      I didn't know anybody who had died and gone to heaven still kept their slashdot account.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    4. Re:... am I the only one? by Xugumad · · Score: 1

      I was wondering this too. Maybe it's just because we're an internal development team, so it's easier for us to go "Look, we can implement shiny thing a, or we can fix bug x that you're complaining about, which do you want first?", but we keep the software continually either ready to go live, or near-ready to go live. Defensive coding is also a major priority for us (that was harder to find time for, though), and that means errors tend to be minor and caught quickly.

      Also, are there any other developer/sys-admin cross-overs out there? Never going to claim I'm the world' best sys-admin, but I run production for some systems (complete with split-personality on how quickly updates should go live), am I the only one?

    5. Re:... am I the only one? by ADRA · · Score: 1

      Does that same train of trust trickle down to new employees / Incompetent employees? Like it or not, not everyone is perfect, and people make mistakes. Having unlimited developer access to systems means that they can tamper with things and make them worse, blow up the databases, etc..by accident. Even admins aren't perfect. I blew away a (non-essential luckily) database once through en erroneous rm once. People are flawed. The issue usually comes down to the fact that IT people rarely decide to poke their noses into stable systems to make tweaks without good reason. Developers who are often a lot more attached to their works want to make things run well, perfect, etc.. and tweaks here and there introduce bugs that can cause real problems. Your developers may all be rocket scientists that don't make mistakes (wait they make mistakes too, so scratch that) but the rest of us err, and hence we're human.

      --
      Bye!
    6. Re:... am I the only one? by ADRA · · Score: 1

      I've worn both hats in being a full time admin and a full time developer. The roles are so totally different that its hard to find people even remotely capable of doing both tasks. I never did them at the same time, but its always possible as long as the scope of the responsibility is small enough to make it possible. That's not to say there won't be political / technical problems with your role, but its possible:

      Political: Assuming development and operations are run through different management branches, who are you responsible for resolving issues? When you have a show-stopper in production and the only solutions are 2 solid weeks of development effort or hours a week of extra maintenance, what happens?

      Technical: You've just quit the company and someone's taken your place as IT guy on the server. They've realized you're the worst IT guy on the planet and the server's almost always on fire; saved only by a bug in the service pack you never bothered to upgrade away form. The company all of a sudden has a huge problem that was completely blind-sighted to because the developer making the system was also maintaining it.
      Maybe you the developer knew about issues in the code and decided that the best solution was to code around the defect instead of considering upgrade / replacement solutions. Maybe a new coder comes in without your personal knowledge of the defect and the system breaks, etc..

      --
      Bye!
    7. Re:... am I the only one? by merlinokos · · Score: 1

      Nothing makes admins less likely to err than devs. What makes them special?
      Empowerment, education, and personal responsibility do most of the work. Hiring the best and making them better does the rest.

  27. Have, Yes. Need, No by xero314 · · Score: 1

    If you are running into any issue that requires the developers to have access to production then you have much bigger problems than access control. Developers should need access to development servers only (which really should just be there local box or a set up identical to the supported configuration if you need to test things like clustering or different platforms). Developers should not even require access to testing environments. If you have valid contracts and adequate testing then the only issues that should get to prod are environmental issue, things that can be handled by administrators.

    On the other hand, denying your developers access to anything, be it production servers, IM access, youtube, is just asking for them to circumvent the system. So your developers should never need access to production servers, but I wouldn't waste time trying to lock them out of it, or else they will work around those locks if it turns out that they do need it (because your process failed).

    1. Re:Have, Yes. Need, No by Dog-Cow · · Score: 1

      If you never run into issues that require the developers get some kind of access to production, you've never worked on a system more complicated than "Hello World".

    2. Re:Have, Yes. Need, No by xero314 · · Score: 1

      If you ever run into a situation that requires developers to have access to production you have clearly worked in a poorly managed environment.

      In the efficient places I have worked the Devs never needed access to production. Users would find bugs and submit them. Testing replicates the issue in a sterile testing environment. If the issue can not be replicated then it's an environmental issue and the admins need to fix it. If the issue is replicated then the developers can set up there dev environment to replicate it and resolve it.

  28. Horrible font by IICV · · Score: 1

    Is that font illegible to anyone else? I had to turn Readability on, it was so bad. Who the heck thought it was a good idea?

    1. Re:Horrible font by Anonymous Coward · · Score: 0

      The font your system should be used is Helvetica, this is a extremely common font. I suspect your problems are your own, it looks fine to me.

  29. Not unless you want magic fixes by Anonymous Coward · · Score: 0

    Sysadmin: It's working now; what did you change?
    Dev: nothing.
    Sysadmin: (sigh)

  30. Yes.... by tdyer · · Score: 1

    I am a developer. Our environment team is practically retarded. I have to go on-call during DR tests because it is too complicated to restore an image and double click an icon. God forbid they have to install a App Server, or configure 35+ JBoss instances (default is 1 instance per box) to start, tune for memory usage or performance or both, etc. Just last week they decided to upgrade the os to 2008R2. no need to test anything right? Sure all of the code is 32-bit but that wont have any implications will it? Trust me I would much rather not have access to prod, but as the saying goes "Better us drunk, than them sober"

  31. Read only by seniorcoder · · Score: 1

    Developers should have read-only access to production. In this way, they can investigate what is happening but should on no account have any ability to alter anything.

  32. As a developer: read-only access by Todd+Knarr · · Score: 2, Interesting

    Speaking as a developer, I want/need read-only access in production. All too often I need to dig out information while troubleshooting, and most commonly I don't know what all bits I'll need when I start. If it were easy to identify exactly what I'd need to find the problem, I usually already know what the problem is. The hard ones are the ones I can't replicate in development and I only have a starting point, something that won't identify the problem but might help me narrow down where to look next. In those cases the only place I can look is production (since I can't make it happen in a controlled development environment) and I can't give the admins a list of what I'll need (because I need to dig through logs and config files before I'll know what I need to look for next). And if we've gotten to this point, it's probably a priority problem impacting production so it needs to get fixed Right Bloody Now.

    OTOH, while I may need to look at production, I don't need and don't want the ability to modify production except by going through the admins. This, of course, also requires admins who can follow basic instructions like "Look at config file FOO. Find the line in section X that starts with Y. It's value should be XYZZY followed by the number 1. Change that 1 to a unique number for that machine/instance. Repeat this for every machine/instance.". But all too often the response is "That's too complicated. Can you just give us config files to install?". And of course when I ask for the current config files, so I can be sure I'm not overwriting any other modifications to them (which may have happened since the admins control them and do modify them), I get "We can't do that, they've got production passwords in them.". Now all I can do is throw up my hands and go "Whatever.".

    1. Re:As a developer: read-only access by tdyer · · Score: 1

      A-fucking-men. My favourite bug was a OS patch that had been applied to DEV, but not QA or PROD for time zone changes. For reasons only known to management, half our production QA and PROD environments are UNIX and half windows. DEV is all windows. We quickly figured out that nobody had been applying the patches to UNIX since management hadn't hired anybody who knew UNIX. Turns out it was a Windows patch that was missed. fucking sysadmins.

    2. Re:As a developer: read-only access by EricWright · · Score: 2, Funny

      You gotta know how to talk to admins. Tell them they also can be replaced by a very small shell script.

    3. Re:As a developer: read-only access by RyuuzakiTetsuya · · Score: 1

      Unfortunately, there's no bash command to make a tiny shell script grab the last Mountain Dew Code Red from the vending machine.

      I think ksh or csh supports this though.

      --
      Non impediti ratione cogitationus.
    4. Re:As a developer: read-only access by Anonymous Coward · · Score: 0

      You gotta know how to talk to devs. Tell them they also can be replaced by a readily available off the shelf product complete with support contract (ie - off the payroll fall-guy - damagement LOVES that).

      Devs are not special snowflakes either and are being outsourced/offshored/automated just as much as the admin roll.

    5. Re:As a developer: read-only access by Todd+Knarr · · Score: 1

      Devs are not special snowflakes either and are being outsourced/offshored/automated just as much as the admin roll.

      Yes, they are. I have to deal with the results every day. I dread having to deal with code from the outsourced dev team, because it always takes twice as long as it should to unravel all the unrelated problems in their code to uncover what's actually causing our issue. And we're not allowed to bill the time to their budget.

  33. Have it. Love it. by BillCable · · Score: 1

    I develop mostly internal apps for a very large company, but even for the external ones I'm the one who moves files to production. It's not that way for every department, but for ours it works. Better than waiting half a month to get a type-o fixed.

  34. So, those in charge of production are superhumans? by bahface · · Score: 1

    It would be nice if I worked with support people who knew what they were doing. I don't have access to certain environments but if something goes wrong I'm supposed to fix it somehow. But then again, I work in a robot clone environment where software development is some sort of alien concept. I need a new job.

  35. Absolutely not by waddgodd · · Score: 1

    Under no circumstances are any units in a company to have even contact with each other, much less share work product. This leads to unacceptable things, like collaborations over lunch and generally helping each other out and making a more efficient company. If we have a more efficient company, that may mean we have to lay off even more employees, and this cannot happen in this economy because we'd then pass reporting requirements for layoffs and be subject to higher FICA taxes.

    --
    Just because you're paranoid doesn't mean they aren't out to get you
  36. No! No! A Thousand Times No! by OldeTimeGeek · · Score: 2, Insightful

    It's not necessarily a case of the admins versus the developers, its more of practicing good data governance.

    Our developers used to have direct access to all of the production databases. This was bad enough, but because of this the organization permitted them to directly "clean up" databases (meaning they wrote to tables directly), we had data that was being changed without the ability to really know who did it. The DBAs hated it and the developers were extremely uncomfortable doing it but it happened anyway. We eventually had a real process audit and the auditors had a field day.

    Needless to say we changed. I hope.

  37. Virtualization by Kjella · · Score: 1

    Before I would have said "at least read access", since in my experience the bug reports are usually very inadequate and you need to know exactly what the user was seeing and any settings/configuration made in production. Write access was already rather iffy before, and now with most servers being virtualized the best way would be a fast track to create a new clone of production for the ugly cases. We used virtualization heavily at a client I was at, they originally had two environments, test and production. We did a major upgrade, and at most we had 5 environments:

    1) The old production, ready to be resurrected in case of OMG problems
    2) The old test, used to verify upgrade results (not old prod as we didn't want people making changes there by accident)
    3) The new production, obviously
    4) The new QA, where the customer was doing regression testing
    5) The new test, where we kept working on the next delivery

    Being able to suddenly scale up to five environments - eventually down to two again - was brilliant. The cloned it, changed a few IPs and away it went...

    --
    Live today, because you never know what tomorrow brings
  38. Yes, but audited by GryMor · · Score: 1

    The author/owner of an application should be on the hook for keeping it running and for it's failures. To separate these responsibilities creates perverse incentives and encourages fire and forget development with no thought to future maintenance and troubleshooting. At the same time, to discourage the practice of 'keeping things going by kicking them', access should result in a detailed audit trail, which would be necessary anyways for regulatory compliance.

    This doesn't work very well without other arrangements in place, namely, a standardized version control and deployment system, hardware as a service and fleet maintenance systems and a hetero-generous service based architecture.

    --
    Realities just a bunch of bits.
    1. Re:Yes, but audited by Fulcrum+of+Evil · · Score: 1

      Sounds like Amazon, not that I disagree or anything.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  39. Of course they should. by Zangief · · Score: 1

    Super simple question: yes, they should have read-only access.

    Unless you are concerned about privacy issues, but then you probably solved those for your sysadmins too, so no biggie.

  40. Risk vs Productivity by Maxo-Texas · · Score: 1

    In my experience, programmers with production access cause more visible problems but have substantially higher productivity (6x to 8x).

    My company has previously had unbelievably tight controls put in place as a result of SOX which added a 45 day overhead to any change (except emergency changes) regardless of size (which means small projects were no longer approved- only home runs).

    Now we are going to SAP. All that is gone for now-- productivity is off the charts. I'm sure they will start locking it down after we get the first production environment settled but it is nice to be productive again.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  41. Restore and replicate by funkysoulbrother · · Score: 1

    I found it's best to have the admins restore a copy of Prod to test or dev then reproduce it there and fix it. Updating directly to prod or debugging against prod should always be a last resort.

  42. überdev by Anonymous Coward · · Score: 3, Funny

    I am one of the few people who can run correct code the first time round. I am also proficient enough in OS matters to be able to circumvent access to locked down resources. So I don't care what this post says, I'm doing it myyyyy waaaaay.

  43. I would hope not.. by indraneil · · Score: 1

    I work with world class developers and an equally competent team of operations folks. The amount of disconnect between the 2 sets of folks is amazing. The developers black box stuff out of their consideration (e.g. setting up load balancers, with or with out affinity, not littering certificates all over the place, the amount of privileges a service needs etc.). The operations folks ignore other aspects (a cache that's hard to build could be lost after a process recycle, not version controlling their ad-hoc queries/sql jobs etc.)
    Even if I take out considerations of giving developers access to customer sensitive data, the mere fact that most developers assume that a complete clean reinstall is as trivial as going back to a previous VM image (wrt time considerations) makes me pause and not provide them access. Add to the fact that developers talk in logical terms (regardless of scale) while operations talks in physical terms (actual machine names, drives etc.) and watching them communicate is like watching 2 blind men describe an elephant to you.
    Our team makes it mandatory for developers to request for clean concise information from operations who procure it on their behalf. Yes it is slow, yes, it makes the developers having to batch their queries together but I can't imagine doing it any other way right now.

    1. Re:I would hope not.. by Fulcrum+of+Evil · · Score: 1

      Why would anybody care about actual machine names? Unless you're talking about a specific repro of a problem in prod, machine names are so much noise; they should all be exactly the same, guaranteed by process and beneath notice pretty much all the time.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    2. Re:I would hope not.. by indraneil · · Score: 1

      We store customer specific data hence we are legally mandated to ensure that e.g. EU customers go to EU.
      Every time a customer reports a problem, we need to look at web logs or SQL query results from a specific set of machines to help debug it.
      The sheer number of data centers we are hosted in makes it impossible to keep them all in sync at any given time, hence its not always possible to debug based on results from the closest data center.

    3. Re:I would hope not.. by Fulcrum+of+Evil · · Score: 1

      that sounds more like a data sharding issue - the way you phrased it sounded like people actually cared what app server X was called.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  44. Ummmm, no. by kperrier · · Score: 1

    Not only no, but hell no.

    1. Re:Ummmm, no. by cfulton · · Score: 1

      As a developer I would like to add...NO NO NO. That just makes me responsible for up time and hardware. I'm a developer not a system administrator. I want to be responsible for the code. NO NO ABSOLUTELY NOT!!

      --
      No sigs in BETA. Beta SUCKS.
  45. Sysadmin's take by ihatejobs · · Score: 1

    I'm a sysadmin who used to work at a web development company. As a one man team I managed ~40 servers, 8 of them being in production web servers hosting 200-300 sites each.

    Web developers should not be allowed anywhere NEAR a production server. The last time I let one onto one, I spent the next day and a half fixing what he broke.

    On the flip side, sometimes developers will just flat out need access. In this case, at least in my experience, a clone does the job just as well. You just need to have a couple servers sitting around specifically for development use, and then have a way to clone machines to this hardware in short order. In my years of experience I have yet to come across a problem that absolutely needed to be tackled on a production server.

    --
    Can anyone tell me why 99% of /. users are total assclowns?
    1. Re:Sysadmin's take by pz · · Score: 1

      On the flip side, sometimes developers will just flat out need access. In this case, at least in my experience, a clone does the job just as well. You just need to have a couple servers sitting around specifically for development use, and then have a way to clone machines to this hardware in short order. In my years of experience I have yet to come across a problem that absolutely needed to be tackled on a production server.

      I've run into one instance where code worked perfectly in development, perfectly in QA, but under the real-world load of production failed in interesting and hard to understand ways. It ultimately came down to a question of network delay under heavy traffic, similar to a classic race condition, but not as simple. Determining the problem and the correct solution required debugging in production, but all of the code went through all of the normal controlled, auditable deployment processes.

      --

      Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    2. Re:Sysadmin's take by ihatejobs · · Score: 1

      Network delays under heavy traffic can be simulated in a development environment. Actually I've had to do that before to test some weird scraping code that wasn't working correctly in production but worked fine on the dev server.

      I can understand some niche situations where it will be easier and faster to test on production, but I still don't believe its every truly required in this day and age. Anything can be simulated, you just need to know how, and have the time to do it properly.

      Of course these are under ideal conditions. I have worked for places that wouldn't allow us the time or properly tools to test proper and we had to do it in production. Sometimes it went just fine. Other times... it likely cost us more in lost sales than it would have to buy the test server to begin with.

      --
      Can anyone tell me why 99% of /. users are total assclowns?
  46. No, but not for the reason you think by spiffmastercow · · Score: 1

    I worked at a small company where I was the sole developer, and had access to the production system. I was able to make changes and roll them out quickly, and only once or twice did I screw something up (and I was able to fix it right away). The problem is that users started coming to me instead of the sysadmin when they had problems. Then the sysadmin/tech support guy got all butt-hurt about it and declared that he would no longer support anything I wrote. As a result, I ended up having to spend way too much time teaching users how to use their computers (half the time it didn't even have to do with any code I wrote) and didn't have enough time to perform my primary job function.

    I'm sure you'll say I should have just refused to provide tech support. But when you work for a small company where half the employees are either family members or personal friends of the person who signs your paycheck, that's not always a possibility.

  47. Security Violation FTW! by pentalive · · Score: 1
    Developers with access to either the test environment or the Production environment is a violation of the doctrine of "Separation of function"

    (learned recently in my BS-Information System Security program)

    1. Re:Security Violation FTW! by russotto · · Score: 1

      Developers with access to either the test environment or the Production environment is a violation of the doctrine of "Separation of function"

      Perhaps. But developers without access to the test environment is a violation of the doctrine of "Getting things done". But then, security and productivity will always be at loggerheads.

    2. Re:Security Violation FTW! by pentalive · · Score: 1

      Of course the developers have their own unit test environment. What I was talking about was an off-line environment where the final product is fully assembled and assumed to be ready for prime time. The very last test before going live.

      The developers should have no access to that environment. There is a chance the developer will want to "fix the test environment" rather than "fix the bug in the program." The employees that operate that final test will write reports and the problems will get fixed that way.

  48. Hope you are never audited! by TarPitt · · Score: 4, Interesting

    I worked as an IT auditor for a very big public accounting firm. Reviewing IT controls was a key part of the financial audit (and more so now with Sarbannes Oxley).

    If I found developers had access to production, it was automatically a "no reliance" finding.

    This means the financial applications are inherently untrustworthy that the financial auditors would have to review original source documents for validation.

    "No reliance" meant the audit became much more expensive as a result.

    Also - if the auditors can't rely on the financial reports, should management?

    --
    If your children ever found out how lame you are, they'd murder you in your sleep
    1. Re:Hope you are never audited! by coredog64 · · Score: 1

      The last time I was someplace that was subject to SOX, the rule was "segregation of duties". I, as a developer, could have access to the development version of a system OR the production version of a system, but not both. I could (and did) have mixed access where I had access to prod versions of system A and B, but dev access to systems X and Z. In general, the way it worked was that I had dev access to those systems I was developing, and I had prod access for systems that were in my group but not my primary responsibility.

    2. Re:Hope you are never audited! by PerformanceDude · · Score: 1
      I don't know what is more financially untrustworthy: Developers having emergency access to production or "creative accountants" having access to production. At least developers are generally trying to do the right thing and are normally peer supervised in that situation. I don't think it was rogue developers that was the cause behind Sarbannes Oxley becoming such a big money spinner for the "very big public accounting firms". Actually, from memory, wasn't it the failure of the "very big public accounting firms" and the way they audited that caused some major financial colapses in the US? I'm mentioning this because the "holier than thou" attitude of many auditors is more often than not just an excuse to charge more money and can be very grating at times.

      As a "Fire-fighter" who gets called in when very big critical systems go "BOOM", I can assure you that in some situations direct production access is inevitable. If a system down is costing $1,000,000 per hour and the fix is a one-line code change - guess who will be doing it and how fast that change goes through (often under the direct instruction and supervision of the company CEO)?

      Real life is not always so simple that it can be stuck into a Sarbannes Oxley manual. Sometimes commercial reality just takes over.

      --
      Meus subcriptio est nocens Latin quoniam bardus populus reputo is sanus callidus
    3. Re:Hope you are never audited! by Anonymous Coward · · Score: 0

      So, it's OK if admins have access to production though? At some level you have to trust your employees, right? Or do you believe that your audit trail is bulletproof?

  49. That's normal. by Anonymous Coward · · Score: 0

    If you have a sysadmin staff that can provide a clean test environment no more than 24 hours out of date, you should treasure them. It's very rare to have sufficient skilled staff and duplicate hardware in the Real World [tm]. It's extremely commonplace to pretend to have a valid test environment, but after 40 years in the industry I can tell you it's usually just self-delusion or a sham for fooling auditors.

  50. No by istartedi · · Score: 2, Insightful

    Even when the suggestion of "would you like root on this internal box?" was put to me, my answer was always "No". I write code. Others test it. Admins deploy it.

    People specialize for a reason. If you want half-assed administration, give root to a developer. If you want half-assed code, let admins write software. If you want half-assed testing, have admins and/or developers do it.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  51. Long Answer by IndustrialComplex · · Score: 2, Insightful

    If I found out a developer changed something in a system I tested without it going through the proper process...

    Let's just say I would be very interested to hear why they shouldn't go back and rerun everything again on THEIR dime. (at the very least) In fact, we DID do just that to someone who let a revision slip into their UUT because a developer felt it would fix something and make it perform better.

    It wasn't too expensive of a mistake, just $250,000 to rerun that portion of the test. Although that was just the physical cost of performing the test. I don't even want to know how much it cost in labor especially considering it was a 22 day test.

    Even if the change was removed, how do I know that without physically verifying checksums (do I even trust it anymore since their CM process is obviously flawed)

    --
    Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    1. Re:Long Answer by Anonymous Coward · · Score: 0

      Physical cost of performing a test? Does your QA department charge $1000 per keystroke?

      Obvious troll is obvious.

    2. Re:Long Answer by gknoy · · Score: 1

      While I'm not going to call the GP a troll, I'm genuinely curious how testing would rack up such a large cost.

    3. Re:Long Answer by Kjella · · Score: 1

      Physical cost of performing a test? Does your QA department charge $1000 per keystroke?

      Hint: Computers run more than run-of-the-mill office desktops. Like for example they control big and expensive machinery, that could halt or damage production lines and create huge issues for your entire supply chain. It all depends on what you're developing and for who.

      --
      Live today, because you never know what tomorrow brings
    4. Re:Long Answer by IndustrialComplex · · Score: 1

      Physical cost of performing a test? Does your QA department charge $1000 per keystroke?

      Obvious troll is obvious.

      Change the code in a system just before it goes into a series of tests for flight safety and reliability.

      Think that changing the software won't have an effect on the performance of the system? Probably not, but I've had a system which shut down without warning at -10C. The solution was a software patch that adjusted how it responded to warnings of system performance degredation.

      That's why it was such an expensive thing. I wasn't going to allow something to fly if it was tested out of configuration. Repeat of the testing was somewhere around $250k since there were a LOT of tests that had to be rerun. When a unit goes out for test, it goes from test to test to test for the most part, their paperwork said it had firmware/software versions XYZ and we later discovered that a different version was snuck in.

      Obviously, your bank's data center isn't going to be considered flight safety critical, but screwing with production can be damned expensive in the right conditions.

      Obvious troll isn't so troll.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    5. Re:Long Answer by IndustrialComplex · · Score: 1

      Hint: Computers run more than run-of-the-mill office desktops. Like for example they control big and expensive machinery, that could halt or damage production lines and create huge issues for your entire supply chain. It all depends on what you're developing and for who.

      And to expand on that... not all computers sit in offices.

      The system was safety of flight critical. Testing such systems is literally physically expensive to run and not in terms of manhours alone. You are bolting it to a vib table, freezing it, cooking it, literally shocking it at some points. Some of these tests go right to the structural limits of the system, so you can't even run it on the same equipment more than once. It literally eats up another piece of hardware.

      For the guy who called me a troll. Imagine if you were testing a new airbag system in a crash test. If you want to run that test again, you are going to literally destroy another vehicle (filled with sensors). For something like a BMW, you are going to be out $50-100k on just the raw materials to conduct the test.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    6. Re:Long Answer by IndustrialComplex · · Score: 1

      Safety of flight testing. You shouldn't run the same system through twice (unless you have a lot of money because the stresses accumulate). It consumes physical components, and requires very specialized and calibrated test equipment. Few locations have the equipment to perform the tests. It adds up.

      Think crash testing a car. Each time cosumes an entire vehicle.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    7. Re:Long Answer by Mashiara · · Score: 1

      Case point industrial processes: some take multiple days to restart if halted, and downtime costs 20-60kEUR/minute (and beyond). So "oops I accidentally the whole" that triggers emergency shutdown by mistake is simply not an option.

      Doing proper correctness verification gets very, very expensive as soon as complexity goes beyond trivial.

  52. I'm a developer... by iscy0 · · Score: 1

    I'm a developer, and I have to say... HELL NO!

  53. In an ideal world... by matsoo · · Score: 1

    .. no one should have to access to production servers for anything other than pure upgrades and if necessary to read logs and inspect monitoring programs. If your organisation can afford a decent test server with the same basic hardare as the poduction servers you should simply clone it to the production environment.

    In reality of course there are always mysterious problems that only seem to happen when a system is put into actual use. To catch as many of those a possibe, and without having to resort to panic changes in your production environment, both the test and production servers should have a decent set of monitoring software and the ability to produce as much logs as possible.

    If you do all this and still have problems developers might have to look at the production servers. But any changes should be addded to the test server first, both to test it and to make sure that the test server is always updated when the production servers are. Once the fix is ready whoever is responsible for the production servers should approve the changes and make the update. This also makes sure at least two people know about any change made to the production environment

    If you organisation is really small I don't really think it will matter is your developers have access or not. Then you should just give access to whoever you feel can handle it on a person to person basis.

  54. Huh? by Anonymous Coward · · Score: 0

    Why would you need 'cover' if something expected happens?

    I do not want to work there...

  55. With Great Power... by Sandor+at+the+Zoo · · Score: 2, Interesting

    Of course developers should have some level of access to the production environment. No matter how good your test environment is, it's not going to match the live server in load, or what's in cache, or the concurrent access to some resource, etc.

    Our process was to have one person with access, investigating whatever problem via the SQL command line, or the Rails console (let the RoR jokes commence), with another person watching, to make sure they were doing select * and not update or delete. Even then we'd execute stuff in a transaction or sandbox so that we weren't making any permanent changes, although changes to memcache generally can't be rolled back so easily.

    I've seen admins, who are adamant that dev not be allowed to change anything, change psql configurations at a whim, crippling DB performance. And then blame dev for poor response times. That's so not cool.

  56. It's an artificially charged question by michaelmalak · · Score: 1
    When you say, "should developers have access to production?" it fails to make two critical distinctions:
    1. Read-only vs. read/write Of course developers should be able to pull real-life data off production to re-load onto development and test environments.
    2. Deployment vs. emergency administration. Of course developers should not be allowed to deploy code to production. But there are always emergencies, and there are times when the development team lead needs to put a finger on production to unjam it, so to speak -- utilizing knowledge only a developer would have and executed, due to ($) urgency, that precludes a developer communicating the steps to an authorized admin. By "unjam" I mean clearing out queues, deleting temporary files, etc., not deploying new code.
    1. Re:It's an artificially charged question by DragonWriter · · Score: 1

      Of course developers should be able to pull real-life data off production to re-load onto development and test environments.

      I don't think that's an "of course". In some environments, that makes sense. In some environments, it makes sense for the people responsible for the production system to evaluate developers request for production data and make it available on an as-needed basis when no other alternative is available that allows the problem to be diagnosed.

      Of course developers should not be allowed to deploy code to production. But there are always emergencies, and there are times when the development team lead needs to put a finger on production to unjam it, so to speak -- utilizing knowledge only a developer would have and executed, due to ($) urgency, that precludes a developer communicating the steps to an authorized admin. By "unjam" I mean clearing out queues, deleting temporary files, etc., not deploying new code.

      If your administrator doesn't have the knowledge to do these kinds of tasks, and the documentation of the system doesn't provide the necessary information that would allow a competent administrator without the specific knowledge the ability to do it, there are at least two critical problems besides the ones that the developers are "putting a finger" on production to fix.

  57. NEVER is when should a developer have prod access by Anonymous Coward · · Score: 0

    As a former developer, I always wanted access to the prod systems because it made my life easier. Then there was an outage and I was blamed. A month later, it was determined to be an intermittent hardware issue that caused the issue, but that month people wanted me fired. Since that time, I've built into my system multiple log levels and traceback messages that would get me to the line of code where an issue happens.

    Now, as a technical architect, I do not allow developers any access to prod systems - NEVER. Not even to install the program. See, when developers have access, they don't get forced to write documentation and the docs aren't validated by another person. Run support teams need to understand the programs and if the dev team does all the work, they won't.
    Now you have a single point of failure - no business wants that. Yes, it is more effort and less efficient to split these roles, but you'll sleep better at night. Trust me.

  58. Been there done that by phorm · · Score: 1

    Having lived with this scenario for about a year, I'd say that the biggest issue is not whether devs have access to production, but rather HOW they have access to production, and what the change-management process it.

    Access to allow them to push updates from a proper repository to the live server: OK
    Full SSH/root access to the production boxes. HELL NO.

    I can't think of how many times my head nearly exploded because a dev pushed some massive freaking update to a live server and torched the box. We're talking uploading an entirely new app, without proper stress-testing, to a live in-use server. End result... leaks, bugs, and the live site explodes. Sometimes it can take hours or DAYS to figure out why resource usage suddenly jumps through the roof, and all the time the way the dev talked the system had been in place for months (being fairly new to that company, I wasn't really sure myself).

    Oh look... thousands of SQL queries locking the tables due to unoptimized database tables... OK lets sift few a few THOUSAND files trying to find where that little query is running from...

    Again, the big issue wasn't with devs having access to production. It was with devs having privileged access to production, and either
    a) Messing with installed modules/software/whatever... that's an admin's job
    b) Installing updates without checking, and without notifying other departments.

    Similar issues ensued with even just basic updates in cases where there were unchecked bad links to internal-only testing URL's, etc. Of course, when stuff was broken, nobody would be willing to take ownership for the mistake, which meant that IT spent excessive time tracking down the changes to fix them, and then the offender(s) have gone home for the day several hour ago while the admins are spending tons of (salary... unpaid) OT tracking down why the server crashed-and-burned.

    A change-management system does fix a lot of that. Something as simple as "git" should be enough for many situations, and easy enough for people to understand. It allows you to revert a major code-screwup, isolate when bugs occurred, and find which people are submitting unapproved updates that break servers. If you still need to restrict dev access to a production machine, then only allow admins to do the "git pull", upon approval of the edits made by dev.

    There's plenty of arrogance to go around between development and sysadmins, and often some overlap between the two roles. Having a change-management system and proper access controls adds a big factor of accountability and rollback to things, as well as helping to prevent people from clobbering each others updates.

  59. Reddit was hiring, and... by MattW · · Score: 1

    http://www.reddit.com/r/blog/comments/d33x7/reddit_is_hiring/c0x7aq5

    I tend to feel the same way. I don't feel like developers who don't understand their production environment, or system architects who don't understand the code, can be fully successful. As a lead developer for a fairly high traffic site, I thought a lot about how the code and hardware interacted, and what the various limits were and how things degraded.

  60. Optimization / speed problems? by vlm · · Score: 1

    If only the operations folks could handle the design and implementation of indexes and otherwise handle optimization / speed related issues, then the devs would not need access to production servers. There seems to be no frictionless way to balance.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  61. Stupid Question with no answer by danparker276 · · Score: 1

    Like people have said it all depends on your situation. What's horrible is if you have a system admin that doesn't understand that.

  62. Better to have access by Anonymous Coward · · Score: 0

    I don't understand release management philosophies that remove people with the most domain knowledge away from their apps in production. Let's face it, shit happens and having access to quickly implement a fix or workaround to minimize or prevent customer disruptions is vital.

  63. vm by Anonymous Coward · · Score: 0

    Virtual machines are easily cloned.

  64. We shouldnt, but.. by Anonymous Coward · · Score: 0

    in reality all those procedures get thrown out the window as soon as the customer starts complaining load enough or the budget get tight enough

    The project i'm working on right now is a prime example, the customer has a data aggregation system running on live data feeds, the wanted full fail-over capacity, which currently isnt working, there are four replica environments, none of which actually is a full 1:1 replica of the production systems (and im not just talking hardware here, the software is out of sync as well), now we needed to add some functionality, but it had to happen fast and cheap. Off course the existing codebase is the worst i've seen to date and i keep tripping over bug after bug.

    Long story short, not only am i developer, i also ended up soully responsible for testing/test reports (a role which is normally cleanly separated at our company, for good reason), and doing deployment on machines i hardly know anything about (and i am not a linux admin to start with, i hobby around a bit... but thats it) and the day before the live deployment deadline we were still discussing basic system architecture, since apparently no architect had actually anything to do with the design i was given six weeks ago...

    I kept telling them (management) that the deadline was undo-able, but the customer just complained loud enough, and we kept right on truckin untill twelve hours before deployment management finally woke up and realized it wasnt gonna work... by that time just about every rule and procedure we have had been broken

    and now i'm stuck as the only guy still on the project still trying to build what we originally promised, fixing a gazilion bugs in the existing codebase, doing testing etc...

    (posting anonymously, you never know who is reading)

  65. Exactly by DeadCatX2 · · Score: 1

    If you can't take the time to make an ECO, you've got no business mucking with the production server.

    --
    :(){ :|:& };:
  66. dev. staging/qa, live by mrflash818 · · Score: 1

    I do not think developers need access to the back-end of production servers. Being able to read the production logs, and having produciton code that can spew meaningful errors should be enough.

    Be able to set a debug=true, or --verbose flag in the code, that spews a lot of information, as needed.

    For a mid to large environment, web server type stuff, it is my opinion to go a route like this:

    Ideally have the developer develop as its own version tag (cvs or such) on their work station in isolation, then move to a dev environment to vette out any gotchas.

    Once vetted, then have the frozen tagged updates applied to the staging environment, which should be 'as close to as what is on production' as possible. If all goes well, great: becomes part of next release candidate.

    Put tested release on a subset of production.

    Once that seems to be doing well, then migrate production wide. (Certainly developers should have read access to server logs, as a good prod environment can even send prod logs to be duplicated to somewhere 'safe' for analysis.)

    --
    Uh, Linux geek since 1999.
  67. ONLY IF EVERYONE ELSE IS DEAD by Anonymous Coward · · Score: 0

    ...and even then, with extreme caution

  68. There are times you NEED acces to Production by gabrieltss · · Score: 1

    There have been MANY when there were issues that ONLY occured in production where we had to point our local development environments to production databases, servers etc.. to debug the issue. 9 times out of 10 it's an environmental issue. Something an admin changed on a server setting or some person changed data in the database that caused the issue. But without being able to debug against production you wouldn't find it.

    --
    The Truth is a Virus!!!
    1. Re:There are times you NEED acces to Production by ChronoFish · · Score: 1

      To debug the live environment you need to rely on logging. The problem is mutli-fold when you have multiple database with multiple versions (live, staging, production) or maybe a "web services" server that is separate from your app server. It is no doubt easier - and often quicker to debug on the live server.

      The problem is that you run the risk of introducing temporary or permanent side-effects that may not be obvious at first. Now you have two (or more problems) that "can't be recreated in development".

      At the very least, debug by proxy. Even then this is sloppy - but at least your changes are being tracked (assuming you use version control software to move you code from development/staging to production.)

      If your app is not critical - the motivation may not be there. If there is a risk of people dying or going to jail because of a "code fix gone awry" you might have so much anxiety that you'll never want to touch production.

      -CF

    2. Re:There are times you NEED acces to Production by gabrieltss · · Score: 1

      We don't have authorites to make changes on production servers. But we have read/write acess to certain DB's because the apps need to read/write to them. We just have the authority to debug against production to find the problem. If it is an issue in the application, then we make the change locally and then push the app through the normal deployment process. We as developers DO NOT have write/update/delete authority to the file systems only read.

      --
      The Truth is a Virus!!!
  69. Comment removed by account_deleted · · Score: 4, Insightful

    Comment removed based on user account deletion

  70. Of course not by obijuanvaldez · · Score: 1

    I am a developer and I would never want production access and cannot understand why any sane developer would. I do not want there to be any chance that the script I run to clean out the Customers table on the development database could ever be accidentally run on production. Forgetting if it encourages sloppy practices, even if your development practices are excellent, any sane developer would always want to be able to say with absolute certainty that they did nothing to hose production, even mistakenly, because they simply do not have access. It must be the sysads fault.

  71. Developers need access to DATA and CODE by HiggsBison · · Score: 1

    I've been in two bad situations.

    1. Management was too cheap to have adequate development systems. They expected us to make up good test data on the fly. We never did good testing as a result.

    2. We had SAP. The accountants had access to the production system (of course). They were allowed to develop their own programs on the production system (dangerous). I was merely the programmer, so I had no access to the production system, or the stuff they had already written (extraordinarily stupid).

    I'm not asking for access to live data or permission to run code on live data, but don't give me bullshit data, or keep me in the dark on production code. Hey, wait, isn't this what they call a mushroom farm?

    --
    My other car is a 1984 Nark Avenger.
  72. Give 'em an inch.... by Rob_Bryerton · · Score: 1

    Never allow access to PROD. They will do their testing in PROD, then "promote" those changes to DEV. Seen it a million times. Have a QA/Test instance, script a nightly LUN snapshot from PROD, and let 'em have at it.

  73. I keep hearing this same mistake. by Anonymous Coward · · Score: 0

    Hardware is cheap.

    Developer time is less cheap.

    Maintenance costs kill you.

    Yes, you should have a test environment - several, probably, but you should engineer the system properly up front so that you have knowledge of what the production limitations are. You should also instrument your whole application so that developers don't need to add debugging code to the live system - they just need to look at the instrumentation and they should know what all their variables are doing and how many resources everything takes.

    If you're failing to do that, you're failing at maintenance.

  74. Blue Cross Blue Shield Anyone? by Bourdain · · Score: 4, Interesting

    If I screw up, people can't get the correct pills. It's fun to make other people live dangerously. :-p

    FTFY. Well, for certain values of "pharmacy benefit management system". If your production hacking can botch scrip fulfillment, please say what company you're working for so I can try to avoid it like the plague it is.

    I don't know if Blue Cross Blue Shield has fixed this but, as of a few weeks ago (and this probably has existed for a while), living in EST has made it impossible for scrips to be fulfilled via insurance between midnight and 3AM. This is because, according to the late night pharmacist who is familiar with the issue, the servers are in PST and won't allow fulfillment from the anything but the "current day" regardless of time zone. Too bad the devs there don't understand time zones adjustments / UTC/GMT. Yet again, non-profit environments don't tend to attract the swiftest of folk in general.

    1. Re:Blue Cross Blue Shield Anyone? by garyebickford · · Score: 1

      I used to know someone who worked for Blue Cross/Blue Shield in Oregon (not in IT). [Note that different BC/BS regions are independent, and run differently.] From what she told me about the way the place was run, it's a 'non-profit' only in the sense that you can't buy the stock. The corporate heads were jetsetting around and raking in the dough while cutting staff and increasing workload every year, firing anyone who couldn't keep up, then increasing their own pay while showing a loss on the bottom line, and crying in public about how they had to raise rates to cover their losses - losses which closely matched their pay raises.

      Since she was in a group who worked with actual people, this meant that there was less and less time available to resolve issues. Her patient load had more than tripled in a few years. People were getting so stressed that they were having nervous breakdowns, going out on stress leave, or just quitting or being laid off. So your BC group is the same, I would not be surprised if the IT folks got cut back to the point where there's no time available to fix anything.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    2. Re:Blue Cross Blue Shield Anyone? by Bourdain · · Score: 1

      Fair enough, I know there's at least some degree of interdependence/reciprocity between the entities (e.g. I live and work in NY yet my BCBS is based in another state (also EST though); all of my bills are, at one point, submitted to the NY BCBS since they are the ones who have the contracts with the local doctors).

      In the case of the scrip fulfillment, perhaps that's handled by a PBM who has incompetent/overworked devs (in PST).

      I also fully appreciate the essence of "non-profit" in name only. Being a non-profit seems to, at least in organizations where lots of money is involved and there isn't a true humanitarian mission, only yield inefficiency because there's so little transparency and no shareholder incentive -- only an incentive for top management and their lieutenants to individually profit.

  75. No, not outside very special cases by Anonymous Coward · · Score: 0

    No, developers should not have access to production except under very specific circumstances where it is truely a need (such as critical, production only bugs that have been escalated). This is partially a stability concern, but even more largely a security concern. The ideal is that most system admins should not be able to access production data without going through the software and software developers should not be able to access production without going through the admins. This seperation of powers tries to ensure that a developer and an admin must be working together at minimum to compromise the system.

    Stability is kind of a minor issue in the whole debate. If you have good developers and bad admins, the developers won't be doing stuff they shouldn't in production and will avoid stability issues that would be caused by the sloppy admin. Conversely, if you have sloppy developers, even the best system admins won't be able to keep the system stable. Ideally both do their jobs well and only limited developer intervention is ever neccessary if at all.

    For full disclosure, I am a senior developer at a fairly small company that gets double dipped in to admin duties as I have training and experience in both areas, but I try to keep as much seperation as I can and hand off as much as possible to our dedicated admin staff when I can. At the end of the day, if there is ever a security breach, it isn't a fun place to be in when you have the most access to the system of anyone.

  76. build to a livecd image by Colin+Smith · · Score: 1

    boot the server to a ramdisk. That way you know it is byte for byte identical .put all configuration in svn and distribute it using cfengine or similar.you get guaranteed identical performance . An os image can be as little as 100mb using a normal distribution.

    --
    Deleted
  77. Dependent on size of shop/experience/environmet by ChronoFish · · Score: 2, Interesting

    For a one man show the answer is self evident.

    For a small web company developing "brochure-ware" - probably more efficient.

    For a small team it's ideal to have individual sandboxes - with one sandbox listed as "staging". Assign the lead developer to turnover code to production. Individual developers have access but are told not to touch anything. They will typically sift through live environment making sure it matches what is in their sandbox, looking at logs, etc.

    For a mid-size team you need one person for maintenance (which includes monitoring nightly builds, responding to code turnover requests, managing automated testing). Even more critical if the code you write is compiled, fragile, or highly sensitive. - Individual developers don't have access to the live box - maybe the team lead will.

    For large teams or small team "units" part of a large production shop : Several layers of "staging and testing" will exist. Code turnovers are mostly automated. Developers don't have access. Automated rollbacks are possible from a robust code management system.

    The key is discipline. If you find yourself modifying live code - you're not disciplined. It means you're not willing to insert logging code and would rather pollute the production environment. There should never be a need to copy from production back to a sandbox (that is what version control software is for!) And version control files should never live on the production server (i.e. in Subversion you never do a checkout of code on the production server - you do an export instead).

    Even with controls in place, there may be a tendency to "develop on production by proxy". Which means instead of re-creating the problem in development, the developer is saying "here try this, here try this, here try this". The team lead should recognize this and put a stop to it.

    -CF

  78. Yes... by PmanAce · · Score: 0

    ...but read-only and with sensitive data obfuscated. Some bugs are just not replicatable in dev and/or not enough information is present to start with a lead. I work for a top 3 global game developer and have access to salary info (obfuscated of course).

    --
    Tired of my customary (Score:1)
  79. depends on the kind of developers by Anonymous Coward · · Score: 0

    The question is what type of developers you have.

    If you have professional and experienced developers - the question should be : should they give access to production to anyone else.

    If you have newbies out of college, or someone who did not mature into a responsible professional even with years of experience - you should not give them access.

  80. Developer and Sysadmin by TheNinjaroach · · Score: 1

    I'm a developer and the sysadmin for the webservers that run my code. I work at a mid-size manufacturing company and I'm kind of surprised to see there aren't more people filling both roles..

    --
    I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
  81. The question depends on the website and bad admins by CodePwned · · Score: 1

    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.

  82. Every specialized software will fail by rawler · · Score: 1

    Every piece of specialized software will fail occasionally. Not talking highly productized software with a gazillion beta-testers, but the ERP integration layers and other type of software that has been more or less written for a single, or for a few customers.

    No developer, and no amount of synthetical testing can ever cover all the possible angles in these highly complex systems the way the real world can. This is especially noticable for integration systems, highly dependent on external environment.

    Some of this software is highly mission-critical, when it stops, business stops. In these cases, dev-access is probably the sound way to troubleshoot, and get things running smoothly again.

  83. Longer answer by Anonymous Coward · · Score: 0

    Most shouldn't but that doesn't apply to me.

  84. Noooo! by flibuste · · Score: 1

    I usually work for large companies with QA/Staging processes. When someone suggest I poke the production servers, I REFUSE to even be given any password related to those. The argument being, we have 3 steps before an application goes live, if there is an issue, it's either a bug that hasn't been caught early enough or there's a support group who has the authorization to help in investigating.

    If a developer must access production servers, something in the bug detection process failed and it's way too dangerous to have anyone probe them. Also, in many organisations, the data is sensitive enough to not have the common human being even have a glance at it.

  85. Use automation with Hudson!! by kc8jhs · · Score: 1

    I do work mainly with LAMP stack apps, and one major step that we've taken is to work more CI magic into our workflow. I *love* Hudson, and have it setup to do everything from typical testing duties, to jobs for pulling sanitized production databases back for testing. The cool thing is that I can give some developers access to certain Hudson jobs, and let them trigger the production dumps whenever they want.

    I've even taking to setting up jobs that will spin up a VM, that gets setup with puppet, and then load the app with latest production dump, with parameters for the name of the environment. Now developers can even build their own testing/staging environments with a click, and everyone gets hassled alot less, and production sits alot safer.

  86. Pretty simple answer: Depends! by GooberToo · · Score: 1

    Can developer recreate issue in development environment? If yes. No. Stop.

    Can developers recreate issue in test which is loaded with production data? If yes. No. Stop.

    If developers can not obtain information in development and test systems then absolutely they need access to the production system. But that access is to diagnose, not debug! There is a difference. Logging may need to be enabled and production may slow. Generally speaking, if the administrators have done a proper job of specing and maintaining the system in the first place, the system will survive additional logging being enabled.

    Do they carte blanche access? Generally not. But if you have really good developers who are capable of using good judgment and/or have a good relationship with the production guys, there's generally no reason things can't be discussed and worked out.

    Really, this is a question of simple problem solving skills and relationships. Is an article really required?

  87. Here's why this is a "yes" by dino213b · · Score: 1

    Having access to and mutilating the environment are two completely different things. Treating developers as hostiles by server admins doesn't create the friendliest work environment.

    There is a big difference between a bug and the reason why the bug occurred - having access to a production environment is paramount to understanding the underlying issue.

    In most newspaper sites the headline / lede / seo field / first graf may is usually programmatically brought in as the META description for SEO purposes (unless specifically overridden). It's a fairly common assumption that this field would be pure text and overlooked in that it doesn't need sanitization. Of course, it's also a fairly common consequence that some silly editor eventually breaks the site by putting HTML code in fields they weren't meant to house. You'd be surprised how many (even big) media sites fail to sanitize these fields.

    Onto my point: having HTML (or faulty HTML for that matter) inside a HEAD description field seems like a bug. Sure, you can replicate the error by copying the environment and fix it by stripping anything unexpected out. However - that may not be the root of the problem. Thus, developers end up putting bandaids on a system and treating symptoms rather than curing the problem.

    When copying this environment to reproduce the issue, one might simply grab the part that's affected, ignoring the user - CMS preferences which would actually end up telling you what the problem was. What a developer SHOULD do instead is poke around the environment, notice that this was a common occurrence with particular users, talk to the editors in question and shadow them for awhile to understand why this sort of thing keeps repeating.

    In many cases, I've seen editors take advantage of programming or security holes to produce far richer and personalized web content than the original design or system permitted. By treating this problem out of the production environment context, the editorial side is completely cut out of the feedback and has no say in the matter and their creative outlet disappears with no dialogue. This in turn breeds hostility and distrust between technology and content.

    I can assure you that in reality there is minimal dialog between developers, designers, project managers - and - editors. In my past experience access to the production environment was the only means of lateral communication between abstract technology and persons who use it. In my cases, I've been able to provide editors with features they hesitated to request to circumvent problems while still tightening various holes. This, in turn, improved everyone's day.

    Look at it from a philosophical view- you don't want developers to be "writin' them codes" in vacuum of non-editorial space. They need to be a bit more intimately involved with the entire publishing cycle from start to end and not be ticket-solving space cadets when it comes to solving problems.

  88. As an Admin... by Anonymous Coward · · Score: 0

    Where I work as an Admin we filter out that crap for the developers. If its a environment issue then we resolve it on our side. If its a code issue we decipher the the who/what/where/when and why from the 'I got an error' and get our developers an more precise idea of where the problem lies. If our developers wanted to get the phone call at 2:30am when a system is down I am sure they could work out getting access...but so far they have declined and you know what..they kind of appreciate the fact that they can focus on writting code (i.e. doing their jobs) and less on Jane's IE6 SP1 not displaying an application correctly.

    "Well look, I already told you! I deal with the goddamn customers so the engineers don't have to! I have people skills! I am good at dealing with people! Can't you understand that? What the hell is wrong with you people?"

  89. Simple answer by ddrueding80 · · Score: 1

    Developers: "Yes" Everyone Else: "No"

  90. The Oil/gass biz... by omglolbah · · Score: 1

    We test the new blockware logic on test racks before installing it in the plant but the devs have full access to the running control system of the refinery plant.

    We can at any time 'monitor' the values of all function blocks in the whole plant, and change configurations on the live system.

    While this sounds iffy at best, it is the only way to do it. You can only test things so much before they have to be put into the live system. Replicating the live system is nearly impossible without spending silly amounts of money. So far no major accidents have happened but there is no guarantee.

    In a perfect wooooorld and so on .

  91. And the winner is ... by galego · · Score: 3, Funny

    ... in a split decision, vi wins. Oh wait ... wrong holy war!

    --

    Que Deus te de em dobro o que me desejas

    [May God give you double that which you wish for me]

  92. You're doing it wrong by blair1q · · Score: 1

    If you don't have a development server that closely replicates the installed state and environment of the production server, you're doing it wrong.

    You've built inaccuracies into your development and test system, differences from the production system that will result in differences in the completed code which will then encounter those differences and behave improperly on the production server.

    I.e., you're building bugs in deliberately.

    Stop that.

    Now, I understand, sometimes scalability is an issue. You can't replicate a whole server farm for the devs. But you can isolate that variable and design for it from the first day. It's the other variables that you don't anticipate and don't have visibility into that you need to keep from varying.

  93. Q&A? by antdude · · Score: 1

    Question and Answer? Or QA as Quality Assurance? :P

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    1. Re:Q&A? by SatanicPuppy · · Score: 1

      Sorry, that's a scatalogical joke on my part.

      Q: Why do they call it QA?
      A: Because it's full of Quislings and Assholes

      Ergo Q&A.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    2. Re:Q&A? by antdude · · Score: 1

      If that is the case, the developers/coders/programmers are idiots/retards. :P

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    3. Re:Q&A? by Cederic · · Score: 1

      I still feel proud of the day I joined a new company and kept a straight face when someone said they worked for the System Control And Testing team.

      They used the acronym.

    4. Re:Q&A? by SatanicPuppy · · Score: 1

      Blah blah, the eternal struggle. On the one hand, I appreciate dealing with code where the coder has been forced to explain/justify his work to someone else.

      On the other hand, having some joker whose job is to do nothing but criticize giving me the stink-eye coupled with 4 peoples worth of snide for some piddlyshit bandaid app that I tossed off in 5 minutes to fill an immediate need...Well, it rankles.

      They were one of the first victims of downsizing here, and while I constantly bemoan the fact that they aren't still bugging people at other business units, I don't miss ours a bit. My boss, on the other hand, will be in for a rude awakening when I leave.

      --
      ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
  94. My experience - theory and practice by Anonymous Coward · · Score: 0

    I worked as a developer at a Fortune 500 for about half a decade.

    This is strictly my personal opinion based on observation as a cog in the machine, responsible for writing one small part of processing transactions:
    We always had these fantastic procedures that made a lot of sense on paper : Developers normally had no access to production, but could request a 'readonly' id to review logs, and in an emergency could get management approval for a 'firecall' ID to make carefully supervised changes after discussion on a conference call if absolutely needed to resolve outages. It looked great on paper, controlled and thought out and even reasonable.

    In practice, using the emergency change request procedure was political suicide because it gave another department's vice president ammo to hold over your department's vice president, so your department's vice president made it completely clear to his teams that his department didn't have any cowboys who needed to fix things on production or as emergency changes, no way no how not on his watch.

    This led to an utterly dysfunctional environment where poor architectural decisions were intentionally made based on the knowledge that avoiding an emergency change was more important than any other consideration. Logs were made unsecure and exposed on message queues or in uncontrolled db tables or on uncontrolled network shares so that they could be reviewed without needing to request and justify a special id. For some reason there was a loophole in the process where database changes were often not treated to the same scrutiny as deploying a new binary, so code was moved out of the app layer into the database for no other reason than it would be easier to get a database change approved without informing a vice president. Nobody piped up about needing to get this loophole closed because it was the only way available to keep a system running.

    Ditto configuration changes - code was moved into xml files because they were 'configuration' and it was easier to get approval for an admin to edit a config file than to deploy a new binary. For some reason I could never fathom, you could do configuration changes without requiring QA, while you couldn't do new code without requiring QA. Code tended to be defined as a binary file, so whole chunks of logic got moved into more xml. I assume the theory was that QA tested different configurations before certifying the code, but this was definitely not the practice. QA verified that if they pushed a button an appropriate answer showed up on screen, and nothing beyond that, and no negative testing, and no alternate configurations, and no checking that the right data was in the database, or that two people pushing the same button at once didn't blow everything up.

    The business would have actually had a safer more stable more reliable system if the xml 'configuration' (code) was at least checked by a compiler, but then Vice Presidents had to get involved if something didn't work as expected.

    The best part was interfacing with external systems. Interfacing with external systems often doesn't work in production exactly like it does in test, but if you can't touch production to fix something that isn't working... Eventually every communication with an external system was replaced with a new system whose sole job was to speak SOAP to external systems, put things into an internal queue, pull things from the internal queue, and then speak more/different SOAP to internal systems. Reason? The queues could be tweaked and the SOAP messages changed without approval from a VP. This increased perceived reliability and was then considered so successful that the communicate-with-external-systems system was now tasked with communicating with all internal systems too, and a similar parallel communicate-with-internal-systems system was also developed. There were now too many different systems to figure them out, so another system was given the task of routing messages to the right system and trying to translate into a common

  95. sometimes developers don't want root by Anonymous Coward · · Score: 0

    We don't allow devs to write to production... and that makes them happy.
    Often a pointy-hair type will impress upon workers "if you can, then you must," and that can include making cockamaimie changes IMMEDIATELY.
    The devs can hide behind the wall I've erected, saying "sorry, no-can-do, I'm not allowed and I'm locked out, so there's no point in threatening me about it." Then the pointy-hair types have to explain to the sysadmins (who are in a different department, so they can't be easily intimidated) why something has to go out without being tested.

    It's bureaucracy, it's red tape, but it also puts reins on running running the product off a cliff just because someone panicked and is used to throwing their weight around to get what they want.

    Another good way to slow down the urgent pointy-hair types is to ask for the request "in writing, please."

  96. Cloned Server by jklovanc · · Score: 1

    Clones generally only duplicate installs and not data. The bug may be caused by a slow corruption of data on the prod server. It may only show up after weeks or months of use. It may only happen when certain data happens at a certain time (interaction with cron jobs). Sure one can clone the data too but when the data is multi-TB that will take time and money. Even at this point one can not clone the data flow into the server. Going into a prod server and adding logging lines should be allowed. (Sorry but the "log everything" solution is not a solution as one could create TB of logs in a single day on a prod server)

    Access for debugging purposes:Yes
    Bug Fixes: No (they need to be vetted first. If it is critical the vetting should have very high priority)

    1. Re:Cloned Server by Cederic · · Score: 1

      The answer is still 'No'.

      The dev does not need access to Prod. The dev can ask the admin to turn on debug logging. The admin can turn it on, then provide logs to the dev.

      At no point do developers need access to Prod.

  97. Change Management by sycodon · · Score: 1

    I told the new IT director that we needed a change management system.

    What I thought it meant was a piece of software that would:

    1. Back up the old website
    2. Take the new website from a Staging folder on the Dev machine and move it to production, after hours,
    3. Do some basic functionality testing (does the website even load,etc.)
    4. Provide an one button restore function of the shit hit the fan the next morning.

    What he thought it meant:

    1) Fill out a piece of paper advising everyone that the application was going to change and who they could blame if it didn't work...two weeks ahead of time.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    1. Re:Change Management by Xeleema · · Score: 1

      What he thought it meant: Fill out a piece of paper advising everyone that the application was going to change and who they could blame if it didn't work...two weeks ahead of time.

      Hate to tell you this, but as far as your boss is concerned, he's right. Remember, there are always shared acronyms and terminology across managment and techies. Techies have to learn "Managment-Speak" (get at least three ranks in this one, it's important!). Technically, you were correct, however if you had said "Version Control Softare (VCS)", a different lightbulb would have gone off in his head. However, there's always the distinct possibility he, being a PHB, knew exactly what you meant, and intentionally twisted your words so he could put another bullet-item on his quarterly accomplishments list. Let that be a lesson to you; keep good ideas to yourself until they're ready to enter Production. :)

      --
      "When I am king, you will be first against the wall..."
  98. I don't need access to Production by Cro+Magnon · · Score: 1

    But I do need access to an exact copy of Production. One of my big annoyances was when I couldn't replicate a problem, then found out the data I was working with was different from the Live data that caused/revealed the problem. Or some supporting software had been changed in Production and I was testing with an obsolete version.

    I don't want to mess with (or mess up) the Production stuff, but if my stuff is different from theirs, I can't guarantee that I can find their problem.

    --
    Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
  99. Production Errors are often Data content errors by Anonymous Coward · · Score: 0

    We have a pretty solid separation between devel, test, review/deploy & general admin. All of the developers and testers have Xen enviroments which our exact copies of our live servers. We use subversion to track multiple branches for code changes. We setup up automated tests and checks that can be run in short order on any proposed change to our live environment trunk. This process began two years ago... and the speed of coding to deployment is almost as good as before, but the quality and reliability of the code far exceeds what it was before.

    HOWEVER: as a QA manager who used to have access to the live system, but does not have access anymore... I find it most frustrating when the cause of a bug is not do to the structure of the program, but rather some exotic input or unexpected database content. Because of the blind wall between me and the live data, I find that the source of these errors cannot be determined and subsequently resolved in a timely manner. Especially when the people who have access to the live datasets do not properly understand how it is being used in the code.

    CONCLUSION: It is not a problem keeping coders away from the live/deployed code. A well configured 'dev box' will suffice. However, seeing/debugging the live dataset (CGI input, database content) that flows through their code is what they will miss.

  100. Should Digg have access to production? by Picass0 · · Score: 1

    The Mother of All Bad Deployments over at Digg today. Everything is broken. Good thing they didn't publish during peak usage. Oh, wait...

  101. The more developers work in production... by Zenin · · Score: 2, Insightful

    The more developers work in production, the more they can ONLY work in production.

    I'm all for read access (the more eyeballs the better), but actual access to change anything is a train wreck. The devs will forget to check the changes in to the source repo, or they'll check them in differently (bad copy/paste), or they'll check them into the wrong branch/tag. Regardless the next release that goes out silently adds the bug back into production.

    And if developers think it's difficult to fully clone a prod environment configuration into dev now, wait until they try to do it after developers have been hacking on it directly for a while.

    Pretty soon every release is a train wreck requiring tons of post-release tweaking and hammering to get it in place. Every release is a stressful mess as you're all crossing your fingers because you really have no idea what you are actually changing and no way to find out.

    Just don't do it. Hire a good build engineer/release manager/software configuration manager that can sort out, automate, and track environment management well enough that yes, you can reliably clone an accurate representation of production in a matter of minutes. He'll cost you about as much as a good sr developer, but the savings across the board will easily dwarf his salary.

    --
    My /. uid is better then your /. uid
  102. Things to remember by ADRA · · Score: 1

    1. No matter how perfect your setup is, there will always be variations between prod and the most meticulously setup prod clone, shadow, backup, standby, etc... that will cause some (hopefully not many) bugs to present themselves in one environment and not in others
    2. Data changes behavior -- Even if the web apps are identical, a small change to a database table could cause breakage in ways you never imagined. This can be controlled through proper layering and decoupling, but it always seems to creep up when you don't even notice it

    Developers should never have direct access to production. The usual steps for solving production issues should usually be solved as follows:
    1. If a support person gets the defect (either directly finding it or from a customer/user) then they look up in their knowledge base to make sure that the company doesn't already know about the problem and have a reasonable solution.
    If the problem hasn't been logged and is outside of the technical competence of the support staff, it usually gets thrown on IT / Operations support

    2. Operations support should one again verify that the problem hasn't been addressed before. Often problems will just continue to re-occur. Some problems just never get solved for one reason or another. Some problems -could- be solved, but the fix is just easier than a large amount of investment in making the problem go away. Often 'reboot the server' is a good enough solution for problems with low frequency occurrences and high complexity solutions.

    3. Operations doesn't know the problem, so its time to poke around the logs, system resources, network connections, etc... A good network and systems management solution makes this problem moot. I've seen tons of production problems end up being the result of rarely used disks getting full with nobody bothering to alarm on them. Finally, ops throws their hands up in the air and are like 'WTF.. this is a development issue'.

    4. This step is the hand-off between operations and development. I say hand-off, but in reality, this is when the two teams need to start COLLABORATING to find a solution. Too often either operations chucks the problem onto development's lap, or else development takes the problem and ignores operations until they find what they think the problem is or give up. The best solution in dealing with development related production problems are for both teams to work together and use shared knowledge and experiences of both groups to diagnose and resolve the issue. I've played on both teams over the years and I know quite well that Developers too often want to assume they know everything about deployments, servers, environments, etc.. Often that knowledge is diluted and ends up blinding them to issues that could be diagnosed at least in part with a network administrator / operations support. The worst situation is for this step is to get into the cycle of blaming one another for the defect. Tough to diagnose problems too often flame into blame games which always exacerbate the time to find, diagnose, and resolve an issue.

    5. Development asks for information X, Y, and Z. If there's enough information to gather an accurate diagnosis, a solution or a workaround is devised. If its a workaround, the problem and the solution should be logged somewhere so that all parties (support/admin/development) can see what problems are outstanding and if the problem comes up again, the workaround to address it. If the solution is a new release / patch / etc.. the fix should go through the general release cycle as usual (though much faster for more severe problems). Some problems don't and may never have evident solutions. The trick here is to find an adequate workaround that keeps stakeholder impact to the minimum.

    Developers should always have access to:
    - Server / Database logs (Just don't put anything confidential within logs that can compromise customer / user privacy)
    - Production IP's, and other data that is unique per release environment

    Developers shou

    --
    Bye!
  103. Short answer, maybe. by Lord+Kano · · Score: 2, Insightful

    Long answer, it depends on the situation.

    I (and a couple of my coworkers) have access to production servers, but we don't develop on prod. End of story. We have other devs who do not have access to prod. Dev is for dev, prod is for prod and don't let anyone without the discipline to keep that rule have access to prod.

    LK

    --
    "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
    1. Re:Short answer, maybe. by Anonymous Coward · · Score: 0

      If you aren't a production operations person and you have access to production, you aren't going to pass a SarbOx audit, or PCI, or really even any kind of basic audit. The practice puts the entire organization at risk. In a regulated industry this lack of change control can shut you down hard. In an unregulated industry, it's not really worth calling it "production" anyway -- it's just the deployed version of your tools.

    2. Re:Short answer, maybe. by Lord+Kano · · Score: 1

      If you aren't a production operations person and you have access to production, you aren't going to pass a SarbOx audit, or PCI, or really even any kind of basic audit.

      SOX is not an issue for privately owned companies. Even in organizations for which SOX could be a problem, they always find workarounds. In a tight economy, when workforces must be scaled down, they'll often just give senior/trusted developers an additional title and now they're ops too.

      In an unregulated industry, it's not really worth calling it "production" anyway -- it's just the deployed version of your tools.

      You're thinking with a corporate mindset. Not that it's wrong to do so, but it's not how we look at it. Production is a castle. You protect it. You treat it with care. You maintain discipline. If you're a Fortune 500 company, a small independent shop or some guy in his parents' basement.

      LK

      --
      "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
  104. You say potato and I say potaeto by jhughe90 · · Score: 2, Interesting
    I've worked for 3 different Fortune 500s over the last 11 years, a defense contractor, a telco, and a bank. Big companies, big IT departments, many many custom-written applications.

    Reading a lot of comments it looks like there's a wide variety of definitions for some of the job titles and roles people are discussing here, so I'll list how I see them:

    * System Admin - Person(s) responsible for the hardware and supporting (OS, Web service, code language and client libs, JVMs, etc) software. They do not in any way support the applications running on said system and would be incapable of debugging or supporting an *application* problem even with a gun to their head. Most can only describe 2-3 sentences of what the applications even do. They do not report to or answer directly to the application teams. They also do NOT install application code.

    * Database Admin - Only want to address roles here. At every location, the actual application data stored in the database is NOT the role or responsibility of the admin. It belongs to the application team and any changes are their job and their accountability. The DBA only deals with schemas, packages, procedures, scripts, access roles and grants, etc. DBAs should NOT MANIPULATE DATA. Asking or allowing them to do so opens up a never ending blame game and is counterproductive. If you want to create some title and role within the application team where all data manipulation funnels through, that's the way to do it.

    * Implementation Specialist (Code Migration) - Trained monkeys who are supposed to follow a set of pre-delivered instructions for deploying application changes. In my experience their technical knowledge is limited, they cannot verify copy/paste correctly, and screw up (transferring ZIP files in ASCII instead of binary) more than they succeed. I don't feel this position is even necessary. The PROCESS is necessary and it can be performed by anyone, even a developer, as long as they switch their role hats before starting and are held accountable for accurately following the deployment instructions given.

    * Production support - They act both in a technical and relationship role, being the contact point between the customer (internal or external) and the application team when issues arise. Generally have read-only access to production. They are able to debug many problems and resolve a few, but definitely not all of them. They do not participate in any part of the development lifecycle processes.

    * Developers - Not going to discuss or debate any pre-production roles here since it's irrelevant to the topic. Developers are the only ones I would be confident could debug ANY problem. They are going to need some reasonable level of access to production, logging, or information if you want to have an application that can maintain high availability and recover quickly from any type of outage.

    If your definitions to these roles differ significantly, then my answer for your company's situation would change.

    Depending on the size of the application and the team allocated to run it, I've performed up to 4/5 roles and was pretty much the 5th as well since the Sys Admin only could barely squeak by supporting Windows 2k and definitely had zero knowledge of any of the supporting software. Are you going to hire someone to do 6 hours of work per month just to separate the responsibilities? Of course not. So the OP's generalized question is open to a million different interpretations because of all the different variables that weren't specified.

    My most recent application team recently went through our production lockdown after finally migrating over an application suite purchased from another company. Developers and Prod Support have read-only access. Database passwords used by the applications have been restricted down to just a couple individuals. When changes need to be made to either the application or data, an Emergency ID is checked out to a requesting individual with the appropriate access level,

  105. Do The Developers Understand The Platform? by rathaven · · Score: 1


    To me this is the crux of the question: I have seen developers who were perfectly capable of managing individual servers due to long experience and having to perform DBA duties in the scale of the systems they have dealt with. I have also seen developers who know a language but complain about the SQL server when they write queries that run like batch processes through lack of understanding about the way the systems that they are writing generic SQL into work.

    The first type I would probably allow access to the production system - provided it was not widely outside the developer's experience and did not have an uptime requirement meaning that it had to be strictly controlled and tested, the second is type is exactly why I would never allow a lot of developers near production systems - small scale or not.

  106. My story by Anonymous Coward · · Score: 0

    True Story: As a software developer in my early 20's, I had root access to the mainframe that handled all shipping documents for a billion-dollar company in the transportation industry. Of course, I was on-call via pager and was responsible for smooth operation of said system. The Sys Admin kept trying to give me lesser levels of security like SUPER.OPER on a Tandem system rather than SUPER.SUPER (root) and constantly changed the password. But after enough times of me calling him in the middle of the night for the password, he gave up and just told me the new password every time he changed it. I wish I could blame it all on the architecture of our software or his administration, but there were certain things core things we were doing that made it dificult to setup security properly. Nothing bad ever came from this (thankfully), although today I think you could get nabbed easily, since security breaches back then weren't as numerous as today. Also, the systems were more closed to the outside world (we're talking nearly pre-internet here).

  107. Re:The question depends on the website and bad adm by hibiki_r · · Score: 1

    Source control is difficult to use? Where in the world are you working? Even the smallest of shops have access to free source control, which requires minimal administration. How much maintenance do you thing is needed in, say, a mercurial repository?

  108. Re:Jesus no--can you describe your setup? by Anonymous Coward · · Score: 0

    Hey, Oracle DBA. I aspire to that job someday. There's just...something sickly satisfying about writing good sql or pl/sql. No clue why.

    Seriously though, can you please describe your setup (restoring to a dev machine nightly) in whatever level of detail you're comfortable in? I run IT and develop for a small biz (postgres). We dump our database out weekly and rsync the backups. Problem is, the whole DB is 76G. Even the backup is nearly 8G compressed. Even restoring that file on a new dell poweredge with ridiculous memory takes at least 4 hours (that's after copying the file onto disk, and gunzipping it into a pipe so it runs as fast as possible--no GigE LAN bottleneck or anything)

    I can't move it over the network to the dev server in another location fast enough to do that in a day. Do you do some sort of fancy export/clustering where you share with a remote location, or is your dev server physically colocated with your prod server and fast/godlike pipe? Or maybe you guys just pay for enough bandwidth to be responsible in your backups...

    When I started at the company, our database was only 40 Megs... was a piece of cake. Of course, the DB would do seq scans since it could keep everything in memory cache back then...

    Anyway--a minute of your insight would probably be invaluable to me.

  109. Two Words by Kirrilian · · Score: 2, Insightful

    Hell. No.

    I'm a developer as well as a sysadmin and I NEVER tweak anything in production and I have full access to it.

    I have an exact copy of my production environment for development and I do all my tweaking/test deployments there.

    In fact nothing gets deployed to production until everything has been checked in development.

    My previous job had dev/qa/prod environments where the devs had full access to development and it was so bad that we had to virtualize it for them just so we could revert back to a pristine snapshot whenever they jacked up the dev server.

  110. System Administers by roman_mir · · Score: 1

    We don't give our fixes to a trained monkey we give them to System Administers

    - you have Ministers that systematize ads?

  111. I think I speak for all programmers when I say by geekoid · · Score: 2, Funny

    No. Do not give developers access to the production machine ever, except me...just this once..

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  112. For some, there is no choice by Joolz50 · · Score: 1

    I have systems which go out to site, and sometimes, I need root access to them because we simply don't have access to the hardware in our R&D lab, and need to test code on a production system.

  113. I think it's a trap for grammar nazis by dbIII · · Score: 1

    Note "intensive" purposes and "begs the question".
    It's deliberate fingernails squeaking on the blackboard.

    1. Re:I think it's a trap for grammar nazis by Myopic · · Score: 1

      Oh, yes yes of course it is intentionally bad grammar. And also yes, I am a grammar snob. I get the joke, and appreciate it, so I suggested enhancing the joke with an improper apostrophe.

  114. Backups? by Anonymous Coward · · Score: 0

    Well the solution is simply. You should be able to ask your production / systems team to just "restore" the entire live system into a spare machine. All from backup of course.
    If they cannot do it then the systems guys really do have a problem on their hands :)

    Then reproduce the error on the test system.

  115. Read only by Digital_Liberty · · Score: 1

    Modify access? Absolutely not. Read access? Yes.

    Because who is management going to run to at 3:00 in the morning when something isn't working? Not the system administrator - the developer. Let them see the logs. Let them see what files/versions/timestamps were deployed. Let them see what else is running on the box. And let them do it without giving instructions over the phone to some admin who is sharing their console over GoToMeeting or something. Or this is going to take all freaking night.

    As a side note, how many times has a developer been dragged in to troubleshoot why "their program quit working" only to find that the real problem was something like OS updates were applied without being tested, or a new virus scanner was installed, or system X was installed on the same box?

  116. In a big shop... by FatSean · · Score: 1

    The people running test environment and production environment are usually different groups. Communication needs to be clear in both directions so that the software levels are the same.

    --
    Blar.
  117. Yeah...really... by FatSean · · Score: 1

    Everything isn't a webapp/DB solution. Our networks are highly segregated for security. Who is in charge of making sure that 'different DB' has relevant and correct data in it? Who makes sure that the cloned prod image doesn't have sensitive info in it? Shops serious about security would laugh you out of the building for suggesting what have post.

    --
    Blar.