【外刊IT评论】企业自杀行为:重写程序

标签: 批评评论 | 发表时间:2011-02-15 00:06 | 作者:admin Will Yang
出处:http://www.aqee.net
本文是从 Startup Suicide – Rewriting the Code 这篇文章翻译而来。

自杀

敏捷开发和最小化功能组合的好处是能持续得到客户反馈,快速迭代,防止无用程序的产生。但是随着时间的推移,如果开发人员不注意,那些为早期客户编写的程序会变得笨拙不堪,难以维护,无法扩展。你最终会讽刺的得到和敏捷方法完全相反的结果。而且问题的严重程度会随着公司的壮大呈指数级增长。合理的解决方案是什么?把产品“重构重写”。

对于处于快速变换的市场中的一个公司,这通常是走向灭亡的开始。

看似很合理

我刚好和一位朋友在加州的Palo Alto共进午餐,他是一个科技公司的创始人,现在出任董事会主席。几年前他聘请了一位职业经理做CEO。我询问他工作做的如何(“非常好,谢谢你的关心,五年来,公司现在的市值已经达到5千万美元”),但他却想跟我谈一个在他脑子里想了很久的问题。“随着公司的壮大成长,我们对市场变化和客户反馈的反应越来越迟钝。虽然现在我们的营业收入看起来还不错,但如果我们不能使公司的产品平台跟上客户需求的快速变化,一两年内我们就可能完蛋。我们的CEO没有技术背景,但他也为公司不能开发出他想要的一些新功能和平台(Facebook,iPhone,Android等)而沮丧。在最近的一次董事会会议上,我们主管技术的副总裁指出问题的根源在于‘我们的程序积累了太多的技术债务‘,程序实在是糟透了,我们现在根本没法处理。他告诉董事会,如果想在其上做我们想要的修改,那只能重写这个产品。”我的朋友补充道,“这听起来很合理,所以CEO打算批准这个计划。”

举枪自杀

“那么董事会在听到这种鲁莽的计划后没有做任何反应吗?”我问道。“没有,”朋友回答道,忧郁的摇摇脑袋,“董事会成员都感觉这像个好主意。”

经过更详细的询问后,我了解到他们的已经膨胀巨大的代码库中还保留着公司早期在拓荒阶段为客户开发的代码遗迹。当初针对客户的产品技术设计对于公司当前所面对的新平台的扩展任务来说并不是正确的设计。

我提醒我的这位朋友,我从来没有做过技术管理,所以任何我给他的建议都是来自于经历过这种事情的他人。

引诱非技术出身的CEO的美妙海妖歌声

CEO在其职业生涯中至少会遇到一次这样的“重写”问题。如果他是被请来替代技术创始CEO的,那这个决策似乎很好定 —— 只需要对比一下负责技术的副总裁提供的重写(短期)进度计划和保留老代码、增加新功能(长期)的进度计划就行了。而事实上,这是个愚蠢的决定。技术团队也许会知道使用旧程序的困难和问题所在,但不会知道如果重写代码库将会面对多少的困难和问题。

曾经经历过重写噩梦或理解程序的复杂性的CEO会知道,没有最初的技术开发团队,重犯以前曾经犯过的错误的几率会非常的高。加之会引入以前不曾犯过的错误,根据墨菲法则,不受约束的乐观主义会使1年期的重写计划变成数年。

我的观点是,CEO和主管技术的副总裁混淆了因果。客户并不要求新的程序。他们要的是新的功能和平台 —— 在当前。他们不太关心这些功能是由一堆糊涂代码、还是由外星飞船、还是由一个新产品提供的。当你在代码重写的过程中,那些不痴迷于架构血统纯度的竞争对手会扩展他们的功能、平台,拉拢客户、增加市场份额。这种目前就增加这些功能、还是一两年后再增加这些功能之间的区别代表着收入增长、还是被淘汰出局两种境况之间的区别。

谁想要老的产品

也许这着手搞程序重写最危险的副作用就是当你对旧的程序宣告死亡时却没有可替代的产品存在。当副总裁和CEO宣告公司将来要采用新的程序时,谁还会去重视这充满问题的旧程序呢?当管理者说出“重写”这个词时,老的程序就死掉了。这后果就是,CEO没有退路可走。如果技术副总裁的开发进程最终是花了4年时间,而不是设想的1年,那么在这几年期间对于系统新功能的增加不会有任何的进展。

这是一种预测的失败

我认为这看起来像是技术副总裁蓝景设计上的失败 —— 再加之没有代码重写经历的CEO推波助澜 —— 再经过想不出具有建设性的方案的董事会们的搅和。

给朋友的建议?指出市场的快速变化和竞争性,指出这种动作会使公司致命。公司在前进道路上的探索不应该在时间对于市场至关重要的情况下、在客户的需求快速转换的情况下对代码库进行重写。重写是在竞争周期比较长的市场条件下才可行。

我建议他应该在董事会会议上把这些情况陈列清楚。要求CEO详细列出什么时候需要什么样的功能和平台特征,用什么样的手段对进度计划管理的风险进行控制。弄清楚这种完全不同的技术方案是否真的可行。(是否可以只重构目前需要追加新功能的部分模块?在新的代码库上开发要求的新平台系统?启动一个独立的分支工作团队来开发新平台?等等)


本文原始地址:企业自杀行为:重写程序

相关 [it 企业 自杀] 推荐:

【外刊IT评论】企业自杀行为:重写程序

- Will Yang - 外刊IT评论
本文是从 Startup Suicide – Rewriting the Code 这篇文章翻译而来. 敏捷开发和最小化功能组合的好处是能持续得到客户反馈,快速迭代,防止无用程序的产生. 但是随着时间的推移,如果开发人员不注意,那些为早期客户编写的程序会变得笨拙不堪,难以维护,无法扩展. 你最终会讽刺的得到和敏捷方法完全相反的结果.

纽约时报:惠普高层带领企业走向自杀

- 1ball - cnBeta.COM
《纽约时报》作者詹姆斯・b・斯图尔特(JAMES B. STEWART)今天撰文,文章名为《如果想在上层实现无缝过渡,不要咨询惠普》:对于一家大型科技企业来说,CEO到底有多重要. 与世界最大的电脑公司、邻居惠普相比,苹果的员工、股东、董事及乔布斯的接班人库克一定希望找到不同的答案.

企业老板出走和自杀 银行人员涉诈骗卷款逃走 温州民企资金链断裂越演越烈

- lonelymc - 联合早报网 zaobao.com - 中国新闻
中国中小企业资金链断裂风波愈演愈烈,风暴眼浙江温州连月来不仅出现暴力讨债、企业老板出走和自杀事件,近日更传出疑有银行人员诈骗民众卷款逃亡事件,金融秩序近乎失控.

自杀-他杀-自杀-他杀-自杀

- DAVID - 牛博山寨头条
1994年的3月23日,纽约警察总局的法医检查了一具尸体, . 死者名叫罗纳德·奥普斯,从他留下的遗书中得知,他本来是想从一幢十层高的楼的顶 部跳下自杀的. 然而,当他跳楼后身子经过第九层楼前时,一颗子弹从窗户里射出,将他当场打死. 警方经过调查发现,死者和开枪的人都不知道一个情况———当时八楼正在施工,工人 们在那里刚装了一张安全网,也就是说罗纳德·奥普斯如果不是被枪击而亡,他的自杀计划其实是不能如愿的.

好农民是企业家

- 躲在街角的猫 - 南桥的博客
去上海之前,我跑了一趟宜兴,去部长在太湖边设的农场. 农场我虽然没有去过,但看了很多相片. 这次回去,发觉又增添了两间套房,可供希望躲藏起来搞创作的人居住. 农场有竹林,有茶地,有鱼塘,有山羊,有鸭子,有鸡,物产丰富. 早晨的时候,年龄大一点的老农尹大叔带我参观,去了菜园子. 菜园子种着十几种菜蔬,一茬罢了一茬跟上,几乎吃不完.

企业用研二三事

- - 腾讯CDC
  互联网产品层出不穷,不同于大多数个人产品,企业产品的直接使用者为企业用户. 企业用户要比个人用户复杂得多,有着相当大的区别. 除了个人因素外,还有环境、组织、个体间等影响因素. 对应地,在做企业产品的用户研究工作时,我们需要针对企业用户的特殊性和复杂性来进行相应的规划和执行. 目前我主要从事企业产品的用户研究工作,之前也从事过一段时间的个人产品用户研究工作,对企业用研和个人用研的差异小有感受.

再谈企业架构

- - 人月神话的BLOG
本篇为杂谈,谈下最近关于企业架构的一些思考. 对于企业架构有很多定义,简单来说的话可以说企业架构包括了三个方面的内容,一个是业务的现状和建模,一个是IT的现状和建模,还有就是业务和IT的匹配. 业务重点是流程和数据,IT的重点是应用和技术. 所有的企业架构基本都包括了这三个方面的内容,只是前面增加了企业愿景和业务目标驱动,后面增加了可落地的实施策略和计划.

再谈企业中台(12.02)

- - 人月神话的BLOG
首先我再整理下我原来提到过的一些关于企业中台的观点. 企业中台是企业共性业务能力的下沉,体现的是业务能力可复用和灵活组合. 企业中台区别传统的IaaS和PaaS平台,更多是一个业务平台,包括了业务中台和数据中台. 中台构建本身参考了微服务架构思想,并基于业务高内聚进行了微服务化并提供能力. 对于一个专业细分的业务领域而言,软件企业要做的就是将对业务领域的多年经验和理解沉淀到业务中台,形成可复用的各个业务中台能力中心,然后为上层灵活多变的各类应用提供服务能力.

Google+对企业用户说“去”,Facebook对企业用户说“来”

- Kainy - 36氪
上周Google+把企业用户拒之门外,包括36氪在内的很多网站的Google+档案被冻结,至今尚未解封. 还有哥们儿对Google此举表示不忿儿,发表了一封满腔怒火的公开信. Google表示这是为了用户好,为了打造一个纯净的社交产品,谁知道是不是因为因为他们经验不足呢. 对Google来说,当务之急还是尽快推出企业版Google+.

IE11企业模式详解,这对于企业有什么用?

- - IE浏览器中文网站
在帮助企业及时了解最新软件、服务和设备方面,Microsoft 迈出了重要一步. 今天,作为 Windows 7 和 Windows 8.1 的一项更新推出了 Internet Explorer 11 的企业模式,该模式可提供与较早版本 Internet Explorer 更好的兼容性,以及用于管理哪些 Web 应用使用该模式的工具.