你确定你真的知道是什么让程序员有效率吗?是因为使用了像VIM和Emacs这样强大的编辑器,还是因为应用了最新的Haskellweb框架,或者你最喜欢的NoSQL数据库?抱歉,如果您专注于工具、框架甚至流程,那么我不得不说,您错了!程序员生产力的真正来源是:正确的需求。为什么你作为程序员也必须关心需求——而不仅仅是业务人员!显然,产品负责人必须满足客户的需求,因为这才是让客户愿意支付的原因。开发商对此有何看法?一位开发人员曾经说过大多数人会说的话:“只是构建。如果出现问题,它会在开发过程中得到处理。那样的话,至少我们有一个先机,不是吗?”我们将这种做法称为For:startimmediately,neverend——当你开始构建时,没有一个精确的目标,至少有一半的内容还不清楚。你怎么知道你完成了?因为不是100%理解,所以在开发过程中充满了状态——不知道下一步该做什么,以为快完成了但是这里忘记了,那里漏掉了,功能不匹配等等。还有一个问题,你打算怎么测试模棱两可的要求?您最喜欢的BDD工具不会帮助您解决这个问题。如果输入有歧义,测试也有歧义,输出更不明确。你一直都非常有动力,也许吧?所有开发人员都非常讨厌的一个情况是业务人员经常给出不确定的要求。这表明业务人员自己并不知道客户真正想要什么功能。这意味着你建造的很多东西最终都被扔进了垃圾桶。一轰,然后衰退,三耗尽,程序员的积极性就这样被磨灭了。那么什么是正确的需求呢?现在说说什么是正确的需求?索引卡上是不是写了一句话——“作为用户,我希望能够使用亚洲建设银行的信用卡”,嗯,结束了,可以吗?一个正确的需求包括(1)业务人员和程序员之间的双向交流和研究;(2)反复解构、解构、再解构;(3)示范,包括我们常说的“垂钓”和“剥皮”。请!我是一名程序员,需求不是我的工作!事实上,在一些大公司中,通常会有专门的业务分析师,他们的唯一职责就是在将需求交给实施团队之前整理出详细的需求。在理想情况下,您只需根据说明进行编码,然而,这在现实中显然是不可能的。此外,业务越小,程序员的工作就越混杂。也许你的老板是这么想的:你作为一个“程序员”,不仅要知道如何实现,还要知道需求。无论如何,你应该专攻这个!升级AngularJS2.0路径肯定比研究客户的问题领域和需求更有趣——毫无疑问。但是,您的技术技能、您的框架和您的算法只是您日常工作的一部分。所有开发工作的基础是:正确的需求。***,欢迎分享你的感受。翻译链接:http://www.geekwww.com/programmer-product-not-tools.html英文原文:程序员的生产力始于需求,而非工具!
