软件开发人员任职资格标准
××公司软件开发人员任职资格标准V1.1
变更履历........................................................................................................................................... 3 一、 级别划分及申报条件 ....................................................................................................... 3 1. 级别划分 ........................................................................................................................... 3 1.1. 级别划分 ........................................................................................................................... 3 1.2. 3等设置 ............................................................................................................................ 4 2. 申报条件 ........................................................................................................................... 4 2.1. 学历及工作年限要求 ....................................................................................................... 4 2.2. 项目经验要求 ................................................................................................................... 4 2.3. 知识技能要求 ................................................................................................................... 4 二、 任职资格行为标准 ........................................................................................................... 6 一级(助理软件工程师) ............................................................................................................... 6 1.
参与需求讨论(理解需求并执行) ............................................................................... 6
1.1. 制作demo ................................................................................................................. 6 1.2. 理解需求文档 ........................................................................................................... 6 2. 参与设计 ........................................................................................................................... 6
2.1. 参与编写概要设计文档 ........................................................................................... 6 2.2. 配合完成详细设计文档的编写 ............................................................................... 6 3. 功能开发 ........................................................................................................................... 6
3.1. 确认开发任务 ........................................................................................................... 6 3.2. 开发搭建环境 ........................................................................................................... 6 3.3. 编写功能代码 ........................................................................................................... 6 3.4. 单元测试 ................................................................................................................... 6 3.5. 执行版本控制 ........................................................................................................... 7 4. 参与测试 ........................................................................................................................... 7
4.1. 配合测试 ................................................................................................................... 7 二级(软件工程师) ....................................................................................................................... 7 1 需求分析(理解) ....................................................................................................................... 7 1.1. 参与需求调研 ........................................................................................................... 7 1.2. 编写需求文档 ........................................................................................................... 7 2 模块设计....................................................................................................................................... 7
2.1. 编写概要设计文档 ................................................................................................... 7 2.2. 编写详细设计文档 ................................................................................................... 7 3 模块开发....................................................................................................................................... 8
3.1. 确认开发任务 ........................................................................................................... 8 3.2. 开发搭建环境 ........................................................................................................... 8 3.3. 模块功能编写代码 ................................................................................................... 8 3.4. 解决一般技术问题 ................................................................................................... 8 3.5. 参与代码走查 ........................................................................................................... 8
3.6. 单元测试 ................................................................................................................... 8 3.7. 参与整合联调 ........................................................................................................... 8 3.8. 执行版本控制 ........................................................................................................... 8 4 模块测试....................................................................................................................................... 8
4.1. 搭建测试环境 ........................................................................................................... 8 4.2. 配合测试 ................................................................................................................... 9 5 部署支持....................................................................................................................................... 9
5.1. 编写部署文档 ........................................................................................................... 9 5.2. 协助解决部署问题 ................................................................................................... 9 三级(高级软件开发工程师) ....................................................................................................... 9 1 支持售前工作 ............................................................................................................................... 9 1.1. 技术可行性分析 ....................................................................................................... 9 1.2. 参与技术方案文档编写 ........................................................................................... 9 1.3. 评估工作量及风险 ................................................................................................... 9 2 控制和主导需求 ........................................................................................................................... 9
2.1. 主导需求调研 ........................................................................................................... 9 2.2. 需求分析 ................................................................................................................... 9 3 系统设计..................................................................................................................................... 10
3.1. 数据库设计 ............................................................................................................. 10 3.2. 系统设计 ................................................................................................................. 10 4 测试规划..................................................................................................................................... 10 5 部署规划..................................................................................................................................... 10
5.1. 系统部署 ................................................................................................................. 10 6 核心模块开发 ............................................................................................................................. 10
6.1. 核心功能代码编写 ................................................................................................. 10 6.2. 解决技术难题 ......................................................................................................... 10 四级(资深软件工程师) ............................................................................................................. 10 1 技术创新与优化 ......................................................................................................................... 10 1.1. 技术发展建议 ......................................................................................................... 10 1.2. 规范改进建议 ......................................................................................................... 10 1.3. 管理项目和产品 ..................................................................................................... 11 2 处理测试疑难问题 ..................................................................................................................... 11 3 设计规划..................................................................................................................................... 11
3.1. 规范产品设计 ......................................................................................................... 11 4 产品规划..................................................................................................................................... 11
4.1. 产品战略建议 ......................................................................................................... 11 4.2. 产品改进建议 ......................................................................................................... 11 5 需求规划..................................................................................................................................... 11
5.1. 需求评审 ................................................................................................................. 11
变更履历
一、 级别划分及申报条件 1. 级别划分
××公司软件研发类人员划分为4级,每级分为3等,具体为: 1.1. 级别划分
1.2. 3等设置
2. 申报条件
2.1. 学历及工作年限要求
2.2. 项目经验要求
2.3. 知识技能要求
二、 任职资格行为标准
一级(助理软件工程师)
1. 参与需求讨论(理解需求并执行)
1.1. 制作demo
与需求人员进行交流,理解系统的需求,确定系统的功能模块及功能结构 根据需求运用demo制作工具完成demo的功能制作
1.2. 理解需求文档
阅读理解需求规格说明书及相关文档,提出需求理解的相关问题或疑惑并与需求人员交
流确认
2. 参与设计
2.1. 参与编写概要设计文档
理解系统需求规格说明书,参与讨论确定系统设计的总体思想 完成相关模块的设计文档编写
参与评审概要设计的合理性、可实现性和可扩展性
2.2. 配合完成详细设计文档的编写
在理解需求规格说明书及概要设计总体思想的基础上完成相关功能的详细设计文档编
写
相关功能详细设计的合理性、可实现性和可扩展性
3. 功能开发
3.1. 确认开发任务
明确个人开发任务内容,确定工期并反馈
与项目经理沟通并确认模块开发计划,沟通计划
3.2. 开发搭建环境
根据开发环境要求在本机安装必备的开发工具、版本控制工具,并调试通过 确认开发环境是可用的,开发工程及配置遵循统一规范
3.3. 编写功能代码
在需求说明书及详细设计文档基础上,遵循代码规范要求完成分配功能的程序编写、调
试,完成代码编写
检查并确认代码注释遵循代码规范,代码编写遵循代码规范及优化原则 提交源代码和程序,根据需要编写模块实现说明书
3.4. 单元测试
以详细设计说明书为依据,审查模块实现说明书,看是否存在实现上的错误或遗漏 确定测试目标、计划及方案,设计测试用例,编写测试代码
根据测试用例及测试代码测试自己编写的功能模块,分析测试结果,定位问题,并修改
代码
单元测试发现的缺陷日清日结
3.5. 执行版本控制
熟悉项目版本控制日常使用规范要求,正确使用项目版本控制工具,协同团队做好版本
控制
确认自己提交代码编译正确并可运行,及时与其他成员沟通解决遇到的版本控制问题
4. 参与测试
4.1. 配合测试
根据需求说明书、模块设计以及实际的代码实现,与测试人员沟通并确认模块功能的用
例设计以及确认BUG情况
按照公司BUG管理要求及时修改自己负责模块的BUG 根据需要编写BUG修改记录
二级(软件工程师)
1 需求分析(理解)
1.1. 参与需求调研
配合需求调研,与需求分析人员进行沟通,了解基本项目需求情况,并总结问题,形成
《需求问题记录》。
根据已形成的《需求问题记录》与客户/项目经理进行交流沟通,确认问题及问题的基
本处理方法。并增加问题处理意见及处理方法形成《需求问题及处理建议》。提交需求人员进行需求确认。 1.2. 编写需求文档 根据项目定义的《需求规格说明书》模板以及需求的调研结果,补充《需求规格说明书》
技术部分。
提交《需求规格说明书》到相关负责人,由负责人确认工作成果是否满足要求。 参与需求评审,形成正式的评审报告,收集和评审相关的度量数据。
2 模块设计
2.1. 编写概要设计文档
详读《需求规格说明书》,了解模块功能需求;根据需求了解情况,整理存在的问题及
疑惑。与需求人员进行沟通确认,并确认解决方案。
根据概要设计文档的编写规范及版本规范进行系统具体功能概要模块设计文档编写;提
交概要设计文档,由项目经理或相关负责人确认审核。 参与概要设计评审(至少包括数据库设计评审),形成正式的评审报告,收集和评审相
关的度量数据。 2.2. 编写详细设计文档
详读《需求规格说明书》及《概要设计文档》,了解模块功能需求及设计思路;根据了
解情况,整理存在的问题及疑惑。与相关人员进行沟通确认,并确认解决方案。 根据详细设计文档的编写规范及版本规范进行系统具体功能概要详细设计文档编写;并
提交详细概要设计文档,由项目经理或相关负责人确认审核。
3 模块开发
3.1. 确认开发任务
根据项目进度安排与上级工作安排明确个人开发任务,了解工作内容、范围及期限;根
据对个人任务了解情况,根据个人能力,反馈是否可按要求完成。 根据最终确认结果,确认工作内容、范围及期限。 3.2. 开发搭建环境 搭建整体开发环境
搭建数据库开发环境,完成配置检验开发环境
3.3. 模块功能编写代码
根据开发任务熟悉本人开发模块的需求分析及模块设计;编写规范进行代码开发,并完
成模块功能代码开发 3.4. 解决一般技术问题
根据代码编写与自测发现开发中的问题,提交文档到mantis系统/或通知测试人员进行
记录
根据问题与相关人员进行讨论并分析问题形成解决方案;根据解决方案快速解决问题 3.5. 参与代码走查
配合代码走查人员检查项目中的代码,协助解释代码功能;根据走查结果整理项目中存
在的代码质量问题,提交检查记录情况至项目负责人安排处理
根据项目负责人安排,解决已存在的代码质量问题,并在Mantis上进行登记
3.6. 单元测试
根据自己编写的模块代码及核心代码、逻辑复杂代码进行单元测试代码编写
利用单元测试工具,测试模块功能,根据测试结果修改模块存在的问题,最终保证单元
测试全部通过
单元测试的缺陷日清日结
3.7. 参与整合联调
根据项目开发进度与各模块负责人沟通,确认整合联调任务内容,形成系统联调方案及
计划。
根据确认的联调任务,进行系统联调测试;配合解决联调过程中存在的问题,保证联调
顺利通过测试;并最终提供联调结果报告 3.8. 执行版本控制
根据项目版本控制日常规范要求,使用项目版本控制工具。 根据项目要求完成自己编写模块的版本控制,及时按质按量提交代码,保证版本的正确
与完整性。
4 模块测试
4.1. 搭建测试环境
准备部署安装介质、版本及数据;按照项目组规范,部署测试系统到指定地址或环境;
配合测试人员验证部署环境是否正常,及时解决存在问题。最终提供《测试环境发布报告》
4.2. 配合测试
及时登陆Mantis,了解自己负责模块的BUG情况;并及时与测试人员进行沟通,确认
问题;完成自己负责模块的BUG修改,并修改Mantis状态;确认Mantis已修改BUG的测试反馈情况,并及时处理。
5 部署支持
5.1. 编写部署文档
根据项目定义的《系统部署文档》模版和项目情况整理部署流程、系统软硬件环境要求
补充到《系统部署文档》对应章节;
最终完成《系统部署文档》编写,并提交负责人审批确认。
5.2. 协助解决部署问题
根据项目的部署实际情况分析过程中所产生问题原因;对问题进行分析并定位并协助解
决或对无法解决的问题进行上报。
根据部署情况进行经验总结,将问题及解决方案纳入项目《FAQ》文档。
三级(高级软件开发工程师)
1 支持售前工作
1.1. 技术可行性分析
根据项目情况了解技术和业务的需求,并整理出技术实现方案 评估各方案优缺点,并推荐合适的技术解决方案
参与技术方案决策工作,按公司要求的结构化决策流程执行技术选型决策。 1.2. 参与技术方案文档编写
根据项目情况与客户或售前人员进行沟通了解项目背景,设计项目技术方案 参与项目标书中技术部分编写
1.3. 评估工作量及风险
确认项目工作范围,对各模块进行细化,评估每个功能点的工作量并汇总,估算工作量 评估项目技术风险点,并制定相应的解决策略
2 控制和主导需求
2.1. 主导需求调研
与客户进行沟通,制定需求调研计划
按照调研计划进行需求调研,汇总需求文档 主导需求评审,形成评审报告
2.2. 需求分析
根据需求调研梳理需求,整理并分配下级完成需求文档(包括:业务需求说明书,需求
规格说明书)
需求demo的整体规划,组织和监控DEMO制作,形成DEMO 向客户提交业务需求说明文档及展示demo和确认需求
3 系统设计
3.1. 数据库设计
使用数据库设计工具设计数据库,完成数据库设计文档
3.2. 系统设计
确定系统整体设计框架,包括开发平台选择(如:.NET/JAVA.....)、第三方产品选择(商
业或者开源),完成框架设计
确定系统具体的功能模块,分配工作,形成任务分配计划文档,并进行跟进 制定模块设计评审标准,进行系统各模块评审,归档
4 测试规划
提出测试要求及测试范围,配合测试人员完成测试计划和测试用例 规划测试环境,对需要联调的项目进行仿真环境准备
5 部署规划
5.1. 系统部署
评估部署方案可行性及操作性,编写部分或者全部部署方案 对部署工作进行分析,解决相关问题,记录解决方案
对系统性能瓶颈进行定位,进行系统相应部分调优,包括:操作系统、数据库、应用服
务器、应用程序本身
6 核心模块开发
6.1. 核心功能代码编写
根据系统需求,进行核心功能设计及进行代码编写 根据核心模块,指导开发人员理解核心技术说明文档
6.2. 解决技术难题
及时发现并解决开发中的技术难点
进行技术创新,项目中能提出技术革新方案,提高项目的生产效率。
四级(资深软件工程师)
1 技术创新与优化
1.1. 技术发展建议
调研竞争对手,分析行业前景,提交可行性分析报告
分析技术设计现状,对公司的产品线采用的技术设计进行汇总分析 确定能符合公司产品线的技术方向 1.2. 规范改进建议
制定公司技术标准规范
度量标准规范执行,收集标准规范改进建议 分析过程度量数据,提交标准规范改进建议
1.3. 管理项目和产品
明确市场需求转换为软件/产品需求规格
推进公司内部产品化与知识共享,如:交易类产品组件的开发,报送类产品组件开发,数据
分析类的组件开发
评估项目/产品成本,指导项目/产品预研
识别与控制项目/产品开发的风险,改进项目/产品质量
解决产品层面的技术难题.如:性能调优,人机界面交互快速开发,测试驱动开发的仿
真产品
2 处理测试疑难问题
对疑难问题进行分类,对测试方式以及系统参数进行分析,并将所有问题信息存档 解决疑难问题,并对问题的解决过程,形成存档文件,对同一类问题形成指导性文档 建立完善疑难问题库,可以使公司的项目组可以查询、借鉴、提交和解决新问题、共享
经验、提高生产效率
3 设计规划
3.1. 规范产品设计
评审重点项目/产品的架构.概要设计与数据库设计,识别设计的错误与风险并提出解决
方案,使设计最优化
深度走查软件项目/产品的代码,保证设计和代码的一致性,发现缺陷代码,给出整改方
案,使系统性能最优化
主导产品线或所负责的项目的设计评审,形成评审报告和数据,确保评审相关的度量数
据在公司设定的过程能力基线内。
4 产品规划
4.1. 产品战略建议
调研竞争对手产品定位,优缺点
分析市场前景和产品现状
发布具有前瞻性产品发展规划
提供产品售前策略依据
4.2. 产品改进建议
依据市场需求明确改进目标
组织收集产品改进建议
分析改进建议
提交产品改进可行性报告
5 需求规划
5.1. 需求评审
参与项目需求规划,指导项目的需求调研
分析软件市场需求规格说明书中定义的需求,确定软件实现的可行性及合理性;是否表
述已被明确,清晰并无歧义;是否相互一致、无矛盾,是可验证、可测试的
提交需求评审报告,保证产品需求规格说明书的准确性,确保评审的度量数据在公司过
程基线内。