软件研发管理经验总结 - 技术管理
- 技术管理主要负责有技术团队建设、管理团队成员技术相关事务、帮助团队成员成长、负责团队成员交付的代码质量、以及负责产品技术方向、以及产品相关前沿技术调研;
- 管理团队成员技术相关事务有代码Review、故障率跟踪、分析及根据分析结论指导开发人员改进技术能力、常规问题解答、疑难问题攻关…
总之技术管理者的工作重点就是以技术为中心展开
相关系列文章
软件产品研发管理经验总结-管理细分
软件研发管理经验总结 - 事务管理
软件研发管理经验总结 - 技术管理
目录
- 软件研发管理经验总结 - 技术管理
- 一、建立完整的产品开发过程
- 1、需求分析
- 2、概要设计
- 3、详细设计
- 4、编码制造
- 5、测试
- 二、建立完整的质量管理体系
- 1、基于产品开发过程建立质量管理
- 1)、需求分析质量管理
- 2)、概要设计质量管理
- 3)、详细设计质量管理
- 4)、编码制造质量管理
- 5)、测试质量管理
- 三、产品相关技术
- 四、团队成员技术能力管理
- 1、建立团队能力进升机制
- 2、尽可能的量化指标
- 五、行业技术前沿
一、建立完整的产品开发过程
以下过程并非CMM系统标准过程,而是根据我们公司自身产品研发出发,目的是在有限的条件下,提升产品质量,使产品研发周期可控、产品质量可控、产品可维护,不断的提升团队整体技术能力,软件研发规范性…
1、需求分析
此过程由需求分析人员负责将用户的需求进行收集、理解、分析后,形成需求分析文档,然后再与用户确认,需求是否正确、缺失、多余的部分。
如果用户确认后会根据需求分析的成果对功能点进行拆分,颗粒度一般到页面的级别或功能级别,具体以技术人员能理解、控制得了的最小颗粒度为参照即可;
2、概要设计
经过需求分析过程后,将一个复杂系统按功能进行模块拆分; 概要设计的主要任务是把需求分析得到的DFD1 (数据流图) 转换为软件结构和数据结构,进行功能和体系结构分析设计。
3、详细设计
详细设计主要是对模块的各子功能设计程序的输入参数、程序的处理流程、输出值,包括采用的算法、计算方法、计算步骤;在模块中需要定义的接口…。
4、编码制造
根据设计文档、代码编写规范…要求编写代码、单体测试…
编码规范如果团队没有统一的规范可以参照谷歌、阿里、腾讯发布的相应规范进行一定的调整即可。
5、测试
※ 说明:
- 如果产品开发过程采用了CMM系列标准过程的可以跳过此节。
- 如果产品开发过程未采用CMM系列标准过程的,开发过程需从各自企业、团队、产品自身出发来确定自己所需要的过程,不用每个过程都要做。
二、建立完整的质量管理体系
1、基于产品开发过程建立质量管理
1)、需求分析质量管理
此过程主要的质量管理方法是人工【评审】,针对需求分析的成果物进行评审,或全程参与到与用户沟通与确认过程中,确保需求的准确性、完整性。
2)、概要设计质量管理
此过程主要的质量管理方法是人工【评审】,主要评审的内容是设计文档,评审内容
序号 | 评审内容 | 说明 |
---|---|---|
1 | 文档变更记录 | 变更记录中要体现现变更者、变更日期、变更的章节、变更内容 |
2 | 规范性 | 概要设计是否与符合规范(此处的规范是公司内部制订的概要设计规范) |
3 | 设计内容 | 概要设计是否与需求分析中的功能一致、是否准确 |
3)、详细设计质量管理
此过程主要的质量管理方法是人工【评审】,主要评审的内容是设计文档,评审内容
序号 | 评审内容 | 说明 |
---|---|---|
1 | 文档变更记录 | 变更记录中要体现现变更者、变更日期、变更的章节、变更内容 |
2 | 规范性 | 详细设计是否与符合规范(此处的规范是公司内部制订的详细设计规范) |
3 | 设计内容 | 详细设计是否与概要设计中的一致、是否准确 |
4)、编码制造质量管理
此过程主要的质量管理方法是,当开发人员编码完成后,首先需要自测,可以采用【单元测试】、【覆盖率测试】,并验证业务功能; 自测完成后就可以向上级负责人提交【评审申请单】,批准通过后会根据模块的复杂程序安排小范围的评审、正式的多人参与的评审会议,在评审过程中开发人员记录被评审出的问题,评审过程完成后,需要将评审出的问题、原因及修改方案以正式的评审记录文档提交,并在审核通过后归档;
从管理的角度还需要记录开发代码量、评审时长、故障率等数据来做分析,将分析结果反馈给开发人员,并引导开发人员提升改善自身的不足。
下图故障跟踪记录表仅供参考:
5)、测试质量管理
此过程主要的质量管理方法是人工【评审】,评审测试用例。
三、产品相关技术
定期组织团队成员分享产品使用的技术、框架、原理…,遇到的技术问题以及分析解决过程,经过长期反复的磨炼后,团队成员的思想、能力逐渐一致了,团队凝聚力、能力会越来越强。
四、团队成员技术能力管理
1、建立团队能力进升机制
按技术力能划分出几个级别,每个级别需要具备的技术能力,腾讯、阿里也采用类似的方式将技术人员划分为P1到Pn级别,这样技术人员有明确的发展方向和规划。
2、尽可能的量化指标
将团队用到的所有技术、能力、态度、极积性等很多无法准确的判断的信息通过尽可能的去量化,将感性判断的范围尽可能的缩小。
- 例如,我们在面试Java技术人员时,可能很多时候面试完只能给人力资源一个行或不行的结论,人力资源也比较懵,不知道如何调整找人的方向。面试者心里有个感性的判断,无法明确的表达;
- 这时我们可以按照技术要求,将需要面试的技术项进行细化,并给其一个百分占比,所以有项加起来100分,下图为参考图
- 这样做的话,面试者每面试完一个技术小项后可以给这个小项一个印象分,每个小项满分100分,但是每个小项的得分=印象分*(百分占比),例如上图中【集合】这个技术小项占比为%5,当面试完“张三”后,面试者对于“张三”【集合】这个技术小项给出的印象分为30分,则“张三”在【集合】这个技术小项的得分=30*%5 = 1.5,这样就可以将感性影响的范围限制在较小范围内 。
五、行业技术前沿
- 定期分享行业前沿技术资源,与团队成员进行讨论相关的技术内容;
- 鼓励团队成员极积和探索前沿技术、最新的技术,不断开横向扩展技术面,纵向的加深技术能力;
数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 ↩︎