为什么开发者经常变得沮丧而企业却总说找不到人才(这一切都归结为经济学)

原文链接  【翻译自Medium】

一个成功的软件项目必须具有三个要素:时间,金钱和产品质量。


时间就是资源。对于任何项目来说都是如此。因为它是一个有限
的资源,获得更多时间的唯一方法就是等待。

金钱也是一项资源。没钱你招不到任何人。(包括你自己)

质量也被称为内部质量。 这是确保软件能够抵御变更而不消耗更多资源所必需的软件的特征。 没有质量,就无法实现长期可持续发展。

 保证质量是软件工程中最困难的事情。


    如上图所示,一个项目开始的时候,金钱,时间,质量占有大概相同的比重.

一年前,我写了关于项目进化趋势的模型。绿地软件项目( 类比是在绿地上建设,不需要在现有建筑物或基础设施的限制下工作,对软件工程来说的话例如公共方法,工具类,统一处理等都还没有)的发布状态趋向于低质量。低质量意味着这些代码随后要一直被高级开发工程师来修改。随着时间的流逝,这些开发者会非常沮丧,因为他们要一而再再而三的修改其他人的错误。

为什么会这样呢?

项目开始的时候,我们的钱是有限的,因此更短的开发时间就成了必然,而且如果开发时间太长,我们可能丢掉市场,输掉竞争。根据经济规律,如果一个项目在开始的时侯,虽然钱和时间都不多,但仍然重视质量,他们大概率会用尽资源并且失败。

由于初期资源有限(牺牲质量),他们不得不雇佣初级开发,相比于在保证质量上的投入,更便宜。一旦他们上线了有了钱了,他们就可以聘请更有经验和昂贵的高级开发人。

项目刚开始时更趋向于下图:

一个项目跳过开发阶段,进入市场之后,我们可以叫他们公司

这时,他们有足够多的收入来保证软件运行和挣钱。软件项目很容易扩展到能挣钱的水平,即使它的设计很糟糕。你只需要更多的用户和电。然而如果它是低质量的,改进和新功能将开始消耗巨大的时间和金钱。

随着时间的流逝,由于软件熵的增加(原则上,热力学第二定律指出封闭系统的无序可以不减少,只能保持不变或增加。 衡量标准是熵。 这个定律似乎也适用于软件系统; 随着系统的修改,其无序或熵趋于增加。 这被称为软件熵。)保证质量变得非常困难。这时公司不得不雇佣更贵的开发人员并且花费更长的时间来修复问题。预料结果如下图

然而,大多数的公司都达不到这一预期在他们有了更多的资源之后。实际上为了增加质量所要花费的时间和金钱可能要比他们理解的要高几个数量级,而且有时候增加质量并不能达到经济效益。

当达到公司的阶段,需要花费更多的时间和金钱来保证质量,但是这个时间和金钱可能非常非常巨大。低质量代码会在项目中引入非常多的麻烦,而且这一现象不仅存在于小公司。

以PayPal为例。在2011年,PayPal花费了6周时间才使复制文本可以改变 生效。

这一现实令人沮丧。

高级开发人员往往会遭遇倦怠,因为他们觉得除了建立新事物之外,他们总是被雇用来解决别人的错误。 这可能会导致其中一些人离开软件行业,从而减少整体人才库。

另一方面,一直都有新的开发者加入。他们被有经验的开发者所得到报酬而闪瞎狗眼,他们想要成为其中的一员。

但是为了获得经验你需要有历练。

你需要寻找那些更便宜和更快的机会,否则你就得不到想要的经验。

多年以后,一旦初级开发成为了高级开发,他们也开始被雇佣去修改别人的代码。那些没有成为高级开发的人,则继续写烂代码,使系统演进需要更多的时间和金钱。他们被称为20年相同经验开发者。

我把下图称为开发者历程:

在上图你可以看到一个慢慢变得不爽的高级工程师的经历阶段。

作为新开发者,你知道写软件可以很快,你只需要记住语法结构。

你开始写烂代码,在绿地(参考前文解释)项目上各种冲刺,并不回去考虑这些代码的长期影响。

一旦你有了更多的经验,你开始看到以前没有看到的东西。你意识到以前写的代码简直不能看,但过去写的代码你也改不了了,过去形成的习惯也并不是那么容易就改变。

你开始写更好的代码,了解长期影响。code不再只是语法层面上的了。

现在你意识到你必须修改其他人的代码。你不回去为一个不重要的绿地项目工作,现在你有更多经验,你将在已经被知道是重要的项目组工作。

一旦你明白技术不能使你去构建令人有趣的东西,而是要一直修改其他人的错误,你会非常不爽。

这时,你成为了一个知道事情是如何运转的开发者。你开始接收这一事实,成为顾问,包工头,或离开软件产业。

不同的人有不同的选择。

只要经济系统不改变,这个问题就一直存在。

当然,影响因素还有很多。

例如企业招人系统有问题,花了很多钱顾了一个并没有经验的开发者。那时间,金钱在被消耗,质量却更低了。

例如开发者行为有问题,喜欢英雄主义,喜欢发飙,这些人会影响团队文化,造成其他问题。

好吧,我们乐观一点,假使上述两个情况都没有,根本原因仍然的不到解决,至少目前还没有人有办法解决它。

为了幸存下来,软件牺牲质量换来金钱和时间。为了一直存在,公司花费巨大时间和金钱来保证质量。

由于传统经济体系的运作方式,在未来的许多年里,你会一遍又一遍地看到这种恶性循环。

你可以做的是接受它并使更多的人去了解它。虽然它看上去是一个无解的问题。

历史告诉我们,解决一个不可能的问题通常来自意想不到的地方。 大多数时候,从不同的角度看待问题并找到可能导致巨大影响的杠杆点。

软件为一切提供动力,但我们并没有给予它应有的关注。

你应该知道的是答案不会只是因为问题的存在而出现。

首先,你要做的就是更好的认识它。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值