[观点]企业自杀行为:重写程序

导读:原文来自steveblank.com,作者steveblank写的《Startup Suicide – Rewriting the Code》,由外刊IT评论翻译《企业自杀行为:重写程序》。

以下是全文:

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

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

看似很合理

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

举枪自杀

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

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

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

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

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

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

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

谁想要老的产品

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

这是一种预测的失败

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

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

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

原文链接: Startup Suicide – Rewriting the Code

译文链接:http://www.aqee.net/2011/02/15/startup-suicide-rewriting-the-code/

时间: 2024-09-26 16:23:44

[观点]企业自杀行为:重写程序的相关文章

《SOA达人迷》—第2章2.3节第3个问题:企业的软件应用程序中是否有核心技术?

2.3 第3个问题:企业的软件应用程序中是否有核心技术?SOA达人迷您可能不知道这个问题的答案,但是,您可以与IT人员讨论这个问题. 在过去的20年里,很多公司都建立了复杂的应用系统.很多代码都包含了公司的珍宝,比如说非常重要的.独一无二的商业实践,是公司无法丢弃的.举一个简单的例子,比如说亚马逊公司的一键购买方式:另外,房地产公司的软件可以根据行业内完善的最佳实践计算30年的抵押贷款:制药公司可以利用软件程序迅速确定一种分子是否适合药物开发.在大多数情况下,这些技术都被严密地封装在已有的应用系

BPM 观点:评估 BPM 应用程序:BPM 设计评审和魔方

简介 我很清楚你们想说什么 -- BPM 评审和魔方? 接下来会讨论什么,PacMan 还是 Facebook?您肯定会问 "Scott,BPM 设计评审和魔方有什么关系?" 好吧,让我先来介绍一些背景知吧.我使用 BPM 技术大约有 15 年了,得出这样一个结论,评审 BPM 应用程序类似于破解魔方问题.BPM 解决方案通过大量模式和应用程序类型呈现自己.更重要的是,给定的 BPM 解决方案通常呈现多个维度,甚至在单个应用程序中也是如此.当您评审一个 BPM 解决方案时,必须考虑到所

要彻底重写程序,问问大家的意见

问题描述 三天不学习,赶不上刘少奇.我已经有N多个三年没学习了,突然抬头看看现在的编程空间,早已经陌生一片,手都不知该怎么举了.该怎么问问题都已经有点糊涂了,大家凑合着将就吧,8好意思哈也是N多个三年前用DELPHI开发的一个数据库程序,用户原来通过应用程序把特定格式的文件经过分析后写入远程数据库里,再用ASP进行发布.程序现在要改写成B/S结构,功能没啥变动,我现在有点犯糊涂,应该用什么技术实现呢?网上找了一下,说是ACTIVEX已经过时了,也不知用ASP.NET可以不?还有什么其他的实现方法

大陆企业赴台投资程序17日发布即日生效

比特网(ChinaByte) 5月18日消息 商务部.国务院台办17日正式发布<关于大陆企业赴台湾地区投资或设立非企业法人有关事项的通知>(以下简称<通知>),并于同日起开始实施.<通知>全文如下: 各省.自治区.直辖市.计划单列市及新疆生产建设兵团商务主管部门,各省.自治区.直辖市台办,各中央管理的企业: 为促进海峡两岸双向直接投资,实现两岸经济互利共赢,推动两岸关系和平发展,现将大陆企业赴台湾地区投资或设立非企业法人有关事项通知如下: 一.大陆企业赴台湾地区投资或设

【观点】如果你不是程序员 该如何雇佣程序员呢

导读:原文来自37signals.com,作者Matt发表的一篇<How to hire a programmer when you're not a programmer>.译文由国内整理编译为<如果你不是程序员,你怎么雇佣程序员呢>.以下是文章内容: 如果你自己不是一位程序员,该如何雇用程序员呢?你需要注意一下几点: 1.他们有多坚持己见(固执)呢? 询问他们有趣的编程主题(如Ruby或Python?).从他们回答的语调和推理中,可以得到很多信息.在我们最近一期节目中 ,杰夫说

企业应用程序安全的新「守护神」

Aberdeen 曾提出一份报告,针对机构应该如何优先管理积极风险的问题,提出了考虑将 Runtime Application Self-Protection (RASP) 作为企业应用程序安全的主流选择的建议. 企业应用程序安全新方案 1.企业的应用程序组合数量庞大.复杂且笨重,对业务影响极大 不管从哪个方面来看,应用程序组合对企业实现战略业务目标都至关重要. 然而,典型的企业应用程序组合又总是数量庞大.复杂而且笨重.企业应用程序的数量与复杂程度包括以下几方面: 传统的企业支持应用程序的数量从

微信小程序引起热议,但谁还记得企业微信呢?

这几天,微信小程序再次刷爆了朋友圈并收获众多好评,很多人期待着微信小程序将带来一场革命,有人说有了小程序手机上很多APP都能卸载了.难以否认的是,腾讯确实非常擅长产品,张小龙也是顶级的产品经理,但是产品的成功必然是站在战略正确之上的,而微信小程序就是一款战略产品. 但是,我认为目前来看,微信小程序并没有发挥微信的优势,有可能是雷声大雨点小.目前的乐观只是对腾讯产品能力的信任,而可能只是一时新鲜,就像之前也引起热议的企业微信一样. 微信想成为什么样的工具?技术工具 很明显,按照张小龙的说法:"微信

企业网站建设如何选择好的程序

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 做网站好比修房子,修房子用什么,钢精,水泥加砖头.基本都这样些,没有多少变化.我们建设网站需要选者一个程序,一个容易操作使用的程序,只有容易操作才能更容易上手,才有更多的时间去发展你的网站而不是因为你程序出问题而烦心. 现在企业网站建设相对以前来说比较容易,价格也比较底.如果你用心观察,你将会发现,目前的企业网站多数是一般的ASP后缀的动态程

分享一篇写给程序员的文章(很好)

版权所有:不知道 http://topic.csdn.net/u/20120315/12/A5BC5453-4333-4182-A4A9-08DC01D04F75.html(从一个论坛看到的) 以下文章都是经典,看不看随你的便,我只希望知识掌握在更多中国人的手里! 中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,