软件生产的3要素:功能、品质、生产力,我们在项目开发管理过程中所做的工作也是为了保证这3个方面。针对项目实施过程中的风险,如何来管理和控制,笔者粗浅地谈几点经验。 1、针对项目需求分析工作的风险
(1)界面原型法
应对的风险:
l 需求反复
l 用户需求不明确,不知道做成什么样子
l 需求理解不一致
方法:
采用HTML构建系统原型,和用户进行讲解、引导、讨论。
优点:
l 需求沟通
l 需求引导,引导用户的隐含需求
l 需求确认
l 项目组下阶段的设计工作输入
(2)结对分析,业务与技术人员一对一进行需求分析
应对的风险:
l 需求理解不一致
l 沟通不顺畅
方法:
借鉴结对编程做法,业务人员与技术人员一对一进行需求分析
2、针对设计与编码的不一致的风险
(1)模型驱动开发(MDD)
应对的风险:
l 设计与编码不一致
l 各角色:架构师、设计师、编码人员沟通问题
l 设计文档更新困难,不及时
l 生产力不高,缺乏有效的工具
做法:基于角色、贯穿生命期的工具,设计完毕正向自动生成代码框架,后期对于代码的修改可反向体现到设计的模型当中。
优点:
l 实现模型与代码的双向同步,提高生产力
l 有效解决各角色的沟通
l 软件文档保持一致性,做到实时更新
3、针对进度、质量方面的风险
(1)持续集成
应对的风险:
l 在监控过程中,每个成员的进度都是100%,但是为什么最后却产生进度落后?缺乏一种机制来保证质量
l 集成阶段的时间长、工作量大、问题多
l 本应早该发现的问题没有发现,以致带到最后阶段,加大了排除BUG成本、时间
做法:以一定的频率进行整个系统的构建、保证可执行、自动测试(JUNIT)。关键是自动化,简单易操作:单一代码源(cc)-〉代码归还(早期3天,中后期每天。前提:本地创建成功)-〉专人创建(每天)-〉反馈(有错误,通知开发人员修改)
优点:
l 有效规避遗留“尾巴”问题,导致最后问题越积越多
l 及时发现各模块之间的相互影响,
l 变相地提高了生产力
(2)代码走查
保证:软件的品质
走查重点:
l 标准和规范
l 事务、异常、日志、安全等非功能性关键点
走查做法:
l 制定CheckList
l 质量经理负责,全员参与
l 沟通、反馈机制
l 可以采用工具