在软件行业中,最普遍的虚假经济状况是最糟糕的(即节省金钱的方法最终花费的成本要大于储蓄所造成的费用),您如何与之抗衡?
在软件行业中,最普遍的虚假经济状况是最糟糕的(即节省金钱的方法最终花费的成本要大于储蓄所造成的费用),您如何与之抗衡?
Answers:
即“只要快点做,我们稍后再重构”。首先,因为我还没有看到有人从事这种行为,实际上后来才进行重构。其次,因为做事快而不是好事,所以增加将来的功能或解决将来的bug变得更加困难,从长远来看,最终您会浪费时间。
可悲的是,许多人仍然认为这可以节省开发人员的时间,让他们快速地执行某些操作。我想这是可能的,但是我还没有在实践中看到它。
雇用2个便宜的开发人员而不是1个真的很棒。(相同的价格)
我的示例与NimChimpsky的示例完全相反,即:
试图开发自己可以买到的东西。
通常,这是由于无法实际检查市场以查看是否已经存在可以解决问题的东西而导致的。那些喜欢在进行任何研究之前先“深入研究”编码的开发人员,以及那些没有考虑那段时间=金钱的项目经理,可能会使情况更加复杂。
我在我的领域中看到的最常见的例子之一是Web开发,这是试图开发内部CMS系统的公司。这些功能一开始都是很小的,但是随着功能的不断完善,它们很快就会变得肿,失去控制,而一直以来,都有大量的免费产品和框架可供使用,它们会更适合。
没有专用于项目管理的资源
我遇到过几次与几个程序员签约的经历,而一个本来就很忙的人应该管理这个项目,但实际上他忙于其他任务,因此该项目从未真正获得动力。程序员制作了“原型”之类的东西,但是没有铅,很多东西围成一圈看起来很忙。
新程序员的不良设备
我曾经遇到过一家公司,当时的政策是“新程序员必须在具有小屏幕的旧PC上工作,直到证明自己有价值为止”。毫不奇怪,这样的政策会导致否定选择,从而淘汰了总是有权选择在更为理智的环境中工作的优秀人才。
我们可以通过让程序员兼做测试员/技术作家来节省金钱
如果您为测试人员/技术作家的工作支付程序员的薪水,那么您的工作就是在浪费金钱,并且比从事这项工作的人所得到的工作质量低。另外,当程序员面临紧迫的最后期限时,很可能会放弃测试或编写文档来满足要求。
顺便说一句:开发人员总是在紧迫的最后期限之前。
研究/读取/编写与产品开发无关的代码是浪费资源。
一些程序员甚至经理都相信这一点。通常,他们只是基于头脑中的知识进行编程,并在遇到问题时进行研究并寻找答案。他们不会持续不断地主动提高自己的知识。我认为,我们应该始终保持最新状态,我们收集的知识将对我们解决现有和将来的问题有用。当然,您必须明智地分配时间。
这也与Dan的答案类似。有些管理人员只是希望开发人员根据需求快速投入并开发产品,而无需研究市场上现有的产品。
在许多情况下,离岸业务要花更多的钱。在我的公司中,很难获得新员工,我们被迫大力外包。也很难得到现场承包商;他们应该维持的海上与陆地比例为3:1。因此,许多团队只雇用了十几个离岸人员,几乎根本不使用它们,这样他们就可以得到4个现场承包商。
长时间的反馈循环!
它发生在每个人身上:您构建了您认为很棒的东西,事实证明您错了。那不是问题。问题是您花了多长时间才发现应该停止。
在较高的级别上,您会看到发行周期较长的问题。如果您在没有反馈的情况下建设了一年,那么您就整整一年都在赌博。释放的次数越多,赌博越少,赌博就越好。
但它也发生在最低级别。作为开发人员,我真的很喜欢频繁的代码审查(或者更好的是,配对编程),因为它限制了我可以继续做一些愚蠢的事情的时间,直到有人说:“嘿,有一种更简单的方法!” 出于同样的原因,我希望我的单元测试能够快速且频繁地运行,因此我可以在bug增长之前对其进行捕获和杀死。
一旦开始注意到短反馈循环的重要性,您将在各处看到它。例如,OODA循环的军事概念。
不是我自己的轶事,但我确实听说过一家商店停止向开发商提供免费咖啡,而是告诉他们,只要他们想买咖啡,他们都可以自由地步行到最近的咖啡店(大约十分钟)单程)并购买一些。
虚假经济的定义差不多。
提供单屏工作站,因为第二台显示器过于昂贵。即使每年仅节省一个小时的工作,第二个屏幕仍然是不错的投资。我肯定知道我的工作为我节省了很多很多小时的工作。
多监视器设置可以使几乎所有任务变得更高效,而不仅仅是开发任务。三台显示器甚至比两台更好,但是每增加一个屏幕,效果就会变得不太明显。
多显示器设置:
顾问每小时花费超过150美元时,为顾问提供的最便宜的硬件。
从角度来看,更好的硬件至少可以使每天的工作效率提高30分钟。这将使30分钟*每月工作20天=每月600分钟= 10小时/月>超过一天的工作= 10小时* 150 $ /小时= 1500 $
现在,如果顾问拥有1500美元的计算机,他/她的工作效率会更高吗?会减少顾问的烦恼吗?
现在的问题似乎是有两个预算,一个预算用于顾问,另一个预算用于PC硬件。
几个月的工作可以节省计划的时间
(没有在计划上投入足够的时间)
我怀疑最普遍的是经理们根本没有向开发人员提供他们有效完成工作所需的工具。
基本上,在Joel检验上是第9点。
不幸的是,“将(足够的)尸体扔到问题上”可能仍在某些地方使用。 尽管有些人需要经验才能学习本课程,但《布鲁克法则》的确与《神话人月》相反。通常,这不是我能阻止的事情,因为管理层可能会相信关于增加人员而不必为此付出代价的虚假陈述。
日常会议:
(meeting duration in hours) x (Y team members) x (average salary per hour) = ...
购买现成的软件,而不是内部开发。
我有企业规模管理系统的经验,主要关注于人力资源和生物实验室。
现成的解决方案成本为50万到10万英镑,需要进一步开发和定制才能满足业务需求。
内部开发的解决方案花了(<6)个月的时间开发,并与其他项目并行进行,并使用了已经雇用的开发人员。
我从公共部门开始运作并运行内部开发的LIMS(实验室信息管理系统),然后到大型国际制药公司,该解决方案的实施已经花费了一年多的时间,而且还没有完成。
(已经雇用了六个月的开发人员并行从事其他项目。大约1万。这不包括与现有解决方案相关的支持费用)。重点是实际上正在使用内部开发的系统!因此,您将获得与此相关的增加的成本收益,而我无法计算。
我同意基本的网站等等,为什么要自己开发。但是对于任何大型复杂系统,如果您已经具备内部技能,那么我会自己构建。
当开源替代方案更好且免费时,购买昂贵的现货产品。
多少公司使用git?有多少公司使用一些糟糕的企业版本控制?
是的,这使找到程序员来维护代码变得更加容易,但是,这使找到不仅仅学习最新术语的优秀程序员变得更加困难。是的,它使单个位的代码更易于理解,但也使其与2x4一样僵硬,并增加了需要理解的代码量。是的,它得到了一家大型公司的支持,但表示大型公司的创新是缓慢而官僚的。
不良的项目经理/团队负责人。
由于一个无能的人有权破坏一群人的工作。最后,如果没有高层管理人员(项目/团队负责人)的决定,该项目将做得更好。
决定“立即执行,稍后再重构”。
缺少用户要求
设计软件产品的一个重要而困难的步骤是确定客户的实际需求。
信不信由你,有时这部分丢失或已过时。涉及成本的是,它创建了最终用户从未要求的功能。
如果使用不当,以下所有内容可能很糟糕
内部软件与内部软件
符合ISO 9001(经济性-如果产品质量下降,可降低MSS损失风险)
开发/质量检查外包
开发/构建/发布/支持程序