`

详解软件项目管理流程的每一步

    博客分类:
  • PM
 
阅读更多
一、项目启动(项目开工会)

了解项目干系人及其利害关系。

所有项目组成员是否到位,如到位则拿到项目开发人员的简历,详细了解每个开发人员的情况(可能会组织到客户方面试)。

根据项目需求规格列出项目功能列表,并根据开发人员技术等情况创建WBS。

根据项目时间、资源等情况规划项目初步开发计划(各里程碑时间点的粗略计划,每个时间段投入多少人力等)。

确定各种软硬件需求,如:版本控制服务器、数据库服务器、开发服务器、缺陷管理软件服务器、开发工具等。

参与人员:

项目经理、项目总监、全体项目组成员、用户方领导、用户方参与人员、其它主要项目干系人

项目启动会议的目标:

让整个项目组的成员相互认识

建立项目的工作关系和沟通关系

让大家明确团队的工作目标

让大家了解项目的当前状态

一起审阅项目计划

找出项目的难点或可能出问题的环节

分配小组和个人的角色与责任

获得小组和个人的承诺

实施建议:

对立项管理过程域产生的所有有价值的文档如《立项建议书》、《立项调查报告》、《立项可行性分析报告》、《立项评审报告》进行配置管理。

做好必要的保密工作。

由于每个项目都要占用机构的资金和资源,立项评审一定要严格。建议对机构高层管理人员进行必要的立项管理培训。

输出文档包括:

项目风险管理计划、工作任务分解结构(WBS)、项目进度计划、配置管理计划、质量保证计划、TimeSheet、开发规范文档、测试计划

二、需求分析

需求调研:与客户就其所需要的功能、流程、操作等需要为基础,而且需求决策者必须是项目经理或部门负责人。

列一个需求管理(包括详细的沟通计划及要求沟通)计划,考虑需求沟通中的人员、资源、时间的要求。

虽然有些因素是客户方造成的,但应该站在其角度上,为其考虑一些存在的客观及主观因素。

注意与项目成员之间的沟通方式及对团队的建设。

把握需求分析的进度及质量是否符合要求。

根据交互设计原型与客户交流需求分析是否达到要求及功能点是否有遗漏。

有哪些文档或数据是由客户提供的,这些数据是否需要在新开发的系统中维护等。

实施建议:

先对项目成员进行培训,让他们掌握必要的需求开发技能。(比如需求开发要做什么,做到什么程度,需要注意哪些问题等)

对需求开发过程域产生的所有有价值的文档进行配置管理。

需求的建模分析有较高的技术难度,项目成员应当根据自身水平进行取舍。

交互设计中应以用户的易用性为前提然后考虑在这样设计的前提下技术上实现是否有难度或者工作量超过前期设计的百分之二十. (多用TAB形式,尽量让客户的某个角色的任务可以在一个页面中完成,一般用上下文菜单,避免用系统的菜单,一个功能块一般只需要一个入口)

输出文档包括:

产品需求分析说明书、数据流程图、系统应用架构图、交互设计原型、需求分析模型(RQM)

三、概要设计

确定影响系统设计的约束因素:本系统应当遵循的标准或规范、软件、硬件环境(包括运行环境和开发环境)的约束、接口/协议的约束、软件质量的约束、隐含约束等。
确定设计策略:扩展策略、复用策略、折衷策略。

系统分解与设计:将系统分解为若干子系统,确定每个子系统的功能以及子系统之间的关系;将子系统分解为若干模块,确定每个模块的功能以及模块之间的关系。
数据库概要设计。

输出文档:

产品概要设计说明书、数据概要设计模型(CDM)

四、详细设计

确定功能模块的参与者、数据库表、输入参数说明、前置条件、基本流程、异常流程、日志等信息。

各层次结构的接口定义

数据库设计:逻辑设计—>物理设计->安全性设计->优化

实施建议:

先对系统设计人员进行“专题”培训,让他们掌握必要的系统设计技能。 由于国内绝大多数的大学不开设“用户界面设计课程”,这导致大部分软件开发人员不善于设计用户界面。项目开发小组应当设法邀请用户界面设计专家参与(或指导)本软件的

界面设计。

对系统设计过程中产生的所有有价值的文档进行配置管理。

输出文档:

产品详细设计说明书、数据物理设计模型(PDM)、自定义数据类型及BO数据类型文件、数据字典、系统测试用例、对象模型(OOM)

五、Coding

软件编码,各接口的实现。
单元测试。

实施建议:
对开发人员进行“高质量程序设计”培训,让他们掌握编写高质量程序的技能。
对开发人员进行“版本控制、代码审查、测试、改错”等方面的培训,提高他们的工作效率。
开发小组根据项目的资源、时间等限制因素,可以适当地减少测试的工作量。
对实现与测试过程中产生的所有代码和有价值的文档进行配置管理。

输出:

单元测试报告、代码评审报告

六、集成测试

根据系统测试用例测试系统的功能性需求,保证系统的正常功能处理及异常处理是否正确。
用户界面测试,重点是测试软件系统的易用性和视觉效果等。
健壮性测试,测试软件系统在异常情况下能否正常运行的能力。(容错能力和恢复能力)
安全性测试(这种测试一般能通过建行的fortify 软件评测即可)
如果产品需要安装,那么还得经过安装与反安装测试

实施建议:

对系统测试人员进行必要的培训,提高他们的测试效率。
项目经理和测试小组根据项目的资源、时间等限制因素,设法合理地减少测试的工作量,例如减少“冗余或无效”的测试。
系统测试小组根据产品的特征,可以适当地修改本规范的各种文档模板。
对系统测试过程中产生的所有代码和有价值的文档进行配置管理。
为了调动测试者的积极性,建议企业或项目设立奖励机制,例如:根据缺陷的危害程度把奖金分等级,每个新缺陷对应一份奖金,把奖金发给第一个发现该缺陷的人。

输出:

系统测试报告、缺陷管理报告、操作手册

七、客户验收

成果审查。验收人员审查开发方应当交付的成果,如代码、文档等等。确保这些成果是完整的并且是正确有效的。
验收测试。验收人员对交付的产品进行全面的测试,确保产品功能、质量符合需求。
及时解决客户方发现的问题。

输出:

客户验收计划、验收测试用例、客户验收报告、验收操作手册

实施建议:

在客户验收之前,开发方对验收人员进行必要的产品培训。
开发方可以将系统测试用例给验收人员参考,以减少设计测试用例的时间。
开发方人员应当热情地协助验收人员。对验收人员发现的软件缺陷马上予以纠正;对于复杂的问题应当立即请示有关领导,不可拖延。在验收期间不可与客户争吵,给客户留下很

好的印象。
对验收过程中产生的所有有价值的文档进行配置管理。

八、结项

计划与实际情况对比:产品功能、工作成果、产品质量、投入人员、工作量、成本等
申请结项理由和项目自我评价
对项目进行综合评估,总结经验教训。

有价值的结项管理至少包括三项内容:
一、对项目的有形资产和无形资产进行清算,既要防止资产流失,又要及时地利用这些资产。
二、对项目进行综合评估。例如评估项目完成情况、项目质量、投入产出分析、项目的市场价值、项目对企业的贡献等等。该评估报告可以作为考核项目人员业绩的重要依据。
三、总结经验教训,使整个机构受益。

实施建议:
对结项管理过程域产生的所有有价值的文档进行配置管理。
做好必要的保密工作。
结项评审工作不能简化。
对结项评审委员会进行必要的培训,使他们树立正确的观念,从而严格把关

输出:
结项申请书、结项评审报告

下面是这些核心工具的运用经验:

1.必须建立源代码的版本控制系统,就是cvs,基本的代码提交原则:
1)程序员尽量每天只在下班前提交一次;
2)提交的代码必须是在自己的机器上是正常运行的;
3)每次提交都必须用简短的话说明自己提交代码的功能描述。
2.建立错误追踪系统,用Bugzilla就很好,配置好邮件系统,使Bugzilla成为测试人员与开发人员沟通的桥梁。
3.用BAT和Perl脚本,以cvs中的源代码为核心实现简单的每日编译工具,将这个自己写的自动化工具放到一台专门的编译机器上,在每天的半夜开始自动下载代码,自动编译代码,自动打包安装程序,自动记录各种编译日志,自动将安装程序放置到一个固定的以日期为目录名的公共区。(用cvs2cl.pl得到程序员上传的代码更新日志,以便测试人员参考) 4.测试人员的第二天,应该到公共区取得头天的最新版本,并根据ChangeLog进行新版本的测试。并将测试中发现的Bug,通过Bugzilla反馈给程序员。程序员可以根据自己的情况或公司的规定来决定修改这些Bug的时间。并将这些Bug的修改情况,在代码提交时,写入代码日志。
5.开发人员的第二天,应该到公共区查看编译日志,看看自己的模块是否正常编译,及时更正,看看自己的邮箱有没有Bug报告,及时修改。
6.管理人员的第二天,在综合项目需求与头天版本进度的上,可以判断产品的发展方向,如果有偏航或理解错误或有新需求时,可以根据当前情况及时调整。
这样,通过 cvs => bugzilla => daily-build,就能将程序员与测试员,进行互动,各施其责。减少沟通与人为的麻烦。对于管理层,也能做到心中有数:因为每天都有新版本,

随时掌握产品的走向。。。等等

原文链接: http://www.cnblogs.com/dizchan/archive/2011/06/09/2076430.html
分享到:
评论

相关推荐

    详解软件项目管理流程的每一步.pdf

    详解软件项目管理流程的每一步.pdf

    软件项目管理规范格式下载

    《软件项目管理规范详解》 软件项目管理是确保软件开发任务在预定的预算和时间内顺利完成的关键环节。这一过程涉及到从项目立项、需求分析到系统设计、项目实施等多个步骤,每一步都至关重要,需要严格遵循规范。 ...

    项目管理数据库设计

    考虑到学生的现有技术水平和所学课程,如高级语言程序设计、数据结构、操作系统和软件工程等,利用这些知识来构建一个基础的项目管理数据库系统是完全可行的。此外,选择像Microsoft SQL Server这样的成熟数据库管理...

    软件工程中的软件开发基本流程详解

    在软件工程领域,软件开发的基本流程是确保项目高效、有序进行的关键步骤。这一流程涵盖了从需求分析到软件维护的全过程,旨在确保软件产品的质量和可靠性。下面将详细解析这个过程的各个环节。 1. 需求分析:这是...

    Delphi教程&案例&软件项目管理案例教程(第四版)课后习题答案.pdf

    ### Delphi教程&案例&软件项目管理案例教程(第四版)课后习题答案解析 #### 一、Delphi项目概述 Delphi是一款强大的集成开发环境(Integrated Development Environment,简称IDE),广泛应用于Windows平台上的...

    通用类型项目管理模型

    ### 通用类型项目管理...从项目的初始阶段到最终交付,每一步都有相应的指导原则和方法,帮助项目管理者有效地应对挑战,实现项目目标。通过运用此模型,不仅可以提高项目的成功率,还能提升组织的整体项目管理水平。

    BMS功能安全开发流程详解.docx

    BMS功能安全开发流程详解 BMS(Battery Management System)是新能源汽车“三电”核心技术之一,其中功能安全开发流程是非常重要的一部分。ISO 26262是道路车辆功能安全标准,适用于包括BMS在内的电子电气系统。...

    PMBOK44个过程详解.pdf

    《PMBOK 44个过程详解》是项目管理专业人士(PMP)的重要参考资料,它...总的来说,PMBOK 44个过程详解为项目经理提供了全面的指导,帮助他们高效地管理项目,从立项到结束的每一步都有据可依,确保项目的成功实施。

    投资项目管理程序.doc

    《投资项目管理程序详解》 投资项目管理程序是企业进行资本运作的核心环节,涉及到多个步骤和复杂的决策过程。在本文中,我们将深入探讨这个程序的各个环节,旨在帮助读者理解并有效地进行投资项目管理。 首先,...

    软件制作及释放流程

    ### 软件制作及释放流程详解 #### 一、项目对接 1. **需求接收与审查**:项目启动之初,项目经理会接收到客户的软件需求申请单。这一步骤至关重要,因为需求的准确性和完整性直接影响项目的顺利进行。项目经理需要...

    第三版信息系统项目管理师十大管理47个过程的输入输出与工具.pdf

    一个优秀的项目管理师能够确保项目从启动到交付的每一步都严格遵循既定流程,从而避免不必要的风险和损失。《信息系统项目管理师第三版:十大管理与47个过程详解》便是这样一本指导项目管理者如何高效管理项目的专业...

    互联网产品项目管理流程-PPT.ppt

    通过以上详细的项目管理流程介绍,我们可以了解到,在互联网产品的开发过程中,从项目的需求分析到最终上线维护,每一步都需要精心规划和严格执行。这不仅能提高工作效率,还能确保项目的顺利推进和最终的成功。

    J2me逐步实现俄罗斯方块详解(内附每一步实现的源代码,相当详细)

    3. `GameEngine`:管理游戏逻辑,包括方块生成、移动、旋转、碰撞检测和行消除。 4. `Score`:记录并显示玩家的得分。 5. `KeyListener`:处理用户输入,响应按键事件。 为了便于学习,每个步骤的源代码都应具有...

    [广联达结算软件GES3.0软件整体操作流程图文教程详解)汇编.pdf

    广联达结算软件GES3.0的整体操作流程,从建立工程到结算数据的计算,每一步都设计得非常周全和人性化。软件不仅提供了直观的操作界面,还配备了详尽的即时帮助系统。无论是新手还是经验丰富的工程从业者,都可以通过...

    (完整word版)软件项目解决方案模板.pdf

    软件项目解决方案模板是软件开发过程中不可或缺的一部分,它提供了清晰的蓝图,指导项目团队从需求收集到最终交付的每一步。通过详细的规划,项目可以更有效地管理风险、控制质量,并确保最终的软件产品符合预期,...

    软件项目实施计划方案模板.doc

    《软件项目实施计划方案》是指导软件开发团队在客户企业中成功部署和实施软件产品的详细...它详细规划了从项目启动到最终交付的每一步,通过有效的管理和沟通,保证项目的高效执行,从而提高客户的业务效率和管理水平。

    软件项目开发过程.ppt

    从需求分析到软件退役,每一步都需要严谨的规划和实施,以保证软件产品的功能、可靠性和用户满意度。只有通过有效的项目管理、严格的质量控制和不断的技术创新,才能在软件开发的道路上取得成功。

Global site tag (gtag.js) - Google Analytics