欠债还钱,欠技术债,可能还得公司破产。。。

百家 作者:差评 2018-04-29 16:40:32


欠下的

总该还



差评君最近想买个新电视。


这样才能配得上我的 PS4 Pro 的 4K HDR 游戏画质。


但是我想了半年了。。。


为啥呢?


因为每个月,还了信用卡以后,就发现赚的钱不见了。。。


这种程度的债务带来的痛苦,想必很多人都体会过,更别提那些贷款创业然后公司运营不善的老板们了。。。


但是,你有没有听说过另一种形式的债,会让程序员和科技公司抓狂。


这种债务,欠的不是钱,但是值不少钱。


它叫技术债。


技术债的意思是就是做技术开发的时候欠下的债。


不过这么解释好像等于没说。。。


差评君还是举个例子吧。


假设差评君想要搬运一堆石头,但是身为一个优雅的人,不愿意徒手去干这活儿。( 放在软件开发里,往往是因为需求不适合人来做 )


于是叫了一帮开发弟兄们,来给我解决一下这个问题。


小黑胖觉得可以做个推车,大家也认同这个方案,于是就这么定了。

( 灵魂画手差评君的新系列 )


于是,世超做轮子,小黑胖做车身,小二做纤绳。


这个过程,和技术开发类似,大家分头做一个个功能,然后组合。


差评君呢?


做老大的自然要在旁边看着才叫老大嘛。。。


让我们假设当时技术比较落后,没有办法生产比较圆的东西,或者说轮子在这之前都没被发明过,大家也不知道该做成圆的还是方的,就用方的轮子了。


颠着颠着也还能用。。。


于是就这么凑合着了。


例子里场景比较荒唐,但在早期技术开发的时候,确实有因为技术受限做不出完美方案的情况出现,只好给某个部分做妥协。( 也有可能是设计的时候没想到,或者是让项目尽快完成 )


车子造好了,大家费了很大的劲,开始装石头进去。


拖着拖着,发现这轮子不光会颠,碰到软的地面还会陷进去,总而言之用是能用,但是不好用。


这时候,负责开发轮子的世超拿着两个圆形的东西跑过来,说找到更好的轮子了!


但是,装上轮子需要停下手头的活儿,并且还得拆装小车,这些事儿都要费很多功夫,更何况万一这新轮子的轴不搭还得重做呢。。。


在现实的技术开发中,这个所谓 “ 换轮子 ” 需要费的精力和金钱往往是很惊人的,因此很多时候会选择妥协地用着不太完美的方案。


咱们决定继续用方轮子的方案。


但速度不快的确是个问题,于是决定给小车做一次升级:给它安个推进器。


但这么搞发现效果不太好,因为速度太快,方轮子磕地面会越发剧烈。


这个本来很棒的升级方案,因为之前的一次妥协,变得不太好了。


但好在能勉强解决,就是把推进器做成斜向上的,这样小车就会稍微往上弹起,轮子变得不太容易磕地面了。


现实中,一个技术产品需要往后迭代,增加功能时,有时候会受老功能里不太完美的代码的影响,为了解决它往往需要在做新功能时也妥协一部分。


然后,因为推进器的设计,又有新的问题出现了。


因为这么移动时,需要稍稍的 “ 蹦 ” 起来一些,导致这个小车太晃了,于是咱又不得不给小车加个盖子防止石头掉出来。


这就不光是妥协的问题了,我们甚至需要做一些工作,专门去维护因为妥协而造成的问题。


随后,因为盖子的问题,咱们得做扣子不让盖子乱跑,轮子老磕地面还容易坏,石头晃来晃去也让车子很不稳定,总而言之问题越来越多,补都补不过来。


最后,咱们终于觉得换个轮子的重要性不可忽视了,但是这时候再看看,拆了重做的工作量更多了。


以上,大概就是欠下技术债的样子了。



为什么要说它是债呢?


因为真的很形象:


一开始,我们用方形轮子这种糟糕的设计时,就好像是欠下了一笔债。


而一旦小车运行起来以后,要还债就得付出停车和修改的代价,这多付的地方就是利息了。。。


再然后,当我们想要升级的时候,因为方轮子的关系,花了额外的时间精力去解决推进器适配问题,还做了妥协,这就好比是再欠一笔来填原来的利息。


因为推进器也做了妥协,产生出了新的问题,利滚利了。。。


这时候终于忍不住想换轮子,想还债了,回头看看,发现债务和利息加起来变得非常恐怖。



在技术开发领域,这些利息可能是:


本来添加个很简单的新功能,但是却花很大功夫来磨合原有的项目。


一些怎么都搞不定的错误,甚至得专门花时间金钱来处理


而还债呢:


当一个项目在原有基础上添了很多东西以后,你要 “ 还债 ” 几乎等于重做。


这就好比你造大楼,地基打歪了,你再想修的话得把上面的建筑一起敲了再搞。


这个时候,你说还吧,太昂贵了。。。


你想想,现在程序员工资这么高,工作内容却是让他们把原来的东西重新写一遍,你说昂贵不昂贵?


不还呢,哪天利息滚到你想锤蛋自尽。。。


这种例子在各位熟悉的大型科技公司身上很常见。


比如说微软,当年给他们的开发工具 Visual Studio 做了个网络服务 Visual Studio Online,但因为以前的系统设计失误,让他们这个新功能宕机了 7 个小时。


Facebook 也有个技术债经历。


了解开发的差友们可能知道,Facebook 是用 PHP 语言写的。


他们当年就有这样一笔写在在 PHP 代码里的技术债,滚到根本还不起了。


所以干脆发明了一个虚拟机,叫 HHVM,因为他们最后发现修复那个漏洞的成本还不如发明另一套新工具。。。


现在,你理解技术债有多麻烦了吧?


更麻烦的是,它有一点和贷款不一样,就是很多时候直到问题出现才能意识到自己欠了技术债,比如说设计失误。


但是这不一定是个绝对要规避的东西,有时候,一个项目拖不到更好的方案时,需要贷这样一笔技术债来加速一下进程,尽快上线让它运转起来也是有必要的。


在知情的情况下,要不要欠技术债,欠下以后怎么还,多久还,也是一个开发战略,做技术开发绝对不是蒙头写代码那么简单~


但是有一点是可以确定的,就是欠债的人不会喜欢利息,而且还的时候肯定有些痛苦。


就和我每个月还信用卡一样。。。



“ 第二天别忘了上班哦 ”

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接