对于产品经理来说,没有什么比工程师告诉他们:“没有新特性了!我们需要停下来重写!我们的代码库很乱,跟不上用户数量的增长,就像纸牌屋一样,我们维护不了,网站就是一条狗!”

这种情况已经发生在太多的公司身上,并将继续发生。必威娱乐官网这发生在1999年的eBay,这家公司比大多数人意识到的更接近于崩溃。几年前Friendster就遇到过这种情况,并为MySpace打开了大门。在与微软的浏览器之战中,网景(Netscape)就发生过这种事,每个人都知道谁赢了。事实是,大多数公司从未从这一危机中恢复过来。必威娱乐官网这是一种非常糟糕的情况。

当一家公司真的陷入这种境地时,每个人通常都把责任归咎于工程师。但根据我的经验,残酷的事实是,这通常是产品管理的错。原因是,在过去的几年里,产品经理一直在给工程组织施加压力,以交付尽可能多的工程团队能够生产的特性。其结果是,如果您忽略了基础设施,那么所有的软件都将到达一个临界点,即不再能够支持所需的功能。

在重写过程中,您被迫停止客户所看到的前进的进程。您可能认为重写只需要几个月的时间(下文将详细介绍这一点),但这无疑要花费更长的时间,您不得不坐在一旁,眼睁睁地看着客户离开您,投奔竞争对手。

如果你还没有遇到这种情况,你需要做以下事情来确保你永远不会遇到这种情况。你需要把工程能力的一部分分配给我们在eBay称之为“净空空间”的地方。这样做是为了避免你的头撞上天花板。你可以通过为用户基础、事务增长和功能增长创造空间来实现这一点。

工程方面的协议是这样的。产品管理需要20%的容量要求立即给这个工程花费在他们认为合适的地方——他们可能用它来重写,重新架构或重构代码库的有问题的部分,或者交换数据库系统,提高系统性能——不管他们相信是必要的,以避免曾经来到这个团队,说“我们需要停下来重写。“如果你现在的状况真的很糟糕,你可能需要把这些资源占到30%甚至更多。当我发现那些认为自己可以用不到20%的钱就能成功的团队时,我会感到紧张。

如果你目前处于这种情况,那么事实是,你的公司可能撑不过这一关。但如果你想有机会度过难关,你需要首先做一个现实的时间表和时间表,以便做出工程师认为必要的改变。

大多数情况下,一个经验丰富的工程团队将得出稍微保守的估计。这条规则的例外情况是重写。这方面的估计往往过于乐观。在这种情况下,您必须在知情的情况下做出决定,因此您必须仔细检查日程表上的每一行项目,以确保日期是切实可行的。

其次,如果有任何方法可以将重写分解成若干块,并逐步执行,那么你就应该这么做。即使现在重写可能会延续2年而不是9个月,如果你能找到一种方法继续在用户可见功能上取得进展,即使它只有25%到50%的能力,这是非常重要的。

第三,由于你交付用户可见功能的能力非常有限,你需要选择正确的功能,并确保你正确地定义它们。

在经历了易趣的濒死经历后,他们确保不会再把公司置于危险之中。他们立即开始另一次重写,这一次在发行之前就开始了。事实上,由于其快速增长,他们最终改写第三次,这一次将整个网站转换成不同的编程语言和架构,他们做了这个巨大的数百万行重写在过去的几年里,最重要的是,在不影响用户,同时管理实现创纪录的新功能。这是我所知道的“中途重建引擎”的最令人印象深刻的例子。

但毫无疑问,应对这种情况的最佳策略是不要走到这一步。你需要付你的税,记住至少要留出20%的空间。如果您还没有与您的工程同行进行过这样的讨论,那么您应该今天就进行讨论。

分享这