1、产品研发部规章制度及软件项目管理方法第一部分:产品研发部规章制度一、 日常工作制度:1、 关于休假、加班:严格遵守公司的考勤制度,如有事,提前书面形式填写请假申请,批准后方可休假,如情况紧急不能提前填写请假申请,要电话请示上级领导,并在休假后补办请假手续.研发部人员在项目紧张时尽量不提出请假申请。研发人员原则上不安排加班,研发进度根据公司要求结合项目实际由项目总监负责制定,项目组长协调安排工作。项目组长根据进度需要安排的加班,加班费用由项目奖金中支出.公司工作需要硬性安排的加班,加班费有公司支出.相关标准按照国家相关制度执行。2、 研发部员工守则:遵纪守法,忠于职守,克己奉公。维护公司声誉,保
2、护公司利益.服从领导,关心下属,团结互助。爱护公物,节约开支,杜绝浪费.努力学习,提高水平,精通业务。工作中公开、公正、公平的原则。积极进取,勇于开拓,创新贡献。产品思维,工匠精神,互联网思维。3、 员工工作日志/工作周报:l 工作日志制度的目的是形成严格的工作跟踪和积累习惯,要求部门中项目负责人以下人员按要求每日记录。l 工作日志是部门员工的工作记录载体,起到部分绩效考核和浮动工资的确定依据的作用。l 工作日志包含每日计划和完成情况,每日工作始终时间,每日工作饱和度(5为最高,1为最低,如为请假,请注明“事假”或“病假”),次周计划,以及问题、意见和建议。l 工作日志严格要求每日填写,绝不允
3、许在上交前统一填写。填写时注意清空原有内容。如发现某些栏目多周雷同的情况,将进行警告。l 每日工作内容如无特殊情况,至少需要写3条以上。叙述工作内容要求尽可能说明清楚。不允许简单的如“修改错误的描述。l 工作日志严格要求在次周上午10:00前提交.不提交工作周报将适当予以惩罚.对于未提交日志的人员,部门总监保证当周内口头通知。l 工作日志以工作汇报QQ群形式提交给部门总监和公司总经理。部门总监收到后保证第一时间进行检视,并依此进行考核。文件名格式模板:名字:*岗位:#工程师时间:2016-12-06任务(模块名称) 完成情况 遇到问题/需要帮助行业圈首页开发 100 无行业圈 评论、点赞 10
4、0 无行业圈图片、文本转发、收藏 100 无。其中*为员工姓名,为岗位名称(如iOS、php),日期为提交日期.研发总监根据日报情况汇总审查确认后作为周报的一部分,考核后在周六前发送到总经理邮箱(或QQ)4、 项目月报制度:l 项目月报制度是保证项目顺利推进的一种阶段性总结和计划载体的机制。l 项目月报由项目负责人负责拟定。l 项目月报应根据实际情况包含本月计划、完成情况(含计划的偏离情况)、成果和不足、突发事务及其解决情况、项目组成员工作情况、客户反馈情况、下月计划,以及问题、建议和意见等内容。l 项目月报由项目负责人于每月第五个工作日以前,通过Email提交给部门总监,经部门总监审订后发布
5、到项目月报文件夹中。l 部门所有成员可以查阅已发布的项目月报.l 项目月报的文件名格式为*项目月报($,201*年*月*日)。doc。其中*为项目名称,为项目负责人姓名,日期为提交日期5、 项目例会制度:l 每周周一上午10:00在公司会议室召开,项目所有人员(含参与部门人员为主导的项目并起核心作用的其他部门人员)参加.l 会议由部门总监召集,并由部门总监主持,公司总经理根据实际情况列席。l 会议议程:a)各项目负责人回顾上月工作情况、成果和不足,以及当月的大致工作计划。b)部门总监总结上月工作,对不足的问题提出解决办法。c)部门总监宣布公司近期动态和相关事项。d)部门总监做出工作方面的安排。
6、e)部门人员畅所欲言,提出问题、想法、建议与意见.大家讨论。f)部门总监解答部门人员的问题,并做出总结。l 部门人员轮流做会议记录,并在会议结束后第二天内整理并在svn中发布。文件名格式:项目组201*年月日例会(整理)。doc.其中日期为例会召开日期,*为会议记录整理人的姓名。6、 部门例会制度(可选):l 每周五下午在部门会议室召开,具体项目的所有参与人员参加。l 会议由部门总监召集并主持,公司总经理根据实际情况列席。l 会议指定固定人员做会议记录,并在第二周周一上午9:30前整理并通过邮件发送给部门总监。l 部门总监修改并认可会议记录后,在第二周周一上午11:00前在svn中发布。文件名
7、格式:*研发部例会(201*年*月*日)。doc.其中*为项目名称,日期为例会召开日期.二、 研发部组织结构:三、 研发部人员岗位制度:1、 研发部经理/总监岗位职责:职责:1) 制定产品的整体技术方案及相应的目标。2) 制定各个工作的详细任务表,跟踪这些任务的执行情况,进行控制。3) 组织会议对程序进行评审。4) 综合具体情况,对各种不同方案进行取舍并做出决定。5) 协调各项目参与人员之间的关系。2、 项目组长岗位职责:1) 对研发总监负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作.2) 参与需求调研、项目可行性分析、技术可行性分析和需求分析。3) 熟
8、悉并熟练掌握交付软件部开发的软件项目的相关软件技术。4) 负责向项目经理及时反馈软件研发中的情况,并根据实际情况提出改进建议。5) 参与软件研发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。6) 负责相关技术文档的拟订。7) 负责对业务领域内的技术发展动态进行分析研究.8) 负责向项目经理、部门总监/副经理及时反馈实际工作中遇到的问题,并提出改进建议。9) 承担相应的保密职责.10) 完成部门总监/副经理或项目经理交办的其它工作。3、 一般开发人员岗位职责:1) 根据项目具体要求,承担开发任务,按计划完成任务目标。2) 配合产品经理完成软件系统及模块的需求
9、调研与需求分析3) 配合产品经理完成软件系统及模块的设计4) 独立完成软件系统及模块的编码5) 协助测试试人员完成软件系统及模块的测试6) 负责编制与项目相关的技术文档 4、 测试人员岗位职责:1) 根据产品需求制定测试计划,按计划完成测试目标。2) 根据产品需求制定测试用例,完善测试流程3) 独立完成软件系统及模块的测试,执行各个类型的测试流程4) 配合开发人员完成APP的发布工作四、 软件研发人员绩效考核:1、 目的:对软件研发的过程所产生的软件项的质量和过程进行定量的评价,用评价的结果指导软件的开发过程,不断地提高软件研发质量水平,并依据度量记录来考核软件研发人员的工作绩效。2、 软件项
10、包括:1)技术文档:主要包括:可行性分析报告、需求分析报告、软件功能规格说明、开发计划、质量计划、系统设计报告、测试文档、技术报告、用户手册、总结报告等; 2)计算机程序。3、 度量数据来源:1)项目计划; 2)评审报告; 3)测试报告; 4)问题报告; 5)软件维护记录;4、 质量度量:度量指标,主要根据各类软件项检查表的检查指标来确定,例如,软件需求规格说明书检查表(见附录1),有10个检查指标,则根据具体项目检查侧重点不同,可从中选择相应的检查指标作为度量指标。 质量等级:1)软件项的质量等级的确定根据度量综合指标进行。 2)度量综合指标计算公式为: Total = QiMi5、 过程度
11、量:1) 及时度:以软件项目计划规定的的完成时间为基准2) 成熟度:以软件项检查、评审、测试的结果为评价基准3) 改善效率:在检查、评审、测试的结果的基础上改善软件项结果,以改善的时间是否影响后续阶段的完成和计划的总体完成时间为评分依据6、 人员绩效考核:1) 开发人员:软件部门根据软件项综合评价表每个月或季度统计各开发人员所负责的软件项的平均得分值,比较开发人员软件项的平均得分值与绩效考核标准范围,确定开发人员绩效考核评价.根据相应的绩效考核成绩决定每个开发人员的奖励等级。2) 项目经理:软件部门每个月或季度确定了项目组成员绩效考核评价后,计算项目组的平均得分值,比较项目组的平均得分值与绩效
12、考核标准范围,确定项目经理、开发经理绩效考核评价。3) 测试人员考核:测试人员的缺陷查找质量度量表作为月度考核或季度考核依据,软件部门根据软件项综合评价表每个月或季度统计各检查人员或测试人员缺陷查找的平均得分值,比较检查人员或测试人员缺陷查找的平均得分值与绩效考核标准范围,确定检查人员或测试人员绩效考核评价,绩效考核为”良好以上人员奖励相应金额。五、 软件资料控制管理:软件测试由开发组和测试组人员共同进行,提前编写测试计划、测试用例,最后完成测试报告。软件研发任务完成后,要提交一份详细资料给公司IT人员。开发过程亦和公司IT专门人员配合。IT工作也可由研发部经理安排专门人员负责。六、 产品研发
13、部门项目奖金:根据公司相关项目性质,制定项目奖的比例,公司计划类项目和工程盈利性项目可按照不同比例制定,盈利性项目可按照利润的百分比制定项目奖,非盈利性项目由公司在项目完成后研究给与适当项目奖。项目奖由研发部总监、项目组长根据项目组成员实际工作情况,合理安排比例,报请公司批准后由公司统一发放。七、 关于部门协作的规定:运营部,不设立专门的平面设计人员及技术文档、宣传文档人员,相关工作需部门之间合作完成,部门之间的合作,由部门总监协调,具体适宜由当事人协商解决,本着对公司工作负责的原则,部门总监根据实际工作安排决定有哪些人配合。第二部分:软件项目管理方法软件项目管理是为了使软件项目能够按照预定的
14、成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动.软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。一、 软件项目的计划:软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。软件项目管理过程从项目计划活动开始,而第一项计划活动就是估算
15、:需要多长时间、需要多少工作量、以及需要多少人员.此外,我们还必须估算所需要的资源(硬件及软件)和可能涉及到的风险。为了估算软件项目的工作量和完成期限,首先需要预测软件规模。度量软件规模的常用方法有直接的方法-LOC(代码行),间接的方法FP(功能点).这两种方法各有优缺点,应该根据软件项目的特点选择适用的软件规模度量方法。二、 软件项目的控制:对于软件研发项目而言,控制是十分重要的管理活动。软件质量保证(SQA,Software Quality Insurance)是在软件过程中的每一步都进行的“保护性活动。SQA主要有基于非执行的测试(也称为评审)、基于执行的测试(即通常所说的测试)和程序
16、正确性证明。(1)用分阶段的生命周期计划严格管理; (2)坚持进行阶段评审; (3)实行严格的产品控制; (4)采用现代程序设计技术; (5)结果应能够清楚地审查; (6)开发小组地人员应该少而精; (7)承认不断改进软件工程实践地必要性。软件配置管理(SCM,Software configuration management)是应用于整个软件过程中的保护性活动,它是在软件整个生命周期内管理变化的一组活动。1、目前软件研发中面临的问题 。在有限的时间、资金内,要满足不断增长的软件产品质量要求; 。开发的环境日益复杂,代码共享日益困难,需跨越的平台增多; .程序的规模越来越大; 。软件的重用性需
17、要提高; 。软件的维护越来越困难。 2、软件配置管理应提供的功能,在ISO9000。3中,对配置管理系统的功能作了如下描述: 。唯一地标识每个软件项的版本; .标识共同构成一完整产品的特定版本的每一软件项的版本; 。控制由两个或多个独立工作的人员同时对一给定软件项的更新; 。控制由两个或多个独立工作的人员同时对一给定软件项的更新; 。按要求在一个或多个位置对复杂产品的更新进行协调; .标识并跟踪所有的措施和更改;这些措施和更改是在从开始直到放行期间,由于更改请求或问题引起的.3、版本管理 软件配置管理分为版本管理、问题跟踪和建立管理三个部分,其中版本管理是基础。版本管理应完成以下主要任务: .
18、建立项目; 。重构任何修订版的某一项或某一文件; 。利用加锁技术防止覆盖; .当增加一个修订版时要求输入变更描述; 。提供比较任意两个修订版的使用工具; 。采用增量存储方式; 。提供对修订版历史和锁定状态的报告功能; .提供归并功能; 。允许在任何时候重构任何版本; 。权限的设置; 。晋升模型的建立; .提供各种报告.三、 软件项目管理的组织形式:软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。公司实行项目管理时,首先要成立项目管理委员会,项
19、目管理委员会下设项目管理小组、项目评审小组和软件产品项目组. 1、项目管理委员会项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、总监组成。主要职责如下: (1)依照项目管理相关制度,管理项目;(2)监督项目管理相关制度的执行;(3)对项目立项、项目撤消进行决策;(4)任命项目管理小组组长、项目评审委员会主任、项目组组长。 2、项目管理小组 项目管理小组对项目管理委员会负责,一般由公司管理人员组成.主要职责如下: (1)草拟项目管理的各项制度; (2)组织项目阶段评审; (3)保存项目过程中的相关文件和数据; (4)为优化项目管理提出建议。 3、项目评审小组 项目评审小组对项目管理
20、委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下: (1)对项目可行性报告进行评审; (2)对产品计划和阶段报告进行评审; (3)对开发计划和阶段报告进行评审; (4)项目结束时,对项目总结报告进行评审。4、软件产品项目组 软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设研发总监和产品总监.成员一般由公司技术人员、运营和产品人员构成.主要职责是:根据项目管理委员会的安排具体负责项目的软件研发和产品市场调研及运营工作。四、 人员的组织与管理:软件研发中的开发人员是最大的资源。对人员的配置、调度安排贯穿整个软
21、件过程,人员的组织管理是否得当,是影响对软件项目质量的决定性因素。 首先在软件研发的一开始,要合理的配置人员,根据项目的工作量、所需要的专业技能,再参考各个人员的能力、性格、经验,组织一个高效、和谐的开发小组。一般来说,一个开发小组人数在5到10人之间最为合适,如果项目规模很大,可以采取层级式结构,配置若干个这样的开发小组。 在选择人员的问题上,要结合实际情况来决定是否选入一个开发组员。并不是一群高水平的程序员在一起就一定可以组成一个成功的小组。作为考察标准,技术水平、与本项目相关的技能和开发经验、以及团队工作能力都是很重要的因素。一个一天能写一万行代码但却不能与同事沟通融洽的程序员,未必适合
22、一个对组员之间通讯要求很高的项目.还应该考虑分工的需要,合理配置各个专项的人员比例。例如一个网站开发项目,小组中有页面美工、后台服务程序、数据库几个部分,应该合理的组织各项工作的人员配比。在决定一个开发组的开发人员数量时,除了考虑候选人素质以外,还要综合考虑项目规模、工期、预算、开发环境等因素的影响。在组建开发组时,还应充分估计到开发过程中的人员风险。由于工作环境、待遇、工作强度、公司的整体工作安排和其他无法预知的因素,一个项目尤其是开发周期较长的项目几乎无可避免的要面临人员的流入流出。如果不在项目初期对可能出现的人员风险进行充分的估计,作必要的准备,一旦风险转化为现实,将有可能给整个项目开发
23、造成巨大的损失。以较低的代价进行及早的预防是降低这种人员风险的基本策略。具体来说可以从以下几个方面对人员风险进行控制: a保证开发组中全职人员的比例,且项目核心部分的工作应该尽量由全职人员来担任, 以减少兼职人员对项目组人员不稳定性的影响. b建立良好的文档管理机制,包扩项目组进度文档、个人进度文档、版本控制文档、整体技术文档、个人技术文档、源代码管理等.一旦出现人员的变动,比如某个组员因病退出,替补的组员能够根据完整的文档尽早接手工作。 c加强项目组内技术交流,比如定期开技术交流会,或根据组内分工建立项目组内部的开发小组,是开发小组内的成员能够相互熟悉对方的工作和进度,能够在必要的时候替对方
24、工作。 d对于项目经理,可以从一开始就指派一个副经理在项目中协同项目经理管理项目开发工作,如果项目经理退出开发组,副经理可以很快接手.但是只建议在项目经理这样的高度重要的岗位采用这种冗余复制的策略来预防人员风险,否则将大大增加项目成本. e为项目开发提供尽可能好的开发环境,包括工作环境、待遇、工作进度安排等等,同 时一个优秀的项目经理应该能够在项目组内营造一种良好的人际关系和工作氛围。良好的开发环境对于稳定项目组人员以及提高生产效率都有不可忽视的作用。五、 软件项目管理的的原则:1平衡原则 2高效原则3分解原则 4实时控制原则 5分类管理原则6简单有效原则 7规模控制原则六、 软件研发不同阶段
25、必须具备的文档资料:项目阶段所需文档开始编码前需求分析总体设计详细设计(总体设计和详细设计可以合并在同一个文当中)提交验收测试计划(对于用户前台,需要手工测试的模块)产品发布操作手册公司项目开发周期分为以下几个步骤:步骤说明参与角色生成文档或程序(打号为可选)可行性分析对项目的技术,功能需求和市场进行调研和初步分析,确定是否需要立项开发。部门主管核心技术员可行性分析报告技术调研报告*立项正式立项,由部门主管指定项目经理,项目经理制定初步计划。初步计划包括设计和开发时间的初步估算。部门主管核心技术员项目初步计划需求分析对项目进行详细的需求分析,编写需求分析文档.对于B/S结构软件系统需要制作静态
26、演示页面。需求分析文档和静态演示页面需要通过部门主管审批才能够进行到下一个步骤项目经理项目核心小组需求分析文档静态演示页面项目计划修订版本详细设计根据需求分析对项目进行详细设计。详细设计以后,项目经理同部门主管一起指定项目小组开发成员。项目经理项目核心小组详细设计文档项目计划确定版本开发根据设计开发项目,由美工对操作界面进行美化。项目经理项目开发员美工项目计划修订版本测试项目经理提交测试申请,由测试部门对项目进行测试。项目小组配合测试部门修改软件中的错误。项目经理项目开发员测试部测试申请测试计划测试报告项目验收项目验收归档部门主管项目经理项目所有文档和程序七、 软件评审:软件评审并不是在软件研
27、发完毕后进行评审,而是在软件研发的各个阶段都要进行评审。因为在软件研发的各个阶段都可能产生错误,如果这些错误不及时发现并纠正,会不断地扩大,最后可能导致开发的失败. 软件评审是相当重要的工作,也是目前国内开发最不重视的工作。 (1)评审目标 。发现任何形式表现的软件功能、逻辑或实现方面的错误; .通过评审验证软件的需求; .保证软件按预先定义的标准表示; 。已获得的软件是以统一的方式开发的; 。使项目更容易管理。 (2)评审过程 A、召开评审会议:一般应有3至5人参加,会前每个参加者做好准备,评审会每次一般不超过2小时.B、会议结束使必须做出以下决策之一:接受该产品,不需做修改;由于错误严重,
28、拒绝接受;暂时接受该产品。C、评审报告与记录;所提出的问题都要进行记录,在评审会结束前产生一个评审问题表,另外必须完成评审简要报告. (3)评审准则 。评审产品,而不是评审设计者(不能使设计者有任何压力); .会场要有良好的气氛; 。建立议事日程并维持它(会议不能脱离主题); .限制争论与反驳(评审会不是为了解决问题,而是为了发现问题; .指明问题范围,而不是解决提到的问题; .展示记录(最好有黑板,将问题随时写在黑板上); 。限制会议人数和坚持会前准备工作; 。对每个被评审的产品要尽力评审清单(帮助评审人员思考); 。对每个正式技术评审分配资源和时间进度表; .对全部评审人员进行必要的培训; .及早地对自己的评审做评审(对评审准则的评审)序号编写人编写时间审核人审核时间1杨林2016/12/6蔡总第 12 页 共 12 页