ARTS - Review

补10.29

一个好的开发者说不

在我们的生活很早的时候,我们就学到 ‘不’这个词是消极的。但是在我们生活中学会说不以便专注于重要的事是非常积极的,尤其是当你做为一个程序员不得不和你的客户和队长日常讨论让你开发一个功能时候。

作为一个软件开发者,我们面对不仅语法和逻辑挑战,还要客户交流。(crucial 关键的) 这是关键的因为有时,你的客户将会让你加一些需要花费大量时间开发但是对最终产品应用目标没有价值的功能。

如果你面对和以上提到的类似的场景,你有两个选择。

  1. 开发功能
  2. 说不

为什么你需要说不?那不是我的客户想要的吗?这不是他的软件吗?

当然是的。但是这也要花费时间和金钱去完成的。

你的客户投资资源在你确定不会增加产品价值的事情上,甚至知道这一点,但是你还要去做。

所以,你多么该管理一下像这样的场景?我们将会说不,但是解释为什么。

作为一个在Pernix的软件学徒,我们不得不在6周内开发应用。这些应用叫做 MVP (最低可用产品)。就像名字表达的那样,这类应用意味着做的最小但是对最终产品有巨大价值的功能。

6周是非常短的一段时间,我们必须敏捷必须专注于什么是重要的事情上。有时客户想要一些将花费大量时间的功能但是并不会在周期结束时候增加实际价值。

这就是我们必须识别什么是我们应用的目的,然后在这样的功能上努力。

我之前做的一个项目中,一个客户让我们开发一个聊天机器人功能,如果我们同意开发将会占用整个6周。主要功能是开发一个用社交网络实现一个CRM系统。

所以我们表上就要两个选项。开发聊天机器人或CRM。

幸运的是,客户同意了我们意见,决定将来再实现聊天机器人,先努力开发CRM。

如果我们同意开发聊天机器人,情况会变得非常困难。我们不能开发完成聊天机器人也不能完成CRM。

最后,我们设法开发了CRM,客户对最终结果很满意。我们学到了要聚焦于开发两个主要功能又快又好的完成。

这个方法可能听起来熟悉的如果你把 Scrum(敏捷工具) 作为你的开发方法论。在Scrum 你需要设置短阶段任务并完成它。如果你指出你的任务将会比你认为的花费更多时间或者意识到你在开发一个完全不同的功能,常常在脑中思考,什么是任务?目标是什么。

简短来说,确定你的工程里什么是重要的,学会对那些需要花费大量时间开发但对最终产品不会增加价值的事说不。