软件部组织结构及职责.docx
《软件部组织结构及职责.docx》由会员分享,可在线阅读,更多相关《软件部组织结构及职责.docx(17页珍藏版)》请在冰豆网上搜索。
软件部组织结构及职责
组织结构与职责
文件状态:
[√]草稿
[]正式发布
[]正在修改
文件标识:
软件研发部组织结构与职责
当前版本:
1.0
作者:
李彦景
完成日期:
2015-04-18
山东众志电子有限公司
ZHONGZHIELECTRONICSCO.LTD
版本历史
版本/状态
作者
参与者
起止日期
备注
1.0
李彦景
2015-04-18
初稿
目录
1.软件研发部工作职能5
2.软件研发部组织机构6
2.1组织机构图6
2.2组织结构描述7
3.与其他部门交叉的职责说明7
4.软件研发部各组任务以及职责7
4.1需求分析组7
4.2设计开发组8
4.3实施维护组8
5.主要业务流程9
5.1软件自主开发流程9
5.2更多流程9
6.软件研发部各岗位职责和任职要求10
6.1分管副总、部门经理11
6.2技术总监岗位职责12
6.3项目总监岗位职责12
6.4项目组长岗位职责14
6.3实施维护组长15
6.4系统工程师16
6.5高级软件工程师17
6.6中级软件工程师17
6.7实施培训工程师17
7.各个岗位需要具备能力18
7.1.net软件工程师18
7.2JAVA软件工程师18
7.3Android软件工程师19
7.4实施培训工程师19
8.按项目分组和按任务分组对比19
8.1按项目分组19
概述19
优点:
19
缺点:
20
8.2层次分组20
概述20
优点:
20
缺点:
20
1.软件研发部工作职能
●完成公司下达(或市场业务经理发起软件研发立项)的自主开发项目任务,具体包括需求调研与分析、系统设计、编码、测试、现场实施与培训、后期维护。
●完成公司下达的合作开发项目任务,具体包括软件研发部与市场项目经理协作提供业务框架,合作商提供技术框架,双方组成开发团队进行项目实施。
●完成公司下达的外包项目任务,由外包项目经理跟踪承包商提供的项目管理、需求分析、软件开发、测试,以及咨询、计划、实施、培训、安装、调试、维护、升级等过程。
●协助文控中心完成软件备案工作。
●完成相关软件技术支持任务。
●完成系统维护任务。
●完成领导交办的其他工作。
●软件研发部实行项目组承包责任制。
2.
软件研发部组织机构
2.1组织机构图
图2-1按项目组划分-组织结构图
图2-2按开发职责划分-组织结构图
图2-3按编程语言划分项目组-组织结构图
2.2组织结构描述
●软件研发部设立管理人员1位,负责管理工作。
●软件研发部根据项目情况,设置N位项目经理(自主开发、合作、外包)。
●自主开发软件项目
⏹需求分析组由2-3位分析、涉及其他人员组成,设项目组长一名。
⏹设计开发组由3-5位软件开发人员组成,设项目组长一名。
●实施维护组由1-2位实施与维护工程师组成,根据项目工程大小增加人员。
3.与其他部门交叉的职责说明
1.市场部-技术支持
2.系统集成部-无
3.人力资源部
1)对软件研发部日常工作进行后勤支持
2)对软件研发部人力资源管理进行指导
4.财务部:
协助项目费用与部门费用核算
5.文控中心-协助软件备案、资金申请
6.云计算-协助项目(实施部署在云计算的项目)运行
4.软件研发部各组任务以及职责
4.1需求分析组
●业务调研、需求分析提供需求报告
●系统设计提供概要涉及说明书。
●指导开发,为开发组提供支持
●提供概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
4.2设计开发组
●在概要设计的基础上,开发者需要进行软件系统的详细设计。
在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。
应当保证软件的需求完全分配给整个软件。
详细设计应当足够详细,能够根据详细设计报告进行编码。
●在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
●测试编写好的系统。
一个一个的确认每个功能。
●按照模块技术方向细分
注:
根据公司实情,软件研发部实行项目责任制,需求组和开发组“任务与职责”归并于项目小组下完成。
4.3实施维护组
在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用手册》、需求报告、设计报告、测试报告等双方合同约定的产物。
《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。
《用户使用手册》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。
5.主要业务流程
5.1软件自主开发流程
5.2更多流程
=》更多详细流程图,见附件《0.流程图》
6.
软件研发部各岗位职责和任职要求
6.1分管副总、部门经理
部门名称
软件研发部
岗位名称
分管副总、部门经理
直属上级
直属下级
岗位职责:
1、负责主持召开软件研发部工作例会及时部署和检查开发工作,进行过程控制
任务1:
负责与下属对工作计划进行分解,落实、明确考核重点,提出指导性意见
任务2:
对工作计划的执行进行过程监控,及时协调解决工作中出现的重要及突发事件
任务3:
总结季度、年度工作完成情况,上报公司领导
2、规范软件研发部日常管理工作
任务1:
审定部门内部管理各项规章制度
任务2:
组织监督部门内各项规章制度、开发技术规范、流程的落实
任务3:
日常事务性管理
3、管理硬件资源
任务1:
根据业务的发展,适时调整资源配置,使资源利用更加优化
任务2:
筹备大型投资项目(软件信息技术类)的招标,做好前期准备工作
4、负责下属员工技术培训的工作,努力为下属员工创造发展空间
任务1:
审定信息部人员培训计划
任务2:
组织各岗位人员的技术培训,不断提高其技术水平,更好地为经营管理服务
5、负责下属员工的考核与评价
任务1:
根据工作计划的指标分解情况,对下属员工的工作业绩进行考评
任务2:
根据考评结果,提出下属员工的奖惩方案
6、审查需求分析,是否达标
7、负责督促检查软件开发计划执行情况,保证项目按期完成
8、完成领导交办的其它任务
6.2技术总监岗位职责
部门名称
软件研发部
岗位名称
技术总监
直属上级
分管副总
直属下级
项目组组长
管理职责
1.参与制定公司软件产品的发展方向,确定公司产品框架及开发实施计划
2.规划产品研发进度安排,根据公司需要确定产品开发周期及人员安排
3.全面监控产品开发质量、进度和成本控制
4.针对公司具体项目实施,控制项目需求变更,支持项目实施的顺利进行
技术职责
1.解决目前公司已使用技术框架中存在的问题并进行有效优化
2.负责培训公司软件开发人员的整体开发技能
3.负责公司软件构件库的搭建、第三方控件的选型
4.组织技术、产品开发与创新、新技术研发
6.3项目总监岗位职责
部门名称
软件研发部
岗位名称
项目总监
直属上级
分管副总
直属下级
项目组组长
主要职责:
1、计划:
a)项目范围、项目质量、项目时间、项目成本的确认。
b)项目过程/活动的标准化、规范化。
c)根据项目范围、质量、时间与成本的综合因素的考虑,进行项目的总体规划与阶段计划。
d)各项计划得到上级领导、客户方及项目组成员认可。
2、组织:
a)组织项目所需的各项资源。
b)设置项目组中的各种角色,并分配好各角色的责任与权限。
c)定制项目组内外的沟通计划。
(必要时可按配置管理要求写项目策划目录中的《项目沟通计划》)
d)安排组内需求分析师、客户联系人等角色与客户的沟通与交流。
e)处理项目组与其它项目干系人之间的关系。
f)处理项目组内各角色之间的关系、处理项目组内各成员之间的关系。
g)安排客户培训工作。
3、领导:
a)保证项目组目标明确且理解一致。
b)创建项目组的开发环境及氛围,在项目范围内保证项目组成员不受项目其它方面的影响。
c)提升项目组士气,加强项目组凝聚力。
d)合理安排项目组各成员的工作,使各成员工作都能达到一定的饱满度。
e)制定项目组需要的招聘或培训人员的计划。
f)定期组织项目组成员进行相关技术培训以及与项目相关的行业培训等。
g)及时发现项目组中出现的问题。
h)及时处理项目组中出现的问题。
4、控制
a)保证项目在预算成本范围内按规定的质量和进度达到项目目标。
b)在项目生命周期的各个阶段,跟踪、检查项目组成员的工作质量;
c)定期向领导汇报项目工作进度以及项目开发过程中的难题。
d)对项目进行配置管理与规划。
e)控制项目组各成员的工作进度,即时了解项目组成员的工作情况,并能快速的解决项目组成员所碰到的难题。
f)不定期组织项目组成员进行项目以外的短期活动,以培养团队精神。
项目经理是在整个项目开发过程中项目组内对所有非技术性重要事情做出最终决定的人。
6.4项目组长岗位职责
部门名称
软件研发部
岗位名称
软件-项目开发组长、项目外包组长
直属上级
技术总监、项目总监
直属下级
软件工程师、系统工程师
岗位职责:
1》自主研发项目
#1担当需求组长职责
●初步协调需求组工作提供项目需求报告、需求分析说明书、概要设计说明书
#2担当设计开发组长职责
●负责协调开发组工作
●协助制定软件开发、测试、维护等方面的技术规范、流程和标准
●制定分解开发计划、组织协调开发进程、跟踪开发进度、督导开发计划顺利执行。
●协助本组成员提高工作效率、按时保质保量完成任务
#其他
●计划、安排、组织、协调项目工作
●监控项目进展,按时保质保量完成任务
●向分管副总、部门经理汇报项目进展
2》外包或合作项目
●协调项目工作、监控项目进展、掌握项目操作应用技能,为后期运维组提前做好技术指导储备。
6.3实施维护组长
部门名称
软件研发部
岗位名称
实施维护组长
直属上级
项目组长
直属下级
岗位职责:
1、制定组织协调维护进程、跟踪维护进度、督导维护计划顺利执行。
2、填写《维护周报》,发送给软件研发部项目组长、市场业务经理,抄送给部门经理。
3、每周召开本组碰头会,了解计划执行情况,确保按计划执行任务。
4、协助维护组成员提高工作效率、按时保质保量完成任务。
6.4系统工程师
部门名称
软件研发部
岗位名称
系统工程师
直属上级
项目组长
直属下级
岗位职责:
1、协助需求分析师进行需求调研。
2、分析、解析《用户需求说明书》,将系统需求整理成《软件需求规格说明书》;
3、负责解决《软件需求规格说明书》被评审后发现的问题;
4、进行架构设计,并完成《系统架构说明书》。
5、根据《系统架构说明书》对系统进行建模,形成《系统概要设计》;
6、按《系统概要设计》进行数据库逻辑设计和物理设计,形成《数据库字典》
7、协助高级软件工程师按《系统概要设计》进行《系统详细设计》,任务结果包括:
开发出来的软件大概的界面是怎样?
方便什么人使用?
什么人可以使用什么功能?
方便到什么程度?
大概的硬件要求是怎样等?
。
8、指导软件工程师按《系统详细设计》进行代码实现。
9、负责重点代码检查;
10、定期对项目组成员进行技术方面的培训。
6.5高级软件工程师
部门名称
软件研发部
岗位名称
高级软件工程师
直属上级
项目(研发、外包)组长
直属下级
岗位职责:
1、完成《系统详细设计说明书》,并进行核心代码实现;
2、对自己代码进行复查,并进行简单的测试;
3、进行编码工作、软件代码的优化;
4、更多
●参与项目软件需求的讨论,了解项目软件需求和架构
●参与软件的模块详细设计工作
●负责编写程序开发文档
6.6中级软件工程师
部门名称
软件研发部
岗位名称
中级软件工程师
直属上级
项目组长
直属下级
岗位职责:
5、参与项目软件需求的讨论,了解项目软件需求和架构;
6、根据《系统详细设计说明书》进行代码实现;
7、对自己代码进行复查,并进行简单的测试;
8、指导初级软件工程师进行编码工作;
6.7实施培训工程师
部门名称
软件研发部
岗位名称
中级软件工程师
直属上级
项目组长
直属下级
岗位职责:
1、完成软件实施任务。
2、完成软件培训任务。
3、完成软件维护任务。
4、及时向项目组长汇报维护情况,抄送给市场业务经理、软件研发部门经理。
5、协助市场业务经理进行项目验收、验收报告。
4.
7.各个岗位需要具备能力
7.1.net软件工程师
1、计算机相关专业,本科以上学历;
2、熟练.NET开发,具有2年以上web项目开发经验,1年的大型项目开发经验,熟悉A,JavaScript,jquery,页面前端开发,Winform,一个或多个技术;
3、SQLServer或Oracle数据库,精通SQL语言、存储过程;
4、熟悉jquery、ajax、javascript、html、css、xhtml等Web前端交互技术,熟练使用CSS+DIV布局;
5、精通多层架构,具有良好、规范的编程习惯和文档编写习惯;
6、良好的客户沟通能力,能够调研需求,引导客户;有大型项目开发实施经验,能推进项目进展,保证进度。
7、有良好的沟通技巧以及优秀的言语表达能力,具备良好的团队合作精神。
7.2JAVA软件工程师
1、计算机相关专业,2年以上工作开发经验;
2、精通Java相关技术,熟练Hibernate、Spring、Struts等相关主流框架,有相关开发经验;
3、熟悉Javascript、HTML编码,有AJAX相关开发经验及ExtJS等前台UI开发经验者优先;
4、熟悉掌握SQL语言,存储过程开发,熟悉Oracle、MySQL等数据库开发、SQL性能调优;
5、熟悉TCP/IP,HTTP等协议,有较丰富的WEB系统开发经验;
6、熟悉掌握Tomcat、websphere、Weblogic等应用服务器之一;
7、熟练使用git版本控制系统;
8、熟悉软件开发流程、设计模式,较好的文档能力及良好的编码风格;
9、良好的理解和表达能力,善于沟通,很好的团队合作意识
7.3Android软件工程师
1、有一年以上Android相关工作经验,且有自己独立完成的Android项目;
2、精通java语言,掌握sqlserver、mysql、oracle至少一个数据库的操作;
3、熟悉Android客户端和服务端的通信,熟练使用Eclipse、AndroidSDK等开发工具;
4、精通Html5移动web开发技术;
5、善于协调、沟通,有团队合作精神,能承担工作压力。
7.4实施培训工程师
6、熟悉公司业务和软件产品
7、若干主流开发工具或语言:
ASP.NET,C#、JavaScript、vs2010或Java或android等。
8、熟悉数据库的设计、开发、优化、维护。
9、有良好的沟通技巧以及优秀的言语表达能力,具备良好的团队合作精神。
8.按项目分组和按任务分组对比
8.1按项目分组
概述
目的解决软件研发部产生的都负责又都不负责的情况,所有压力都集中在部门经理层面,各个人有没有压力。
按项目组分,可以奖项目压力分解到几个人员身上责任更明确。
开发组需要参与软件从调研、分析、设计、开发、部署、实施、培训、维护的过程
优点:
分解任务压力,责任相对明确。
缺点:
项目个性化、开发、人力资源占用,对开发组成员能力综合要求较高。
产能受限制于项目组数量。
8.2层次分组
概述
解决项目组所有人员参与每个项目的生命全过程,分工细化,形成软件产品
优点:
人员水平层次化,容易形成软件产品,人员越发专业化。
缺点:
对没个层次的要求特别高。
形成的文档资料必须相当齐全,使用性高。
每个项目必须开发完成测试通过。
后才能部署实施。
结论:
对比按项目分组和按层次分组的优缺点,结合公司项目实际情况,合理搭配项目小组,项目小组人员配置原则上为2-N人。
机构调整实施步骤