我在一家财富 500 强公司担任研发部门的 Windows 软件开发人员。公司 IT 部门目前正在为全公司部署 Win7 做准备,作为其中的一部分,他们希望完全锁定所有设备(包括我们的开发工作站)的管理员权限。
我的任务是与他们合作,使过渡尽可能顺利......我很幸运......
我想知道是否有任何已出版或其他备受推崇的资源可供我使用:
- 弄清楚在哪里划一条线
- 支持我的立场。
就我个人而言,我认为我们是研发部门,我们的工作就是做一些“开箱即用”的事情。因此我们需要管理员权限。但是,我的职业生涯是从 Windows 管理员开始的,我知道他们的目标以及他们需要实现的目标。我需要弄清楚并支持一种构建环境的方法,让 IT 和研发部门都能适应它并继续高效地完成他们的工作。
具有本地管理员权限的开发虚拟机肯定会有很大帮助,但并非在所有情况下都适用,因为我们要与大量自定义硬件进行交互。
推动这些变革的 CIO 绝对是“纯 IT”类型的人,对开发过程的了解有限,因此我需要一些适合与这样的人分享的参考资料。
我并不想收集太多个人观点(其中很多已经在这里分享过了:开发人员应该是其计算机的管理员吗?),我确实需要白皮书、杂志文章、学术著作等,以便向高层管理人员提出有力的论据。
谢谢!
PS 这是一篇半交叉帖子:开发人员的 Windows 权限?在 Stack Overflow 上,但由于答案可能在于两个社区之间的互动,所以我认为这是合适的。
答案1
我在这里看到了一些很好的妥协:
让 IT 在核心物理机上按照自己的方式行事,但让他们的部门为更好的开发人员硬件买单,这些硬件具有大量 RAM(最低 6GB,最好是 8GB 以上)和一些额外的操作系统许可证(或好的 MSDN 订阅),这样您就可以拥有在虚拟机中完成大部分工作所需的能力。
您需要足够强大的硬件,这样您的开发、数据库、网络和测试客户端角色就可以同时在各自的虚拟机中运行,每个角色平均有 2GB 的 RAM(即:数据库可能需要更多,测试客户端可能需要更少)。如果您已经在虚拟机中完成了大部分工作,那么这是理所当然的。现在您可以拥有所需的所有管理权限,但这些权限只在虚拟机内部。否则,物理主机将受限于 IT 规范。
唯一不起作用的情况是,如果你从事的是低级硬件工程和开发,或者你为这样的公司工作,该公司仍有开发人员在运行 Visual Studio 2003,而且八年后仍然不会支付升级费用(而且主要与账单有关)。
我喜欢这个选项,因为它将讨论变成了成本问题。IT 对以管理员身份运行的抱怨更多是出于支持成本而非其他地方的业务系统安全性考虑;以管理员身份在本地运行的用户可能会破坏系统,但问题仍然只在本地。安全问题确实存在(比如您的帐户被盗用,您可以访问敏感数据),但大多数情况下,修复仍然只是问题或重新映像您的机器。
最重要的是,如果您可以证明无管理员选项也有额外成本,那么显而易见的解决方案就是计算数字并查看哪个成本更高(提示:IT 几乎总是赢得这一轮。他们必须擅长处理诸如调整 ROI 数字之类的事情 ;) )。快速的机器也往往会让开发人员感到高兴;他们因放弃管理员访问权限而获得一些回报,而您则获得了更高效、更快乐(更少流失)的员工。
为开发人员提供两个帐户,一个具有管理员访问权限,另一个没有。他们的 Exchange 电子邮件和其他集成身份验证系统仅适用于没有管理员访问权限的帐户,因此默认情况下他们需要以没有管理员访问权限的方式登录。要使用额外的权限,他们必须注销并重新登录另一个帐户。IT 可以设置身份验证审核,这样他们就会知道您何时以及以管理员身份登录了多长时间,并在以后发现滥用行为。
在我看来,这种方法效果并不好,因为有时你确实需要以管理员身份花费几乎一整天或一整周的时间来处理诸如解决某些特定难题之类的事情。这也意味着 IT 需要进行额外的管理,因为他们必须处理每个开发人员的两个帐户。
归根结底,在核心系统上默认以管理员身份运行是个坏主意,即使是在带 UAC 的 Win7 下,甚至对于开发人员也是如此。以标准用户身份运行对开发人员来说也是件好事,因为这样可以减少只影响非管理员用户的 bug 的出现。但有时管理员访问权限对开发人员来说很重要。一个能同时识别这个问题的两面性的方案很重要。
答案2
这是一个非常好的想法,我将其作为答案发布。这不是唯一的答案,但我认为对于相当广泛的情况来说,它可能是有效的答案。
对于测试定制硬件的问题,请准备一个小型物理测试实验室,没有网络访问权限(或根据测试需要限制/锁定)。每个人都有本地管理员,并且每晚都会将机器重新映像到已知标准。除非您的所有开发人员都在同时测试硬件,否则共享实验室应该可以很好地工作。