转一篇不错的简约开发过程定义

    最近在看江南白衣的springside项目的时候,发现一篇不错的开发过程定义,可以作为希望或刚成为项目经理的同志们屡屡思路,做为参考.

1.    介绍

    本文档基于Agile UP原则,从活动、工件、工具几方面定义本项目的开发过程。
    本文档仅定义开发的方式,而非具体开发计划。

2.    活动与工件

2.1    初始阶段

    一次迭代,以形成系统目标基线为里程碑。
2.1.1    定义开发过程
    开发团队成员习惯不同的过程流派,需要通过自由讨论,根据团队实际情况,在开发过程上取得统一, 编写《开发案例(Development Case)》(即本文档)。
2.1.2    编写前景文档(Vision)
    Vision是RUP中最重要的一份文档,涉众与整个团队在系统的高层需求与特性上取得一致,编写《前景文档》并正式评审。
2.1.3    获取初始需求
    使用用例或用户故事概括描述系统边界与系统用例,驱动接下来的设计与开发活动;
    甄别出架构与业务关键用例,同时开始编写《词汇表》与《业务规则》。
2.1.4    制定整体项目计划
    制定初步的《整体项目计划》并正式评审,规划每个迭代的完成时间、里程碑与产出物。
2.1.5    初始项目环境
    安装开发工具,初始化配置管理、需求管理、集成测试环境与团队交流机制。
2.1.6    讨论备选架构(Optional)
    用任意格式的图与文档记录所采用的技术和系统架构;
    对高风险技术展开技术预研。
2.1.7    风险管理(Optional)
    编写初步的《风险列表》,主动管理可能存在的风险及解决方案。

2.2    细化阶段

    一次迭代,以形成可执行的架构基线为里程碑。
2.2.1  细化架构,形成架构基线
    编写《系统架构文档》;
    开发可运行的架构;
    实现最关键用例(Optional)。
2.2.2  细化需求模型
    按实际需要细化用例描述,编写《需求规格说明文档》。
2.2.3  细化前景,项目计划,风险管理,开发环境等初始阶段的工件.

2.3    构建阶段

    以一个月为周期多次迭代构建产品,每次迭代产出可运行的产品。
2.3.1 程序设计  
    开发人员编码前需要的设计工件包括:必要的需求文档,架构文档与可运行架构原型,UI原型,源码模块目录组织,关键数据库设计,关键系统间接口规范。
    开发人员可对架构师未细化的的部分提出建议,被架构师复核后执行。
    对少量的重要子系统可编写《子系统设计文档》,其他可采用可抛弃的设计工件(使用纸笔或不提交到版本管理系统的工件草稿)。
2.3.2 单元测试
    约定基础框架函数和主要业务函数必须编写单元测试。
2.3.3 持续集成
   持续集成服务器每天运行单元测试与其他检查,将结果Email通知用户。
2.3.4  架构师、技术经理代码走查
   走查代码是否符合架构与编码规范(可使用工具辅助),另阅读重要且易错的模块代码。
2.3.5 日报填写
   所有队员每日填写工作记录。

2.4    交付阶段

2.4.1 编写并审核部署/升级方案
2.4.2 性能测试/集成功能测试
2.4.3 用户文档编写

2.5    各阶段的持续活动

2.5.1 迭代评估与下阶段迭代计划指定
     在每个迭代结束后,调整和定义下一个迭代的目标和详细计划,计划以周为时间粒度。
2.5.2 配置管理
     约定每次为一个issue提交代码,必须为提交编写注释,提交的代码必须能正常编译。
2.5.3 评审会议
     不定期按需展开,对需求、计划、设计、代码走查进行评审。

3.    工具

  • IDE:Eclipse 3.4
  • UML建模:EA 7
  • 单元测试:JUnit 3
  • 集成测试:soapUI(WebService)、Selenium(Web)
  • 构建管理:Maven2 (m2Eclipse、Nexus)
  • 持续集成:Hudson
  • 版本管理:Subversion(Subclipse、VisualSVN)
  • 代码质量:CheckStyle、Pmd
  • 项目计划、缺陷跟踪:Project、Jira(Subversion Plugin)、MS Excel

转载自 江南白衣博物馆


你可能感兴趣的:(项目管理,职场,休闲,开发过程)