应该在他们的电脑上开发pipe理员?

在企业环境中,开发者是否应该拥有pipe理员权限? 为什么?

技术环境:

  • Windows 7的
  • Visual Studio 2008和2010
  • SQL Server

    他们应该吗? 这取决于公司。 就我个人而言,只要有一些明白的规则,我觉得没问题

    1. 作为pipe理员在您的箱子是一个特权不是一个权利。
      1. 多次捕获病毒将被正确吊销
      2. 禁用企业代理将被撤销 – AV /库存/软件部署/等
      3. 基本上,如果你做了冒险的事情,networking将被撤销
    2. 你所安装的任何工具都不能成为你的项目的依赖项,而不会在官方批准的列表中find它们。 很好地问,在部署当天不要崩溃,需要$ random_library安装在所有没有testing的服务器上
    3. 对于安装在其他地方的普通应用程序以外的任何其他支持将是最好的。 服务台和/或系统pipe理员不会花费5个小时试图debugging为什么你有DLL的冲突。

    通常我会说是的。 像debugging器这样的东西,如果不是pipe理员权限,要求相当高。 开发人员经常需要安装随机软件,通过频道可能需要几天或几周才能安装。 在那段时间里,开发人员通常都是停止工作,只花费钱,特别是如果开发人员是顾问。

    科学和艺术都在发展; 它不像“知道”我们所需要的那么简单。 如果我们已经有了答案,我们的一半工作就没有意义了。 发现正确的方法往往是迭代的,并且可能以不可预知的方式涉及多个工具。 要求中间人安装每一个(通常是高延迟),只需要find(大约一个小时),对于你的场景,“超级超级工具插件”是需要的是愚蠢的。

    虽然虚拟机是理想的,但也有很多开发工具无法在虚拟机中正常运行(甚至完全不能运行),因为它们本身就是一个虚拟机 – 而且我不是指像JVM这样的东西; 我的意思是全机emus / vms,比如设备工具箱。 兼容性正在改善。

    另外,大多数开发工具都有非常大的占用空间 – 比“常规”工具大得多(使得虚拟机托pipe比您预期的要更加痛苦),并且通常作为stream程debugging器的性质需要提升访问权限。 更不用提他们可能是GUI密集的事实; 试图在虚拟机GUI上全职运行是非常痛苦的。

    在这里performance是巨大的; 您是否认为用户在Word的每个按键之后等待3秒钟才能进行注册? 我不是在开玩笑 – 在虚拟机等开发工具可以是这么烂; 对于大多数开发目的,您需要响应能力。 中断从大脑到键盘的复杂逻辑stream程可能使得完成工作几乎是不可能的。 我讨厌这样说,但是是的:开发时间很昂贵。

    在Windows环境中,尤其是使用Microsoft开发人员产品时,开发人员需要在其计算机上拥有pipe理员权限。 如果你否认他们的这些权利,他们的工作能力将被限制,如果不能完全防止的话。

    作为一名开发人员,我将我们的特权级别放在基本用户之上,但在系统pipe理员之下。

    我有时可能需要安装一个额外的库来获得我正在开发的应用程序在生产环境中工作,也就是说,我有一个严格的规则,我开发:“对于任何需要第三方库的应用程序,在生产部署之前,应该在沙箱环境中安装库,在某些情况下,应该在应用程序开发之前安装库。“

    与我合作的系统pipe理员同意这一点,在我们两人之间,我们将积极执行这一规则,并推迟未通过“依赖性检查”的任何应用程序部署。

    为了回答你的问题,是的,开发者应该能够完全访问他们自己的机器,但是这些机器应该与应用程序最终部署的环境隔离。 在这种情况下,即使是应用程序部署也应该进行沙盒处理,直到在生产环境中部署为止。

    免责声明:我是一名开发人员。

    对我来说,这个问题(和答案)似乎是从错误的方法来攻击问题 – 也就是辩论的焦点是pipe理员想要什么,需要什么,开发者想要什么。 但是你指定我们在一个企业环境中,所以我们来看看这个方式。

    那么让我们想象一下,我们是在IT或运营总监面前,或者是谁控制我们的预算 ,然后问这些问题。

    1. 执行部门职能所需的最低特权是什么? 这是我们的基准。
    2. 授予他们更多访问权限的风险是什么? (实际的风险,不仅仅是最好/最坏的情况)
    3. 授予他们更多访问权限的真正预期成本是多less? (支持费用,修理由经验不足的pipe理员所做的无意变更等)
    4. 什么是真正的预期成本给予他们更多的访问? (生产力损失,需要IT支持来执行日常任务,由于士气等导致经验丰富的人员stream失等)

    有了这些问题的答案,你可以做出明智的决定,而不是一个充满激情的决定。

    对于您的特定环境 ,有些事情需要pipe理员权限(请参阅用户权限和Visual Studio ) – 如果他们没有这样做,那么您可以回答问题2 – 4。

    作为一名顾问,我已经看到了这个政策的两个极端,虽然总是想要pipe理员访问一台机器,但在某些情况下,这是没有意义的。 我不确定是什么原因造成的,什么是效果,但是我无一例外地看到,在开发pipe理员的情况下,每个开发人员的工作效率都比每个开发人员的生产力高出很多。

    我想你是在问错的问题,你应该问:

    一位优秀的开发人员是否会为不能在PC上给予pipe理员权限的雇主工作?

    什么人“需要”和他们所期待的往往是不一样的东西,毕竟你不需要让开发者在工作时间喝咖啡,但是如果你不…

    (确保你在访谈阶段明确自己的政策,否则,由于缺乏pipe理权限,你可能会让人们因为缺乏pipe理权限而采取那种轻视你的公司的工作 – 不要指望程序员以合乎逻辑的方式思考这种事情! )

    这实际上更多地取决于你问谁谁实际需要它。 如果你问公司的IT和风险pipe理团队,他们将会以恐怖的故事满天飞地(如果他们要给你,他们要求一个牺牲的神圣的债券,他们将不负责),开发商另一方面要求pipe理员的权利,主要是因为工作压力大,要求足够,而不必求助于服务台允许泄漏。 可悲的是,现在更多的是关于权力斗争和发挥权力的问题,那就是关于商业和生产力的需求(比如,谁能让对方跳槽呢)

    恕我直言,我所见过的最好的工作环境是两个小组分开的地方。 开发人员在森林中拥有自己的域名(IT部门控制该域名及其用户在公司其他部门可以做什么),他们都是本地pipe理员,经验丰富的人员,MCSE充当本地域pipe理员,他们有自己的testing环境并且可以使用单一的IT策略(无盗版软件)在本地局域网上做他们想要的和需要的东西。 企业IT不负责任,不支持开发人员,只执行一些高层次的公司规则(不通过防火墙的Facebook,色情或类似的,开发人员不允许混乱公司局域网),他们都有基于RSA的VPN在家工作这将他们直接在他们的局域网内。 整洁,不是吗?

    答案很可能是主观和具体的每个个人的情况下,但在大多数情况下,我会说是的。

    我想说的是,行政权对于发展过程是重要的。 考虑到使用虚拟机到沙盒的相对容易性,没有理由不能将虚拟机放在虚拟机中并保证安全。

    任何事情都会出错,你可以在几分钟之内擦拭和重build。

    非也! 通常很多正在进行的开发可能会或可能不会在虚拟环境中。 pipe理员权限有助于克服许多本地服务处理,registry项和IIS的重写。 另一方面,这取决于你对开发人员的信任程度

    作为一名开发人员,如果因为无法访问而导致某些内容无法正常工作,那就很让人沮丧。

    依靠。 作为一名开发人员,应该始终按照最小特权的原则进行操作。 例如,如果您是作为政府承包商工作,那么您可能会承担合同义务,例如, 不允许pipe理员访问。

    作为一名Java开发人员,我几乎没有必要持续在我的机器拥有pipe理员权限。 然而,当你需要按需pipe理访问时(例如,你需要把你的笔记本电脑移到不同的域中,并且你需要相应地改变你的网卡),这是合法的情况。那是我唯一真正需要的永久的,持续的pipe理员访问我的机器。

    有时你需要pipe理员访问权限,因为IT人手不足(或无能为力,或者被繁琐的手续困扰)。但是,如果你与一个有能力的IT部门合作,他们甚至可以远程安装这些东西(或者提供定制的安装程序, “pipe理员,只需点击它们,为你安装的东西。

    所以答案(再次)是 – 这取决于。 你有一个可以随时(或在合理的时间内)安装东西的IT人员? 开发人员是否真的需要它来支付他们的工作

    如果开发人员真正和合法地需要它(例如“如果没有它,我将无法做任何事情” )而不是一种方便(如“我想要安装我想要的东西” ),如果IT支持没有足够的响应(无论什么原因),那么是的,他们应该有pipe理员访问他们的机器。

    否则,不。 记住最小特权的原则,人。

    有开发者,还有开发者。 如果一个“开发人员”是一个40美元/小时的JBoss Java人编写规则引擎的规则当然不是。 如果一个“开发者”是一个350美元/小时的C / Assembly,让你的video编辑软件在GPU上尽可能快地运行,当然是的。

    对于担心安全的企业,他们会有安全人员的指令,并试图执行一个与他们的发展模式和系统一致的政策。 在Windows环境中,大多数人会告诉你,你必须拥有他们正在开发的主机的pipe理权限才能执行他们的任务。

    这不一定是真的

    您可以创build自定义策略,并让所有程序和function与系统上的开发用户协同工作。 您只需要根据所需的devise,使用组或自定义组的程序/系统目录上的自定义权限,就可以轻而易举地将其变为脏话。

    大多数公司会说开发者在开放networking上build立系统是非常危险的,因为黑客可以控制并开始编译他们自己的工具,所以通过我的专业意见来完成任务是非常值得的。

    开发者应该(理想情况下)有两个域login。

    一个拥有本地pipe理权限(用于开发工作),另一个拥有公司所有其他人的权利。 然后,他们可以用一组有代表性的权限来testing他们的工作。

    这应该会减lessItWorksOnMyMachine-itis偶尔出现的可能性…..

    我必须(显然)提供异议的声音,不仅要说“不”,而且要说“不”。 我没有问题给没有networking访问的沙盒虚拟机上的开发人员pipe理员权限。 Zypher几乎是正确的(修正粗体):

    “1.在我的盒子上做pipe理是一种特权,不是一个权利。” 这些系统是我最终负责的企业资产。 当Joe Developer安装他的微软Bob的盗版副本(“因为我需要它”),这不是他必须解释在审计之前没有被发现的。 开发人员经常认为公司规则不适用于他们。 通过给他们一个沙盒虚拟机,他们可以遵循所有其他人必须遵循的规则(因为现在只有IT可以将文件复制到系统中)。 奇怪的是,请求系统被开发人员再次使用,当乔开发人员破坏他的开发箱时,天空不再下降 – 他只是要求一个新的(或如果他被要求备份恢复)

    Denny先生提到,开发人员在等待安装应用程序时花了钱,答:你好…我的时间通常和Joe Developer一样有价值(通常更多的是因为我保留了现有的crapware运行 – 我真的不得不提及帮助Joe开发人员debugging他最后的杰作的所有时间),以及B.当开发人员预算过高时,因为他们正在等待一个应用程序,并试图责怪它,我会说:

    你缺乏编写软件的计划是不是我的责任,我们有一套标准的工具,如果这个工具箱错过了你需要的东西,你应该有你的请求来获得更多的工具,而不是试图让我跳通过箍来为你得到它,因为你的最后期限是明天。

    说完这一切,locking开发者的桌面就太臭了,如果你能清除那些认为Thye有权观看其baywatch集合并且被激怒学习的蹩脚开发者,他们不能安装babewatch播放器来观看它们(“但它是开源“),你可能会放松。 但是,对于每个出色的开发人员来说,他们都能“获得”,而另外还有10个公司要为这个2亿美元的垂直应用程序而雇用,而这就是您需要注意的问题。

    编辑:这是很有可能的,我已经接触到的开发人员exception沉闷(轮询当前的作物只有1听说过的计算器,给一定程度的基准)。 我开始的观点是“你需要做什么公司付给你什么”。 如果你需要pipe理员权限,你可以得到他们,但是你不应该和他们合作,如果我可以坦率地给你一个箱子,我不在乎你对此做了什么,那么这个工作就可以完成,那么我们都很好。