第1页共12页软件开发部规章制度及软件项目管理方法第一部分:软件开发部规章制度一、日常工作制度:1、关于休假、加班:严格遵守公司的考勤制度,如有事,提前书面形式填写请假申请,批准后方可休假,如情况紧急不能提前填写请假申请,要电话请示上级领导,并在休假后补办请假手续。开发部人员在项目紧张时尽量不提出请假申请。研发人员原则上不安排加班,研发进度根据公司要求结合项目实际由项目组长负责制定,项目组长协调安排工作。项目组长根据进度需要安排的加班,加班费用由项目奖金中支出。公司工作需要硬性安排的加班,加班费有公司支出。相关标准按照国家相关制度执行。2、开发部员工守则:遵纪守法,忠于职守,克己奉公。维护公司声誉,保护公司利益。服从领导,关心下属,团结互助。爱护公物,节约开支,杜绝浪费。努力学习,提高水平,精通业务。积极进取,勇于开拓,创新贡献。3、员工工作日志:工作日志制度的目的是形成严格的工作跟踪和积累习惯,要求部门中项目负责人以下人员按要求每日记录。工作日志是部门员工的工作记录载体,起到部分绩效考核和浮动工资的确定依据的作用。工作日志包含每日计划和完成情况,每日工作始终时间,每日工作饱和度(5为最高,1为最低,如为请假,请注明“事假”或“病假”),次周计划,以及问题、意见和建议。工作日志严格要求每日填写,绝不允许在上交前统一填写。填写时注意清空原有内容。如发现某些栏目多周雷同的情况,将进行警告。每日工作内容如无特殊情况,至少需要写3条以上。叙述工作内容要求尽可能说明清楚。不允许简单的如“修改错误”的描述。工作日志严格要求在次周上午10:00前提交。不提交工作周报将适当予以惩罚。对于未提交日志的人员,部门经理保证当周内口头通知。工作日志以Email形式提交给项目负责人和部门经理。部门经理收到后保证第一时间第2页共12页进行回复,并依此进行考核。文件名格式:《***工作日志(200*年*月*日).doc》。其中***为员工姓名,日期为提交日期。4、项目月报制度:项目月报制度是保证项目顺利推进的一种阶段性总结和计划载体的机制。项目月报由项目负责人负责拟定。项目月报应根据实际情况包含本月计划、完成情况(含计划的偏离情况)、成果和不足、突发事务及其解决情况、项目组成员工作情况、客户反馈情况、下月计划,以及问题、建议和意见等内容。项目月报由项目负责人于每月第五个工作日以前,通过Email提交给部门经理,经部门经理审订后发布到项目月报文件夹中。部门所有成员可以查阅已发布的项目月报。项目月报的文件名格式为《***项目月报($$$,200*年*月*日).doc》。其中***为项目名称,$$$为项目负责人姓名,日期为提交日期5、项目例会制度:每月第一个周一上午10:30在公司会议室召开,部门所有人员(含参与部门人员为主导的项目并起核心作用的其他部门人员)参加。会议由部门经理召集,并由部门经理主持。会议议程:a)各项目负责人回顾上月工作情况、成果和不足,以及当月的大致工作计划。b)部门经理总结上月工作,对不足的问题提出解决办法。c)部门经理宣布公司近期动态和相关事项。d)部门经理做出工作方面的安排。e)部门人员畅所欲言,提出问题、想法、建议与意见。大家讨论。f)部门经理解答部门人员的问题,并做出总结。部门人员轮流做会议记录,并在会议结束后第二天内整理并在Vss中发布。文件名格式:《软件二部200*年*月*日例会(***整理).doc》。其中日期为例会召开日期,***为会议记录整理人的姓名。6、部门例会制度:每周五下午在部门会议室召开,具体项目的所有参与人员参加。会议由项目负责人召集并主持,部门经理根据实际情况列席。会议指定固定人员做会议记录,并在第二周周一上午9:30前整理并通过邮件发送给项目负责人。项目负责人修改并认可会议记录后,在第二周周一上午11:00前在Vss中发布。文件名格式:《***项目组例会(200*年*月*日).doc》。其中***为项目名称,日期为例会召开日期。第3页共12页二、软件开发部组织结构:开发部经理项目小组程序员A软件测试系统分析员系统设计程序员N项目组长A项目小组程序员A软件测试系统分析员系统设计程序员N项目组长B项目小组程序员A软件测试系统分析员系统设计程序员N项目组长N三、开发部人员岗位制度:1、开发部经理岗位职责:职责:1)制定产品的目标。2)制定各个工作的详细任务表,跟踪这些任务的执行情况,进行控制。3)组织会议对程序进行评审。4)综合具体情况,对各种不同方案进行取舍并做出决定。5)协调各项目参与人员之间的关系。2、项目组长岗位职责:1)对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作。2)参与需求调研、项目可行性分析、技术可行性分析和需求分析。3)熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。4)负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。5)参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。第4页共12页6)负责相关技术文档的拟订。7)负责对业务领域内的技术发展动态进行分析研究。8)负责向项目经理、部门经理/副经理及时反馈实际工作中遇到的问题,并提出改进建议。9)承担相应的保密职责。10)完成部门经理/副经理或项目经理交办的其它工作。3、一般开发人员岗位职责:1)根据项目具体要求,承担开发任务,按计划完成任务目标。2)配合系统分析人员完成软件系统及模块的需求调研与需求分析3)配合系统分析人员完成软件系统及模块的设计4)独立完成软件系统及模块的编码5)协助测试试人员完成软件系统及模块的测试6)负责编制与项目相关的技术文档四、软件研发人员绩效考核:1、目的:对软件开发的过程所产生的软件项的质量和过程进行定量的评价,用评价的结果指导软件的开发过程,不断地提高软件开发质量水平,并依据度量记录来考核软件开发人员的工作绩效。2、软件项包括:1)技术文档:主要包括:可行性分析报告、需求分析报告、软件功能规格说明、开发计划、质量计划、系统设计报告、测试文档、技术报告、用户手册、总结报告等;2)计算机程序。3、度量数据来源:1)项目计划;2)评审报告;3)测试报告;4)问题报告;5)软件维护记录;4、质量度量:度量指标,主要根据各类软件项检查表的检查指标来确定,例如,软件需求规格说明书检查表(见附录1),有10个检查指标,则根据具体项目检查侧重点不同,可从中选择相应的检查指标作为度量指标。质量等级:第5页共12页1)软件项的质量等级的确定根据度量综合指标进行。2)度量综合指标计算公式为:Total=∑QiMi5、过程度量:1)及时度:以软件项目计划规定的的完成时间为基准2)成熟度:以软件项检查、评审、测试的结果为评价基准3)改善效率:在检查、评审、测试的结果的基础上改善软件项结果,以改善的时间是否影响后续阶段的完成和计划的总体完成时间为评分依据6、人员绩效考核:1)开发人员:软件部门根据软件项综合评价表每个月或季度统计各开发人员所负责的软件项的平均得分值,比较开发人员软件项的平均得分值与绩效考核标准范围,确定开发人员绩效考核评价。根据相应的绩效考核成绩决定每个开发人员的奖励等级。2)项目经理:软件部门每个月或季度确定了项目组成员绩效考核评价后,计算项目组的平均得分值,比较项目组的平均得分值与绩效考核标准范围,确定项目经理、开发经理绩效考核评价。3)测试人员考核:测试人员的缺陷查找质量度量表作为月度考核或季度考核依据,软件部门根据软件项综合评价表每个月或季度统计各检查人员或测试人员缺陷查找的平均得分值,比较检查人员或测试人员缺陷查找的平均得分值与绩效考核标准范围,确定检查人员或测试人员绩效考核评价,绩效考核为良好以上人员奖励相应金额。五、软件资料控制管理:软件测试由开发组和测试组人员共同进行,提前编写测试计划、侧使用例,最后完成测试报告。软件开发任务完成后,要提交一份详细资料给公司IT人员。开发过程亦和公司IT专门人员配合。IT工作也可由研发部经理安排专门人员负责。六、软件研发部门项目奖金:根据公司相关项目性质,制定项目奖的比例,公司计划类项目和工程盈利性项目可按照不同比例制定,盈利性项目可按照利润的百分比制定项目奖,非盈利性项目由公司在项目完成后研究给与适当项目奖。项目奖由研发部经理、项目组长根据项目组成员实际工作情况,合理安排比例,报请公司批准后由公司统一发放。七、关于部门协作的规定:市场部,不设立专门的平面设计人员及技术文档、宣传文档人员,相关工作需部门之间合作完成,部门之间的合作,由部门经理协调,具体适宜由当事人协商解决,本着对公司工作负责的原则,部门经理根据实际工作安排决定有哪些人配合。第6页共12页第二部分:软件项目管理方法软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。一、软件项目的计划:软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。软件项目管理过程从项目计划活动开始,而第一项计划活动就是估算:需要多长时间、需要多少工作量、以及需要多少人员。此外,我们还必须估算所需要的资源(硬件及软件)和可能涉及到的风险。为了估算软件项目的工作量和完成期限,首先需要预测软件规模。度量软件规模的常用方法有直接的方法——LOC(代码行),间接的方法——FP(功能点)。这两种方法各有优缺点,应该根据软件项目的特点选择适用的软件规模度量方法。二、软件项目的控制:对于软件开发项目而言,控制是十分重要的管理活动。软件质量保证(SQA,SoftwareQualityInsurance)是在软件过程中的每一步都进行的“保护性活动”。SQA主要有基于非执行的测试(也称为评审)、基于执行的测试(即通常所说的测试)和程序正确性证明。(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能够清楚地审查;(6)开发小组地人员应该少而精;(7)承认不断改进软件工程实践地必要性。软件配置管理(SCM,Softwareconfigurationmanagement)是应用于整个软件过程中的保护性活动,它是在软件整个生命周期内管理变化的一组活动。1、目前软件开发中面临的问题。在有限的时间、资金内,要满足不断增长的软件产品质量要求;。开发的环境日益复杂,代码共享日益困难,需跨越的平台增多;。程序的规模越来越大;第7页共12页。软件的重用性需要提高;。软件的维护越来越困难。2、软件配置管理应提供的功能,在ISO9000.3中,对配置管理系统的功能作了如下描述:。唯一地标识每个软件项的版本;。标识共同构成一完整产品的特定版本的每一软件项的版本;。控制由两个或多个独立工作的人员同时对一给定软件项的更新;。控制由两个或多个独立工作的人员同时对一给定软件项的更新;。按要求在一个或多个位置对复杂产品的更新进行协调;。标识并跟踪所有的措施和更改;这些措施和更改是在从开始直到放行期间,由于更改请求或问题引起的。3、版本管理软件配置管理分为版本管理、问题跟踪和建立管理三个部分,其中版本管理是基础。版本管理应完成以下主要任务:。建立项目;。重构任何修订版的某一项或某一文件;。利用加锁技术防止覆盖;。当增加一个修订版时要求输入变更描述;。提供比较任意两个修订版的使用工具;。采用增量存储方式;。提供对修订版历史和锁定状态的报告功能;。提供归并功能;。允许在任何时候重构任何版本;。权限的