技术债务(母鸡的遭遇)(转)

技术债务,是指匆忙的实现一个功能,却对现有的程序库造成了破坏(在实现的过程中污染了代码库的设计),这对于一些项目经理/客户来说就像是天书奇谈。也许他们是明白的,只是不愿意承认罢了,我估计是这样的。不管怎样,我想起来一个小故事,当下次遇到这种情况,需要向他们解释增加某些新功能的代价时,也可用讲这个故事给他们听。

一个农夫有3只母鸡。每只母鸡每天下一个蛋。农夫跟当地的一个食品店老板做生意。食品店老板每天从农夫那里买2给鸡蛋放在店里出售。一切都很好,直到有一天,食品店老板出现在农夫家里:

食品店老板: 哎呀,今天我需要一些鸡肉。

农夫: 鸡肉?你和我的生意里可不包括这些。

食品店老板: 我知道。但我真的需要一些鸡肉。我计划要做一个B2S(S是胃的缩写)模式的PaaS(P是肉禽的缩写)平台。

农夫: 什么?

食品店老板: 非常重要的东西。你可以提供我一些鸡肉吗?

农夫: 这样呀,事情不是那么容易办到 — 我要孵化鸡蛋,等小鸡长大了才能给你…少说也要一个月吧。

食品店老板: 一个月?太久了…我以为你现在就能给我呢。

农夫: 时间有自己的脚步,你必须耐心一点等。

食品店老板: 可是,为什么你不能在现有的母鸡中杀一个呢?这样一来,我有了鸡肉,你每天还能产两个蛋。这就够了,不是吗?

农夫: 可是,我不觉得这是一个好主意。这会把我推向一个没有回旋余地的境况,万一剩下的鸡中有一只突然出了什么意外怎么办。

食品店老板: 放心啦,不会发生那样的事的…我真的非常非常需要鸡肉!杀一只鸡吧!

农夫: 那好吧,我想我可以…

于是,农夫拿起一把刀,把他的一只母鸡送入了天堂。食品店老板得到了他的鸡肉,返回了食品店。

一周后,食品店老板又一次来到了农夫家里:

食品店老板: 你好,我来了!

农夫: 你好,有什么事?

食品店老板: 你听我说 — 你的鸡肉好极了。事实上,它是如此的鲜美,卖的如此的好,你必须要再给我一只鸡。最迟明天早上。

农夫: 这是不可能的事。如果我要再杀一只鸡给你,我就没法每天提供你两个鸡蛋了。

食品店老板: 哦,别那么紧张!客户需要鸡肉,我已经答应客户明天早上提供给他们了…

农夫: 不行,绝对不能这么干。如果我这么做,我就履行不了我和你的协议了,你知道吗?如果我这么做,我就没法提供你足够的鸡蛋了。

食品店老板: 可是我真的真的需要鸡肉!明天早上之前!否则客户会发飙的,地球将会塌陷,世界末日将会到来!给我一只鸡吧,现在!

农夫: 那好吧,如果你非要这么不顾后果的想要,那就拿去吧!但是,从现在开始,鸡蛋我是没法提供你了,明白?

食品店老板: 当然,当然。但我相信是个很聪明的人,我猜你能找到方法解决这个问题。再见!

食品店老板离开回到了店里。

第二天:

食品店老板: 嗨,鸡蛋呢?

农夫: 你什么意思?

食品店老板: 鸡蛋。你只给了我一个鸡蛋。发生了什么事?

农夫: 发生了什么事?我有3只鸡,你拿走了两只。现在就剩下一只。一只鸡,一个鸡蛋。我认为我解释的已经很清楚了。

食品店老板: 但是合同里并没有这些!合同里说的很清楚 — 你每天提供我2给鸡蛋!你现在让我向客户怎么交代?

农夫: 哦,情况我很明白。我无能为力。

食品店老板: 好吧,好吧,不谈这事了。咱们聊点其它事情…要是能再能点鸡肉就好了。你再给我一些吧?

所以,千万别学农夫 — 坚决拒绝为了当前利益而长久的破坏你的代码库的无理要求,如果你被强迫这样做,拒绝承担这样的任务 — 也不要做食品店老板 — 不要做提出这样不合理的要求,你要为自己的决定承担后果。

http://www.vaikan.com/on-technical-debt-now-with-chickens/

 

时间: 2024-09-20 05:59:59

技术债务(母鸡的遭遇)(转)的相关文章

投资于质量 不再有技术债务

一个童话故事 很久以前,有个软件开发团队找到他们的经理."我们的项目有相当多的技术债务(Technical Debt),我们应该做点什么."这个团队说.他们展示了一张图(图1)来说明项目的技术债务."技术债务关系到项目质量."他们说.并展示了技术债务各部分的分解,通过静态代码分析,能发现过于复杂的代码.重复的代码和冲突."我们需要去除技术债务"他们告诉经理. 图1:SonarQube技术债务插件的结果报告 但经理困惑了:什么是技术债务?他该额外再

Habya'a(临时拼凑的组件)与技术债务

我们曾遇到过最后期限即将到来.时间非常紧迫的情况.当时,我们必须尽快修复Bug,然而其中的一个Bug特别坚韧,任我们百般努力也无可奈何!随后,我的某个同事接手了调试工作.他强行写入了一些应该从数据库中检索来获取的值--它们在系统运营的最初几个月里不会发生变化--随后--系统神奇地正常工作了! 对于这类"莫名其妙的代码",我的这位同事以非常风趣的埃及俚语称之为"Habya'a",意即临时拼凑的组件. 我同事和他的创造性俚语相仿,Ward Cunningham在1992

消除技术债务?DevOps可以这么用!

DevOps强调开发运维过程的可度量与透明化.而通常情况下我们把软件质量分为内部质量和外部质量.所以我们应该对内部质量和外部质量分别进行度量,以便持续改进和优化软件质量. 软件的内部质量通常指代码和设计的质量.内部质量可以通过应用设计和编程达到最佳实践,也可以通过持续一致的开发和交付流程来提高. 通常,软件的外部质量是通过查看和使用软件(例如验收测试)来度量的. 比较常见的情况是,有的软件外部质量很好(所有功能都能正常使用),但是内部质量却很差(可能有糟糕的代码.不可维护的代码).从长远的角度看

机器学习中的技术债务

许多人遇到技术债务时都会眉头紧锁,但一般来说,技术债务并不是一件坏事.例如,当我们需要在最后期限之前发布版本的时候,技术债务就是一个可以利用起来的合理手段.但是技术债务存在与金融债务一样的问题,那就是到了要偿还债务的时候,我们所付出的要比开始时付出得多.这是因为技术债务具有复合效应. 经验丰富的团队知道应该在什么时候偿还成堆的债务,但机器学习中的技术债务堆积起来却非常迅速.你可能在一天之内欠下价值数月的债务,即使是最有经验的团队也可能因为一时的疏忽而产生巨额债务,使得他们需要耗费半年才能恢复,这

技术债务管理以及Firefox/Chromium的债务评价

现在的软件开发是在遍地敏捷,人人讲唯快不破的时代,哪有人有时间思考代码质量,设计的质量? 哪个又不是从一堆代码中杀出血路来实现另一个功能?一个产品都存活不了几年,何必考虑什么可维护性? 我们追求进度的时候,总是要牺牲些东西,或是破坏了一些东西等着后面补.这就是技术债! 管理不好,债台高筑,即使不破产,也是要拆东墙,补西墙的玩平衡.现实是残酷的,但不影响我们抬头看看这个世界. 技术债务 技术债务(Technical Debt)这个词,我最早是从InfoQ关于Uber的一个访谈中了解到的,正好也在思

2016 只剩最后一个月 你的 "技术债务" 还清了吗?

一夜醒来,猛然发现,2016 已经只剩最后一个月了! 回忆过去的 330 多个日与夜,哪些互联网圈的大事让你瞠目结舌? 也许是 AlphaGo 在堪称人脑游戏巅峰的围棋领域屡战告捷: 也许是 Pokémon Go 称霸大洋彼岸,虚拟游戏与现实场景没有了界限: 也许是双十一的天猫,用 20 秒的时间,实现了"挣它一个亿"的小目标: 也许是美帝的黑客,用网络技术,把即将坐上总统交椅的希拉里掀翻在地: -- 当然了,以上可能都看起来与你无关.但是这一年你一定真切地感受到了这些-- 我们曾立志

[Android]使用MVP解决技术债务(翻译)

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5892671.html 使用MVP解决技术债务 原文:https://medium.com/picnic-engineering/tackling-technical-debt-with-mvp-67e805ed5103#.couu0d5i0 免责申明:这篇博客并不是讲关于怎么使用MVP的方式(上帝知道关于这些已经太多了)去写Android代码.而仅仅是我的个人

Noise Free称苹果窃取其技术并提起上诉 遭遇与施乐类似

还记得乔布斯和盖茨当年那剪不断理还乱的关系吗?当初乔布斯愤怒指责微软窃取苹果技术的时候,盖茨跳起来说了一段超经典的话:史蒂夫,够了,我觉得事实上更像这样,我们都有一个有钱的邻居施乐,我闯进他们家想偷走电视机,发现已经被你先偷走了,说得帮主目瞪口呆.现在苹果又被指偷窃了Noise Free的技术,可怜的Noise Free 话语里充满了幽怨.苹果偷窃别人的技术已经不是第一次了,乔帮主有句名言好的艺术家模仿,伟大的艺术家偷窃.Noise Free技术能探测外部声音,在噪音传输进入设备接收器之前截噪音

移动平台与技术债务

摘要: 诺基亚.Palm还有RIM为什么会被干掉?其中的一个根本问题是,2000年左右,其设计是围绕着在当时是正确的假设和折衷来进行的,但这些假设和权衡却很难与5到10年后的iOS和Android抗衡. 诺基亚.Palm还有RIM为什么会被干掉?其中的一个根本问题是,2000年左右,其设计是围绕着在当时是正确的假设和折衷来进行的,但这些假设和权衡却很难与5到10年后的iOS和Android抗衡.其当时的假设是CPU和网络都很慢.内存很少,只有电阻式触屏或甚至根本就没有,为了提高电池寿命他们牺牲了