研发中心管理制度
睡不醒的小王爷 知乎

第一章 总则

为保证日常工作正常有序的进行,让开发中各个环节更紧凑,更可控,需要尽可能实现系统开发中心工作的正规化,工作过程的流程化,以便提高软件质量和开发效率,达到项目能按质按量按期交付的目标。

  1. 软件开发总体遵循项目管理和软件工程的基本原则。

  2. 项目管理涉及项目立项、项目计划和监控、配置管理。

  3. 软件工程涉及需求分析、系统设计、软件实现、系统测试、用户测试、试运行、系统验收、系统上线和数据迁移、产品维护。

本制度适用于xxx有限公司研发技术科新产品设计开发全过程。

第二章 岗位设立与基础职责

根据公司目前的开发过程主要分为产品分析、开发、测试三个阶段。分析阶段完成用户需求文档的编写,系统总体设计的编写;开发阶段完成设计文档的编写,代码的编写、代码的维护。测试阶段完成系统的测试,测试文档及其他材料。通过逐渐的调整岗位,明确工作职责,逐步产品经理,开发工程师,测试工程师,平台架构组,算法工程化组的岗位设置。

1. 产品经理

职责说明:

  1. 组建产品团队,制定产品团队?作?式、?作计划、设定?标,组织获得完成产品所需的各种内/外部资 源和和?持;

  2. 深度分析业务、?角?、资源、环境、?户之间的关联,并能够梳理出清晰严谨的逻辑脉络,结合产品规 划、运营模式、商业模式,科学合理的形成产品?案;

  3. 与团队分享有效沟通和协调的经验和?法,带动团队沟通协调能?提升;

  4. 对于突发或复杂问题,能够协调公司的稀缺资源,促成有?的解决?案。

  5. 项??持 (1)配合项?组团队进?需求调研,需求采集,需求分析; (2)按项?计划输出?质量的 产品PRD、原型及完整的产品?案; (3)跟进研发开发进度及测试情况,保证项?按照交付计划推 进。

  6. 售前及销售?持 (1)收集和归纳客户意?见和需求,并纳?产品侧后续迭代内容 (2)跟进前?售前? 员反馈问题,并负责衔接研发、测试侧跟进问题的处理。

  7. 市场?持 配合市场侧开展相关?作,提供产品说明?档,演示demo、客户沟通等?持。

2. 后端组/后端开发工程师

开发规范

  1. 统?代码?风格,便于阅读与规避冲突

  2. 统?代码协作?作流

  3. 规定?档输出

  4. 编码规范,包括?志、注释、单元测试、约定框架与SDK等

  5. 规定代码以镜像作为交付物,说明以?档作为

开发流程

  1. 参与原始需求评审,分析需求的可?性,并沟通技术实现?案

  2. 参与原型评审,确定终审需求

  3. 基于tapd版本需求模块进?细化需求并排期,从?提供开发时间节点

  4. 撰写?档,包括技术?案、接??档、流程图、架构设计图、说明?档等

  5. 编写代码,实现需求,并编写单元测试

  6. 系统联调,构建交付镜像,并告知架构运维组程序变更,便于部署

  7. 开发封板、提测;参与测试?例评审,测试;解决缺陷

  8. 构建最终交付镜像,并于 hub 打上版本标签,同时通知运维组

协作与分享

  1. 使?接??档、 技术?案作为沟通载体与前端、流媒体研发沟通,使? DevOps 与运维架构组协作

  2. 后端组不定期地进?技术主题会议分享,相互提?技术能?与业务熟悉程度

  3. 周期性进?代码审阅,提?编码质量与产品稳定性

  4. 为了使算法更好地落地、更加灵活使?,会与负责 ev_sdk ( 茹辉 )沟通与建议

?常问题处理

  1. 实时跟踪并及时处理训练平台问题,包括平台缺陷、开发者疑问等

  2. 及时处理推理平台?单售后等问题,同时为实施解决问题提供技术?持

  3. 为实施提供技术?持与协助其解决问题

3. 前端工程师

职责说明:

  1. 负责公司整体系统的前端UI展示与交互,给与?户优秀的体验;

  2. 负责公司前端项?代码管理,以及UI插件提供给第三发以及合作商使?;

  3. 负责公司定制化项?前端模块的开发与维护;

  4. 负责公司各个系统的web端,移动端?页?的开发?作,精准还原产品原型和UI设计稿完成产品开发任 务;

  5. 快速响应产品迭代以及优化升级,持续优化前端体验,并保持良好兼容性,友好和易?性;

  6. 与UI,产品,后台开发?程师配合,对?页?样式,数据和交互效果进?分析和调试;

  7. 保持良好的沟通能?,良好的代码?风格,保障项?代码的复?性,?效性。

4. 测试组

职责说明:

  1. 对接实施:排查跟踪?户出现的问题,训练平台使?安装培训,编写脚本应对突发情况。

  2. 对接售前:根据售前需要,调整各种阈值,找到最佳阈值,运?得到最佳的算法视频和图?结果。

  3. 对接售前,实施:输出算法性能指标,资源占?情况,算法硬件兼容详情,便于针对性采购客户服务 器。

  4. 配合开发,运维,项?经理,产品经理保质保量完成产品和项?;

  5. 完成规范测试、功能测试、性能测试、封装测试、准确率测试、稳定性测试、兼容测试;

  6. 完成产品功能测试,接?测试,兼容性测试,性能测试;

5. 平台架构组

职责说明

  1. 深?理解业务需求,参与应?架构设计、评审并推动实现;

  2. 参与系统的技术架构规划和设计,系统技术难点攻关,负责核?功能点的代码编写;

  3. 对系统的扩展性、安全性、性能、伸缩性、交互性做系统级把握;

  4. 负责运维系统的架构设计和开发,包括但不限于容器管理和编排/智能监控告警及定位/中间件管 理/CMDB等系统的开发与维护;

  5. 制定运维规划,深?各运维技术??向(故障监控/容量评估/配置和资源变更等),提供平台化运维解 决?案 并持负责续优化;

  6. 推理平台:负责解决实施遇到的?较复杂的问题;

  7. 搭建并完善?档体系,制作?度制动化脚本给实施使?,镜像管理;

6. 算法工程化组

职责说明

  1. 负责分布式深度学习平台的功能设计、开发和测试;

  2. 负责算法产品的运?状况和问题定位,为客户提供及时的技术?持;

  3. 负责开发、优化与维护x86、ARM等架构的算法SDK;

  4. 根据项?需求,封装算法、编写算法测试?例;

  5. 提炼有价值的?户需求,并能反馈?模块中,持续增强/改进平台;

  6. 优化流媒体产品?户体验,如延迟、流畅、画质;

  7. 负责流媒体模块的开发;

  8. 应?产品中视频编解码的实现,针对软硬件进?性能优化;

  9. 产品项?中C++模块的开发;

  10. 销售技术?案?持。

第三章 项目管理

1. 项目立项

  1. 产品经理或项目经理进行应用调查与分析,确认软件的应用需求。

  2. 成立项目评审会,技术总监、部门经理和指定人员必须参加。对项目进行可行性研究,编写项目建议书,评估项目的难度和工作量,形成可行性研究报告。

  3. 根据项目配置的优劣成立项目开发组,制定软件开发计划,确定项目经理,由部门和项目经理共同来确定具体项目配置,知识技能要求,团队成员及团队的角色。

2. 项目计划与跟踪

  1. 以项目为单位,产品经理或项目经理负责整个项目的计划、组织和控制。

  2. 在整个项目过程中,项目经理定期检查项目进度和完成情况,调整人员分工和安排。

  3. 项目计划需要变更时,需要明确变更内容并及时汇报。项目经理需要说明客户变更原因并将变更说明提交公司领导审核,以便根据变更内容及时调整计划。

第四章 产品设计与开发

1. 需求分析

  1. 对用户提出的需求进行分析汇总,梳理用户的业务流程和详细的功能定义。

  2. 做出简单的界面原型,与客户进行有效的沟通, 编写需求详细说明书。

  3. 根据现有条件进行估计,制定项目进度,制定详细的软件开发计划。

2. 总体设计

  1. 在该阶段确定总体结构和软件开发架构,文件命名规范,编码规范。可按软件需求划分成子系统,也可直接定义目标系统的功能模块及各个功能模块的关系。

  2. 确定软件模块结构,给出每个功能模块的功能描述、数据接口描述,并完成系统概要设计说明书。

  3. 完成数据库的设计,并编写数据库设计说明书。

  4. 完成的文档需提交公司进行归档管理。

3. 详细设计

  1. 调整前一步设计的不足,确认各模块之间的详细接口信息。

  2. 设计功能使用的具体描述、行为者、前置条件、后置条件、UI描述、业务流程/子流程/分支流程,界面说明等。

  3. 确定模块内的数据流或控制流,对每个程序模块必须确定所有输入、输出和处理功能。

  4. 汇总并提交所有相关文档,审核确认质量和进度。

4. 软件实现

  1. 项目组根据概要设计说明书、详细设计说明书制定系统实现计划

  2. 有条件的情况下保证开发、测试和生产环境独立。选择软件工具,明确项目成员的职责分工,按照编码规范和详细设计实现软件功能。

  3. 代码应满足结构良好,清晰易读,且与设计一致,符合编码规范。

  4. 开发人员需要软件实现过程中编写软件功能说明,源代码说明。软件功能说明文档应说明项目名称、编号、软件名称和版本号,软件功能、主要功能实现过程。源代码说明应说明项目编号、源代码类名称、编写人员、编写日期、变更履历、功能、全局变量、数据库字典、函数功能、接口。该文档包含在源代码文件中,以注释形式存在。

  5. 项目组进行单元测试和集成测试。开发人员处理测试人员反馈的测试问题,并以书面形式反馈主要问题及解决办法,直至系统运行稳定。

  6. 汇总并提交所有相关文档,提交公司备案,形成项目知识库。

5. 软件测试

  1. 根据单据测试和集成测试两个过程,制定测试计划。按阶段设计测试实例,并将测试结果记录,未通过的的反馈给开发人员调整。

  2. 完成测试文档、操作手册、安装维护手册的编写。

第五章 系统上线与维护

1. 系统上线

  1. 制定上线计划,确定上线工作时间表,部署的环境。

  2. 上线操作步骤以及问题处理步骤;

  3. 根据软件特点、客户需求进行软件部署,并记录软件部署和运行结果;

  4. 项目组根据系统运行请款对系统进行优化,记录系统的运行情况、系统问题和处理后的版本。

2. 用户培训

  1. 准备用户培训计划、培训手册

  2. 确定培训时间、培训地点,向用户进行系统使用培训、操作指导及提供软件操作手册。

  3. 保留培训签到表,用户意见等存档。

3. 系统验收

  1. 验收工作准备,按要求整理项目成果物,打印装订成册,并提交客户方。

  2. 系统主要使用部门及信息技术部门联合成立项目验收小组,从需求功能及技术需求层面对系统进行综合评估和项目成果物的审核,根据验收情况形成系统验收报告

  3. 应用部门及信息技术部门负责人根据系统试运行情况签署验收意见。

4. 产品维护

  1. 调出项目主要开发人员,按照合同要求安排维护人员对系统进行技术支持。

  2. 系统需求变更或调整,记录变更原因和软件及源代码的版本控制,按照软件变更要求对系统进行维护。

第六章 知识分享及培训制度

为提高各部门协作效率,统一公司技术标准,提高员工核心能力成长,公司组织定期培训和知识分享。

  1. 每两周公司组织一次项目经验分享会议,由各项目经理或产品经理轮流做为主讲老师,将各自项目中存在的问题解决方案以及自己对项目管理过程中的一些经验心得以PPT的方式和同事一起分享讨论,每次分享进行不记名打分,季度评分最高者公司按季度给出现金奖励;

  2. 技术部门每年初制定公司全栈产品的技术框架,对前一年整体技术框架进行更新;

  3. 技术部每两周组织一次专项技术培训,由技术总监和各负责技术经理(或指定高级技术工程师)负责,每季度公司选取培训效果最佳者给予现金奖励;

  4. 技术部提倡技术分享,公司建立各技术方向的工具共享库,每季度评出杰出技术贡献奖,对在实际项目中技术贡献较大(重大技术难题攻关或贡献出对开发进度有较大促进的共享工具),给出现金奖励。


CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢