研发管理体系教案

  研发体系管理思路建议

 (V1.1)

 

 目 录

 1. 总体思路 2

 2. 业务领域(范围) 2

 2.1 产品研发线 3

 2.2 项目开发线 4

 3. 岗位职责规划 5

 3.1 岗位规划 6

 3.2 产品研发过程中的职责规划视图 7

 3.3 项目开发过程中的职责规划视图 11

 4. 研发工作规范 18

 4.1 技术设计 18

 4.2 技术开发 18

 4.3 测试 18

 4.4 运维 18

 5. 团队管理 18

 5.1 员工职业规划 18

 5.2 员工培养、晋升 18

 5.3 激励政策 18

 5.4 绩效制度 18

 总体思路

 研发部作为公司软件、集成业务主体支撑部门,所承载的业务实施效率、质量对软件/集成业务的发展起着决定性作用。只有研发(开发)工作能够有条不紊的开展,稳中求“升”,那么在市场线职能部门发力的情况下,业务发展才将可能持续取得突破。

 根据公司研发部的业务范围、业务实施现状,初步建议主要从业务领域(范围)、在日常业务开展过程中的岗位/职责规划、研发工作规范,以及团队管理等几个方面本着务实的基本原则进行研讨。

 

 业务领域(范围)

 从适用用户范围不同的角度,可将软件业务区分为产品软件和项目软件。产品软件一般适用多个行业或一个专业领域的用户,当然也是从行业或专业领域内收集、分析用户需求进行研发而成,有一定的通用性;项目软件一般是针对个体客户进行定制开发,多数时候和产品软件有一定的交集,即项目软件以产品软件作为关键业务模块或基础平台,在此基础上根据用户的个性化需求进行定制开发。

 产品软件从其自身结构上看,是完整的软件系统,也可以独立实施。不过多数客户都会根据自有的业务管理规范、模式或多或少提出一些个性化软件需求,即便是同一行业内不同地域的同类同级别单位。所以,产品应作为软件解决方案的基础,以项目的形式为客户提供完整解决方案,才会相对合理,才能更好的满足不同客户的需求。

 根据公司当前的业务范围,将研发方面的业务从总体上划分为产品研发线和项目开发线两类。将来可根据业务拓展方向,逐步积累沉淀出智慧城市、中间资源管理平台等方面的解决方案。

 产品研发线

 目前公司软件产品主要是警用地理信息基础应用平台(Pgis)和空间标准地址库。下图对软件产品研发过程进行了粗略梳理,大致是按照从至右、从上到下的顺序对过程中各环节/类别工作主题进行梳理说明。

 项目开发线

 当前公司软件项目业务,主要围绕空间标准地址库和pgis产品的推广应用来开展的。下图对软件项目开发过程进行了粗略梳理,大致是按照从至右、从上到下的顺序对过程中各环节/类别工作进行说明。

 岗位职责规划

 在各种工作中,岗位职责清晰的重要性不言而喻。如果在某项工作任务中未对相关各岗位/角色的职责进行详尽的约定,极易造成工作效率低下、任务成果质量无保障、成本虚高。尤其在过程“繁琐”的软件工程中,更是如此。

 岗位规划

 就公司目前业务现状,本着对产品研发和项目开发过程相对较切合实际地进行分析,梳理整个过程中各工作阶段的工作职责、工作目的,初步建议设置以下岗位,和目前公司的岗位规划设置基本相当。(相应岗位适用的角色,以及相应的职责说明暂时参见“产品研发过程中的职责规划视图”和“项目开发过程中的职责规划视图”中的说明,待相关内容确定后再补充下表中的内容。)

 序号 岗位名称 适用角色 职责描述 备注说明 1 产品总监       2 项目总监       3 产品经理       4 项目经理       5 系统分析师       6 高级工程师       7 中级工程师       8 工程师       9 初级工程师       10 美工       11 测试工程师       12 实施工程师      

 产品研发过程中的职责规划视图

 通过在产品研发过程中的各阶段、各角色职责视图,可较清晰约定研发工作各阶段的工作内容、交付产物,以及相关岗位在各阶段工作过程中应承担的责任。如下图示(其中,绿颜色标注的单元格内容为各工作阶段中的核心/牵头/组织/关键/责任内容):

 角色

 阶段 产品总监 产品经理 系统分析师 开发经理/高级工程师 美工 技术研发人员 测试人员 配置管理员 实施工程师 交付物 产品策划阶段 参与产品策划评估,对产品策划案进行审核;

 对产品需求交付成果向公司负责 1、捕获行业动态、发展方向/趋势;

 2、获取来自客户、销售人员等对产品的诉求;

 3、制作产品策划方案;

 4、适时发起策划案评审,对策划案评审结果负责     参照产品经理的业务策划案制作必要的原型设计 1、参与产品策划评估、评审;

 2、由产品经理指派相关人员参与。   文档版本管理   《产品策划方案》;

 《产品原型设计》; 系统分析/需求评估阶段 1、参与产品分析评估,对产品技术解决方案进行审核;

 2、确保系统设计按照技术规范/标准进行;

 3、审查、确保公司知识库资源(技术沉淀、成果)的复用; 1、测试用例设计,UAT测试用例、性能/压力测试用例;

 2、对研发团队进行业务培训; 1、分析产品策划案,编制系统概要设计,完成系统结构设计、功能模块设计、数据建模、系统外部/内部接口设计、容错机制设计等;

 2、完成数据库结构设计;

 3、拟定产品升级方案;

 4、公司技术沉淀、成果的重复利用;

 5、对设计成果负责 1、从技术层面进行可行性分析、验证、建议;

 2、提供技术解决方法等技术支撑;

 3、参与数据库详细设计;

 4、组织并参与系统详细设计编写;

 5、对参与技术开发、详细设计文档编写的技术开发人员给以工作指导;   在开发经理指导下对简单业务模块进行详细设计,配合开发经理对复杂业务模块的详细设计 参与产品测试用例设计。 文档版本管理   《系统概要设计》;

 《产品软件详细设计》;

 《数据库设计》;

 《产品版本库设计;

 《UAT测试用例》

 《性能/压力测试用例》 设计评审 1、参与产品系统设计评估,对方案进行审核;

 2、对技术设计成果向公司负责 1、协助组织并参与系统设计评审;

 2、产品研发成本评估;

 3、制定研发实施计划; 1、协助评估产品研发成本、实施计划;

 2、组织系统设计评审,对技术设计成果负责; 参与设计评审 参与设计评审 参与设计评审 参与设计评审 文档版本管理   《产品研发成本评估》

 《产品研发实施计划》

 《设计评审报告》 技术研发 更新、维护产品研发技术规范/标准; 1、不定时组织对研发工作过程中业务/技术课题的研讨;

 2、对产品研发总体任务实施负责;

 3、组织研发周例会

 4、对产品研发进度、质量总体负责 参与研发工作过程中业务/技术课题的研讨; 1、组织开展技术研发工作;

 2、在研发过程中,组织落实技术设计方案、技术规范/标准实施;

 3、技术难点攻关

 4、对研发各模块任务实施质量负责 提供UI、UE技术研发过程中的实施、修改等支持 1、落实模块、单元研发任务,按照产品设计中的用户体验,界面风格设计开展工作;

 2、遵循公共技术标准、组件、模块等资源重用及新定义的技术标准,以及研发团队制定的其它标准;

 3、完成本人负责开发成果的单元测试;   文档版本管理   程序源码;

 专题技术文档; 产品测试   1、参与系统测试,重点对用户体验进行审核;

 2、对测试结果总体负责。         1、按照系统测试用例进行系统测试;

 2、对测试用例覆盖范围以外的模块、功能点进行测试,并提出测试结论。 文档版本管理   《系统功能测试报告》

 《系统性能/压力测试报告》 阶段性成果交付 1、负责对公共技术规范、组件、模块等公司业务/技术知识库复用及更新;

 2、审查研发工作是否按照技术规范/标准进行;

 3、审查公司技术沉淀、成果是否有效重复利用; 1、组织产品研发阶段性成果交付;

 2、对产品研发阶段性交付成果负责。           软件工程版本管理   工程版本

 阶段性成果交付纪要 产品版本评审/发布 1、组织公司研发产品版本评审;

 2、对发布的产品版本质量、效果负责。 1、参与研发版本发布评审;

 2、编制/更新产品手册 参与研发版本发布评审 参与研发版本发布评审       产品版本管理 1、对软件产品安全扫描;

 2、提出漏洞修复建议方案 产品版本

 产品手册 产品技术支持   协调安排技术人员产品技术支持需求 产品技术支持 产品技术支持   产品技术支持   文档版本管理 提出技术支持需求 技术支持总结,产品更新、升级建议 产品研发成本监控 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 产品研发工作日志;

 产品研发工作量统计;

 项目开发过程中的职责规划视图

 通过在项目开发过程中的各阶段、各角色职责视图,可较清晰约定项目开发工作各阶段的工作内容、交付产物,以及相关岗位在各阶段工作过程中应承担的责任。如下图示(其中,绿颜色标注的单元格内容为各工作阶段中的核心/牵头/组织/关键/责任内容):

 角色

 阶段 销售人员 项目总监 产品经理 项目经理 系统分析师 开发经理/高级工程师 美工 开发人员 测试人员 配置管理员 实施工程师 交付物 售前阶段 1.联系客户,初步了解用户需求;

 2.有针对性地介绍公司产品及项目方案 1、项目解决方案协调、协作;

 2、对交付的项目解决方案负责 1、配合销售经理介绍推广公司产品;

 2、制作项目解决方案

 3、项目实施成本评估       协助制作系统原型demo;     文档版本管理   《项目方案》

 《系统原型》 项目启动 1、合同签署

 2、项目管理系统立项 1、项目资源协调;

 2、组织召开项目启动会;

 3、明确项目干系人 参与项目启动会 1、参与项目启动会

 2、负责项目生命周期内向甲方/公司内部周期性工作报告,汇报工作进展、问题,以及问题的解决方案;

 3、组织召开项目周例会,进行工作总结、计划;

 4、制定项目里程碑计划;   参与项目启动会       文档版本管理   《项目干系人登记册》

 《项目里程碑计划》 需求阶段     1、负责用户需求调研;

 2、充分理解用户需求,完成用户需求说明书 1、制定需求调研计划,组织用户需求调研;

 2、协同产品经理确定出完善的用户需求说明书;

 3、经评估后交用户签字确认; 参与必要的需求调研 参与必要的技术性需求调研       文档版本管理   《需求调研计划》

 《用户需求说明书》 项目评估阶段   参与项目评估会议 参与项目评估会议 1、召开项目评估会议

 2、评估项目成本;

 3、评估项目风险

 4、制作项目计划 参与项目评估会议 参与项目评估会议       文档版本管理   《工作分解结构》

 《项目实施计划安排》

 《项目评估报告》

 《项目总体计划》 系统分析/设计阶段   1.负责对公共技术标准、组件、模块等资源重用及新定义;

 2.对核心业务流程模块设计进行审查 1、负责用户体验:

 1)、系统界面分类,制作每种类别的典型模板样例;

 2)、符合用户需求的UI界面风格

 2、理清业务逻辑,明确项目的关键需求。

 3、测试用例设计,UAT测试用例、性能/压力测试用例; 1、对设计阶段的成果负责

 2、组织概要设计、详细设计、测试用例设计等 1、完成概要设计。完成系统结构设计、功能模块设计、数据建模、系统外部/内部接口设计、容错机制设计等;

 2、系统架构设计;

 3、关键技术实现方案;

 4、对系统设计成果负责 1、从技术层面进行可行性分析、验证、建议;

 2、提供技术解决方法等技术支撑;

 3、负责数据库详细设计;

 4、组织并参与系统详细设计编写;

 5、对参与技术开发、详细设计文档编写的技术开发人员给以工作指导;

 6、核心业务流程详细设计 配合产品经理实施用户体验设计 在开发经理指导下对简单业务模块进行详细设计,配合开发经理对复杂业务模块的详细设计 参与产品测试用例设计。 文档版本管理 1. 理解系统目的,提出安全需求,或是对项目组的安全需求进行评审;

 2. 进行安全设计评审;

 3、数据库用户、权限、存储等规划 《概要设计说明书》

 《详细设计说明书》

 《数据库设计说明书》

 《UAT测试用例》

 《性能/压力测试用例》 设计评审阶段   1.负责项目的方向和目标,对项目计划、资源投入、计划变更、需求变更等进行决策;

 2.从组织级规划和发展角度,对项目及任务重大问题进行决策;

 3.协调确定公司内部的资源分配 参与概要设计评审会议

 1、组织召开概要设计评审会议;

 2、提供设计成果;

 3、制定、提供项目开发、实施计划,时间计划、成本计划等;

 4、项目工作分解; 参与设计评审 参与概要设计评审会议       文档版本管理   《设计评审报告》

 《工作分解结构》

 《项目开发实施计划》 开发阶段   更新、维护产品研发技术规范/标准;   1、不定期组织对项目开发工作过程中业务/技术课题的研讨;

 2、对项目开发总体任务实施负责;

 3、组织项目周例会

 4、对项目实施进度负责   1、组织开展技术开发工作;

 2、在项目开发过程中,组织落实技术设计方案、技术规范/标准实施;

 3、技术难点攻关

 4、对项目各模块任务开发实施质量负责 提供UI、UE技术开发过程中的实施、修改等支持 1、落实模块、单元开发任务,按照用户体验设计,界面风格设计开展工作;

 2、遵循公共技术标准、组件、模块等资源重用及新定义的技术标准,以及技术团队制定的其它标准;

 3、完成本人负责开发成果的单元测试; 阶段性成果评审之前完成测试用例,填写测试报告 软件工程版本管理   程序代码、单元测试记录 产品测试     1、参与系统测试,重点对用户体验进行审核;

 2、对测试结果总体负责。           1、按照系统测试用例进行系统测试;

 2、对测试用例覆盖范围以外的模块、功能点进行测试,并提出测试结论。 文档版本管理   《系统功能测试报告》

 《系统性能/压力测试报告》 阶段性成果交付 拜访客户,了解用户测试情况 参与项目阶段性开发成果交付评审 1、参与项目阶段性开发成果交付评审;

 2、对项目阶段性成果进行内部验收,验收通过后提交给用户测试确认 1、组织项目阶段性开发成果交付评审;

 2、对项目阶段性交付成果负责。   参与项目阶段性开发成果交付评审 参与项目阶段性开发成果交付评审     文档版本管理   工程版本

 阶段性成果交付纪要 内部成果评审 参与评审会议 1、参与评审会议

 2、对项目总体交付成果负责。 参与评审会议 1、召开评审会议

 2、对项目整体进行评审,对交付成果负责   参与评审会议 参与评审会议 参与评审会议   文档版本管理 1.对代码扫描发现的安全漏洞进行审核;

 2. 进行系统安全漏洞扫描,系统安全评审,系统加固工作,并编写对应的报告。 《评审报告》 项目成果交付用户 1、拜访客户,确认并向公司领导反馈成果交付效果;

 2、跟进验收计划及收款   参与项目验收 1、项目成果交付上线

 2、推进项目验收   落实项目成果交付上线   配合落实项目成果交付上线 配合落实项目成果交付上线 文档版本管理 系统部署,配合落实项目成果交付上线 《系统操作及维护手册》

 《用户手册》 项目开发成本监控 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 填报工作日志 项目开发工作日志;

 项目开发工作量统计;

 研发工作规范

 待补充

 技术设计

 技术开发

 测试

 运维

 团队管理

 待补充

 员工职业规划

 员工培养、晋升

 激励政策

 绩效制度

 研发体系管理思路建议

 1

 2