开发人员机器证明

时间:2020-03-06 14:56:11  来源:igfitidea点击:

寻找好的技术为开发人员证明"比普通机器更好"的合理性。我工作的公司为每个人都购买了相同的,功率不足500美元的系统,并且正在寻找证明ROI或者使用理由的方法。抱歉,我没有在最初的问题中这么说,堆栈是VS 2008,SQL 2005/2008. 根据职责,我们是SQL管理员以及Web / Winform / WebService开发人员。因此,同时打开2个VS会话和至少一个SQL会话是非常典型的。

解决方案

找出我们在编辑->构建->调试周期中花费的时间,然后在一年的时间中总计。然后猜测(在合理的通货膨胀的情况下)一台好的计算机会对这个数字产生什么影响。将时间改进乘以每小时费率,并将其作为业务案例进行介绍。

一个不错的是:

每个编译的额外时间X每小时编译的数量X工作日的X小时X月份的X天X开发人员的数量

这突显了我们浪费了(昂贵的)时间等待机器完成。我们可以对测试运行等执行相同的操作...

至少应该在尽可能接近要发布到的环境的系统上进行测试。大多数开发人员至少在其台式机上进行了一些测试,因此这没有比实际环境差的原因。

如果生活环境是一个动力不足的$ 500系统,那么那就是环境。也许我们应该为此工作?很难说我们还应该提出其他什么内容,却不知道我们正在从事哪种发展。应用?服务器?解释性语言还是编译语言?

我的说法是"提高程序员生产力的答案不是让每个人都慢机器"

自愿参加尽可能多的狗和小马表演(向VP等重要人物炫耀我们所做的工作的机会)。在某些时候,机器会停顿下来。他们会问为什么一切都花那么长时间。说明计算机速度缓慢。还要指出,我们将因此而面临错过最后期限的风险。指出硬盘驱动器如何永不停止运转。

计算数字,指出时间与现在升级的一次性成本相比有多昂贵。

Danimal那里有一个很好的公式。我们可能会在该业务案例中包含一张电子表格,其中显示了与我们公司的"普通"开发人员所需的需求和需求相比的基础机器。例如Ram,CPU速度,预安装的应用程序,GPU等。

不要忘记在请求中包括多个显示设备:第二个屏幕上有一个代码,另一个上有调试器(例如)是非常宝贵的。或者在一个屏幕中进行编码,而在另一屏幕中进行语言参考。

我们是否有完成构建的中央服务器?如果是这样,那么争辩"比正常情况下更大"的开发工作站可能会很难。

但是,能够将构建时间减少2-3倍是购买更大硬件的合乎逻辑的理由。

太太(OTOH),如果一家公司担心自己要花多少钱,以至于只能得到沃尔玛特惠(这对于"正常"工作(打字,电子邮件,日程安排,演示文稿)很好),那么他们将害怕-而不是像我们这样的实际技术人员,他们实际上想完成工作,并且工作要比行政助理复杂得多。

除非我们雇用不称职的开发人员,或者开发人员提出了极其荒谬的要求,否则投资回报率几乎总是比工作站的成本高几个数量级。无论如何,即使是配备30英寸显示器的高性能机器,也要比好开发商的薪水便宜。无论如何,用一些有光泽的小玩意讨好开发商很容易。如果我们不这样做,那么隔壁的公司会的!

我们从开发人员那里获得的一切都通过他或者她的工具进行传播。这些工具中的丝毫不足之处将在这些工具的生命周期中恶化一千次(预计必须在两年内对其进行升级)。这些不足会破坏开发人员的生产力,甚至可能会产生很多挫败感。我们为什么要跳过对开发人员最重要的资源?我敢打赌,如果我们深入观察,会发现公司其他地方的浪费更大。

部分是由于机器的生产率和响应能力,对于开发人员而言,他们否则会在编译期间玩椅子游戏;也是因为开发人员要在生产服务器外安装最大的,耗费资源的应用程序。

Visual Studio占用大量磁盘,RAM和大量CPU。 Eclipse(有人告诉我)是一样的。任何开发者为什么要做有用的事情,也将具有源代码控制,生产系统的开发版本(例如,要开发的本地数据库)等。所有这些应用程序也占用大量的内存和CPU。

除非我们要在某处的服务器上进行远程开发,否则我们将需要大量的资源来仅安装他们希望使用的庞大应用程序的一半!

表示为代码:

AnnualSavings := DeveloperCostPerHour * (AnnualWaitHours(OldPC) - AnnualWaitHours(NewPC));

if AnnualSavings > (MachineCost(NewPC) - MachineCost(OldPC)) then
  ShowMessage('Time to pony up for a new machine!!')
else
  ShowMessage('Sorry bub, gotta keep the old clunker.');

我可以根据自己的经验做出贡献,为什么更强大的机器会有所帮助:

  • 在不同的配置下测试代码。这将需要运行一些虚拟化解决方案。这样的解决方案需要坚固的机器。
  • 运行沙箱。开发的应用程序很多时候都需要DB,Web服务器或者其他补充产品。同样,此类软件可能需要坚固的机器。
  • 并行开发。有时,运行开发环境的多个实例可能非常有帮助。为此,请乘以单个实例的系统要求。

告诉他们我们将支付他们的廉价机器和所需机器之间的差额。如果我们确信它将大大提高生产力,那么我们将很容易从绩效奖金/薪金增长中赚回钱。

同样,如果我们把钱放在嘴边,那么他们很可能不会继续付款,因为这会在会计中引起太多问题。

公司在购买机器上实现标准化的原因之一是,避免了当员工A得到一件东西而员工B得到更好的东西时发生的争吵。如果我们为此付费,那么没有人会抱怨我们有一台更好的PC。

如果他们仍然拒绝,那么至少我们知道自己的立场。他们不会认真对待我们,也不会认真对待开发人员。去除简历上的灰尘。

是的,我听到了你的声音。

对我来说,基本的理由是一样的:机器速度慢->机器速度慢;更快的机器->更快的发展。

如果老板过于专注于数字,那么微软也无济于事。

Visual Studio安装要求:

System Requirements for Installing
  Visual Studio 2005
  
  Processor 
  
  Minimum: 600 megahertz (MHz) Pentium
  processor
  
  Recommended:
  1 gigahertz (GHz) Pentium processor
  
  RAM
  
  Minimum:
  192 megabytes (MB)
  
  Recommended:
  256 MB

在硬件上便宜是愚蠢的。与硬件相比,人们的寻找,雇用和保留成本更高。最小和最大硬件之间的成本差异通常相当于程序员数周的薪水。我们应该为开发人员提供他们选择的高端计算机和至少2个屏幕。如果公司没有为我们(以及他们)提供成功的工具,那么它们就不值得我们花时间。

如果我们是薪水高昂的无人机,可以在疯狂的时间内工作,并完成要求我们完成的所有工作,请不要浪费时间从萝卜中榨血。该公司正在剥削我们,我们允许,并且没有任何理由改变他们。或者花费自己的钱(每天为自己多花些时间),或者以某种方式使当前局势在楼上引起痛苦,或者忍受。

另一方面,如果我们正在工作合理的小时数或者按小时支付工资,则应该能够通过减少小时数(=降低成本)或者提高生产率(=加快工作速度)来证明请求的合理性。我们需要确定哪个组织更感兴趣,并以这些方式提出请求。

确定(并尽可能量化)动力不足的机器如何阻碍生产率并降低速度。然后将其应用于减少了相同工作时间的时间,或者应用于同时完成的更多工作。

祝你好运!

我猜想我们可能不在像我这样的软件公司中工作,我们可能是制造/硬件公司中的软件小组的一员,或者我们可能是金融或者教育机构等的一部分?

对我而言,与这类公司合作/与之合作,通常不是该公司拒绝拒绝人们完成工作所需的工具,而是不理解"为什么"开发人员比销售人员需要更好的机器的问题。

也许尝试使用对持有支票簿的人有意义的类比。当麦当劳就在马路对面时,为什么销售人员会带客户去牛排馆?当沃尔玛出售Buffalo品牌的螺丝起子时,为什么机械师会花更多的钱购买Snap-On工具? (当然,我家里有一些布法罗螺丝刀,但我不是机械师)

这只是荒谬的事情,开发人员的聘用和付款非常昂贵,硬件非常便宜。

在服务器机房中,为每个人提供一台像样的机器以及一台性能良好的服务器(应该可以使用8G内存),这是我们应该期望的最低要求。

否则,他们将如何能够一次运行大量虚拟机?

严格来说,只要他们有一个不错的开发服务器,他们的台式机就没什么大不了的(我假设这里不是游戏开发等)。但是,两个屏幕是一个好主意。