来源 | 高效程序员
需求转换的能力或者叫理解需求的能力;
分配时间的能力;
开发质量的问题;
需求转换能力
需求转换的核心就两个字“沟通”,开发成本最大的浪费是需求浪费,这分为两方面,一方面需求方,无效需求或者需求变动带来的研发成本浪费。另一方面是需求方和研发方需求传递不一致的浪费。简单来说就是没有充分沟通,导致研发所做的功能和需求方需要的功能不一致,导致返工的现象。
第一点是作为研发不能把控的,能做好的就是在需求传递的过程中,保证需求的有效性和完整性。
那么具体要怎么做呢,可以通过以下几点:
1.开发前需求沟通,最理想的沟通方式:产品提供需求文档 => 研发人员先过一遍,记录有疑问的需求点 => 产品和研发讨论需求,把所有的需求都过一遍,有疑问的点重点沟通 => 研发人员用产品能听懂的话,大概地描述一下重点讨论的需求和实现方式 => 产品确认无误,启动开发流程。
2.开发中沟通,或者是开发前模拟程序实现流程的时候,如果有未谈到的需求或者有异议的需求,及时和产品沟通之后再开始做编码。
3.测试阶段,给需求方演示程序,最后一遍对接核对需求。
如果能保证以上三点,基本上在需求转换的工程中已经算一个合格的程序员了。
分配时间的能力
做软件开发的一般情况下都是,以功能(或叫结果)为导向,以时间为衡量标准的一项严谨的工种。所有“时间概念”在软件开发中发挥着不可比拟的重量。
在说合理分配时间之前,有必要先说一下,程序开发的生命周期,在很多人眼里,程序开发有啥周期,做完不就完事了吗?其实这是小作坊的思维方式,对于一个合格的软件公司或者大一点的软件公司来说,即使到了开发实施的这一步,也分为5步:
软件设计,思考最优实现方式 => 撸码 => 测试阶段 => 修复完善 => 交付,完成开发。
一般来说,对个人而言软件设计,思考最优实现方式要占用30%的时间,撸码占用50%,测试和完善20%,当然,这个不能一概而论,对于新手来说思考的时间短点,关键点在留够测试和完善的时间,测试和完善的时间越长,项目的成功几率就越大;对于大咖来说思考的时间更长,因为代码质量过硬,所有测试和完善的时间可以相对减少一点。
如果能认识到小作坊和生产线的区别,就能合理地安排时间,尽量提前完成开发,进入测试和完善的阶段,才是关键。
影响时间规划的还有另一个原因,项目冲突,比如当在做B项目,突然测试人员找你说A项目有一个xx问题,这个时候就要平衡一下优先级,原则上来说,是先处理优先级高的问题,但一定要把控的是尽量不影响自己的B项目计划开发进度。如果实现迷茫可找上级来权衡,让他做决定,这一点很重要,一定不能忽略。
开发质量能力
------------ END ------------
来自strongerHuang公众号