客户端敏捷开发之道【五】:软实力篇
发表于2016-12-21
本来准备的本篇内容,思来想去觉得自己暂时没资格聊那几个话题。所以决定把这一篇改成一篇杂记,标题的软实力是骗人的,我哪里有资格聊软实力,这只是一篇杂记而已。
一、产品经理与程序员
仔细反思,我们会发现搭档的产品经理在整个开发过程中起到着极其重要的作用,他们可能将你的全部成果无效化,这是非常可怕的。假设我们的开发周期是1周,如果产品经理消耗你的开发精力试了4周的错。那么按照结果导向的评价标准,你的一个月有可能什么都没干。
资深的产品经理可能会把研发当成资源或者工具,是实现产品经理目标的手段之一。在以产品至上的角度思考,研发、设计、测试、项目经理,都可以是产品经理达成目标的工具。
而一个资深的程序员,通常可能会把产品经理当做自己的外接大脑。产品方面的事情,放心的交给产品经理,自己的时间除了实现产品功能外,会拿剩余的精力来思考其它可以突破的点。
事实上,如果一个新人程序员碰到一个靠谱的产品经理将是非常值得庆幸的,因为你可以在做“工具”的过程中学习到非常多的东西。而如果一个新人产品经理碰到一个靠谱的程序员,也是这位产品经理的幸运,因为这位程序员可以让你少走许多弯路。
之所以要写这样一段,是因为在这个行业里有许多产品经理极端至上和程序员极端至上的团队风格。这常常会导致其他角色迷惘,其实在这个问题上,每一个角色都应该摆正心态。
二、测试工程师与程序员
一般来说,程序员与测试工程师可以起到一定的互相替代作用。当测试人力紧张的时候,程序员需要做充分自测再提测,以保证测试进度。但是当程序员人力紧张的时候,程序员可以偷个懒,把一些耗时的自测工作交给测试,自己则要保证代码质量,测试反馈的BUG可以被快速清理。当然,很多团队都有提测标准限制的,在我看来,这种情况程序员可以审时度势的偷奸耍滑,毕竟,从结果导向来评价,这些程序员的野路子都是没问题的。
三、有损开发
有损开发是建立在二八原则上的一种思考方法。假设有一份工作,你可以消耗2个小时赚80元,也可以选择消耗1整天赚100元。此时你会怎么做?这种选择实际上充斥着我们的开发过程。
例如我们选择某种技术方案时,会受到各种挑战,“如果XX情况怎么办?如果XX情况怎么办?”,此时技术方案就要不停地变更,因此在集体讨论技术方案时,常常出现讨论结论是一个复杂无比的方案。遇到这种情况,需要反思能否砍掉后期叠加的方案,很多时候这并不是偷懒,而是做出策略性选择,可能那个完善的方案需要动辄消耗1个月的时间。此时,不如选择80块钱先赚着再说。
四、保留一定技术债务不要处理
如果从迭代的思维来看开发过程的话,差不多有这样一条真理:“你无法预测下一次需求的全貌”。从这个角度来说,有一些未尽的开发,未清理的技术债务,有一定概率在下次迭代时不再是技术债务。所以,认清这部分技术债务,并保留这部分技术债务,等到它们被确定为技术债务时再清理,将会降低整体开发成本。
本篇为杂记,仅提供一些个人粗浅见解,仅供参考。
结语
本篇是这个系列的最后一篇文章。这个系列的内容只是我在开发之路的一些具体的点上沉淀的方法,并不能涵盖这个复杂而庞大的话题。
作为一个新人程序员,我忽然感觉这三年的时间其实只是初入门庭。刚刚能跌跌撞撞的完成编程任务。我也见过更加优秀的程序员,将每一项编程技能熟练掌握,并深刻理解其中的原理和价值,在手中把玩和运用的能力让人惊叹,因而深知自己见识浅薄。所以,仅以此五篇短文为更多新人的新人之路铺砖一块。
相关阅读
客户端敏捷开发之道【四】:防御式开发
http://gad.qq.com/article/detail/7181106
客户端敏捷开发之道【三】:性能优化篇
http://gad.qq.com/article/detail/7180580
客户端敏捷开发之道【二】:代码质量篇
http://gad.qq.com/article/detail/7175649
客户端敏捷开发之道【一】:设计模式篇
http://gad.qq.com/article/detail/7175010