我觉得研发管理,即对于进度,质量和成本控制的方法,主要在于以下三个方面
1.过程的高效,规范
2.工具支持的过程自动化
3.编码的模式化,组件化.
一,过程的高效和规范,主要是规范项目研发的过程,这个刚刚看到江南白衣对Agile UP的一些尝试,我觉得比较有价值:
我的想法是,根据项目的目的和轻重,规定哪些文档一定要具备,文档的详细程度要满足不产生歧义的要求,要能作为指导、检验、测试、和验收的标准.并明确在过程中项目团队中不同人员和角色的责职,任务和分工.
过程建议举例:
某研发项目
过程一:需求提出或计划立项 活动:开会讨论 ; 人员:全部; 成果:需求愿景或需求大纲
过程二:需求分析 人员:PM或需求分析人员 成果:需求规格说明
过程三:审核 人员:PM和上级责任人
过程四:详细设计 活动:开会 ; 人员:项目全部人员或指定设计人员; 成果:详细设计文档
过程五:编码
过程六:阶段测试 人员:团队全部和测试人员 成果:测试用例,测试报告
过程七:阶段验收 人员:PM或相关责任人
过程八:系统测试 人员:测试人员 成果:测试用例,测试报告
过程九:发布 人员:团队全部 成果:白皮书,用户手册等
其中:过程一到过程三是一个迭代的过程,过程四到过程七是一个迭代的过程.
二.工具支持的过程自动化.
在研发管理过程中使用工具软件来自动化管理和流程,既可以节省大量的人力和时间,又能减少因为人的疏忽引起的错误。
1.SVN +viewcvs
使用范围:配置管理,代码仓库
2.JIRA
使用范围: 需求管理,任务分配,计划跟踪,缺陷管理
3.BAMBOO
使用范围:持续集成(自动构建,自动测试,自动发布,错误通知)
4.WIKI
使用范围:知识管理,内部培训
三.编码的模式化,组件化
自动化的过程必须有高度规范和模式化的代码来支持,比如自动测试,需要有非常好的框架来支持测试的高覆盖率,模式化和组件化的编码,又可以减少大量的重复编码量,提高软件的质量.并且组件化的编码可以形成内部积累,可以越来越提高软件生产的效率.
JAVA企业应用领域,模式化组件化的编码有以下几个方向
1.spring+hibernate+struts+ajax
2.javaEE
附:基于工具的流程整合及使用规范:
1.在JIRA建立新的任务或需求,指定被分配者邮件,自动通知
2.被分配者接受邮件,进入JIRA查看任务,添加comment讨论,点击“开始处理”
3.被分配者编码,提交,在svn的注释中填上相应任务的"编号 - 说明"
4.JIRA自动访问SVN,列出该任务的提交变更历史及SVN批注
5.BAMBOO监控SVN变更,进行自动编译,测试,发布
6.BAMBOO把自动集成出现的问题,邮件通知项目负责人
7.项目负责人到BAMBOO上可以查看本次变更记录,对有问题的变更,直接通过BAMBOO关联到JIRA上的相应任务.添加comment讨论,指出问题.
8.被分配者继续解决,直至问题完全解决