友荐云推荐

那一天,你正静静地坐在办公室里写代码。突然,你的老板冲进房间,急切地要求写一个功能。你甚至都没听清楚功能确切的要求:

“现在市场迫切需要这个功能,……(然后一堆废话)。这应该用不了太多时间,我的意思是,库是现成的,对吧?加上你们又很聪明!我们需要超前于市场的速度!…三周时间,OK?赶紧写一个1小时后上线的可行性评估。好了,抓紧!”

你知道你的老板——在你不知不觉中——将你推到了一种什么样的境地吗?

屏住呼吸1分钟

上面这种提出功能要求的场景看似夸张了点,但是我在现实生活中,已经看过无数次类似的场景。

这是一种警示,这个故事告诉我们,作为程序员,我们得认识到事情的严重性,然后立刻回绝。不要盲目接受扔给你的任何乱七八糟的工作。

下面让我们依次来看一看这4句警示语。

现成的解决方案—— “已经有现成的库/解决方案”

这实际上是一把双刃剑。一方面,一大批数量惊人的开发人员趋向于重复性的劳动工作,回避现成的解决方案。用户注册和登录?让我们从头开始写一个新的用户管理系统吧!

而另一方面,这同样会导致适得其反。当公司突然发现已经有现成的,易于定制的解决方案,那么你编写的程序很有可能就会被弃若敝履。不但你的劳动成果永无出头之日,并且由于类似的解决方案的存在,还会看轻需要你实施的整合等任务。

无论现在有多少现成的库,也不论你实现过多少类似的需求,都不能将功能重叠和再利用视为理所应当简单的工作。

你可以这么回答:“在经过仔细分析和需求解构之后,我才能告诉你那些现成的库/解决方案是否适用。”

给你戴高帽子—— “你超级聪明!”

高帽子人人爱戴,我也是如此,因而在我职业生涯的早期,我时常头脑一热就接下人人唯恐不及的大麻烦。所以如果老板突然开始赞美你,那就要小心了。

特别是如果你是一个自由职业者,当你的客户这样说的时候,那你心中就要拉响警报了。客户给你戴高帽子的目的无非是想省钱——既然你是如此的聪明,那么就应该没有解决不了的问题,并且解决问题所用的时间就应该比那些普通智商的家伙要短。比如说烤披萨,别人要10-12分钟,那么从字面上你就应该只需要30秒时间。

如果你同意了这种“预估”,但是却发现仍然需要10分钟时间,我敢保证,你的自尊和自负让你很难放下身段灰溜溜地回去找客户,“对不起,我没有你说的那么聪明,我需要多花10倍的时间”。

你可以这么回答:“很不幸,此需求的复杂性与聪明才智无关。如果你想要,我当然也可以用一分钟的时间给你一个新鲜的意大利披萨。但是,为了确保它的美味和可食用,你肯定希望能够多烤一会儿,对吧?“

咦,说好的4句警示语呢!?

别急,还有2句在这里:

成为市场先驱的光荣——“我们需要超前于市场速度!…三周时间,OK?!”

一个优秀的软件产品确实不仅需要强硬的技术实力,更需要结合天时与地利。产品超前市场无可厚非,甚至也是一个开发目标,但是盲目的超前不仅会给开发者带来巨大的压力,其结果也往往事与愿违。

你可以这么回答:“这个功能的编码时间不会太久,但是我们在开发前仍需要做一些分析,以及开发完成后做一些测试,我想你和你的客户不愿意使用满是bug的系统吧。”

展示技术实力的冲动——“赶紧写一个1小时后上线的可行性评估。”

小时级的开发周期对于修复一些bug还可以,如果是开发新功能,那真的是不可取的。你可以这么回答:“让我先花一小时出去吃个午饭,回来再跟您探讨一下1小时后上线的可行性。”

译者注:最后2点作者并没有详细展开,译者根据自己的经验进行了阐述,望各位网友可以补充。