做软件开发都要做哪些工作:软件过程管理的最佳实践?不可否认,在现实的软件开发项目中,的确存在类似下图所示的情况。
其实这些问题都是可以避免的。本文就来探讨一下有关软件过程管理的最佳实践。
1. 定义团队成员的角色和任务
要想提高工作效率,团队成员的角色应明确界定。这些角色可以是项目经理、团队领导、开发者、测试者等。此外,这些角色的授权和责任应该很清楚地定义。基于任务分配的开发方式应该可以避免工作冗余和局面混乱。
2. 确定会议类型
如果会议谈论的是软件过程管理,那么该会议就是非常重要的,同时应该先确定一下会议的准则(如与会人员、内容、持续时间等),团队成员应该遵守会议规则。这种会议将更有成效,且避免造成不必要的时间浪费。
3. 定义文档策略
每一个软件过程要有一个文档策略,无论是敏捷开发,还是极限开发,可以记录待办工作、经验教训、bug信息等。同时,应明确界定这些文档类型,如文档的物理属性、标准章节、文档更新周期、版本编号等,这样可以确保连贯的、可理解的、更有效的开发。
4. 定义软件质量指标并进行测量
有很多软件质量指标,如代码行、圈复杂度等,可以根据软件类型,来决定使用哪种测量指标。开发团队可以定期讨论和评估这些指标,这将有效提升产品的质量。
5. 问题/需求跟踪
需求管理或问题跟踪是软件开发中的关键点之一,它们决定了软件的范围,还支持可追溯的功能测试。可以选择一些实用的工具来做这项工作。
6. 版本控制
版本控制也相当关键。这应该包括代码和其他文件的版本控制,这允许开发团队协同工作、并可以回溯到之前的代码版本。版本策略(如版本编号、版本周期等)也应明确确定,以达到一致性。
7. 测试
测试是软件开发的主要阶段之一。任何类型的软件项目都应该进行单元测试,除了一些用户界面代码。其他一些测试类型(如系统测试、用户测试、集成测试等)也应该定义清楚、一致。这将提高产品的质量,并减少错误。
8. 依赖管理
由于软件项目的增长,可能会包含很多外部库(jar、dll等)或项目(外部项目或公司内部项目)。如果这些信息不准确,会对以后的版本维护带来混乱和时间消耗。可以制定依赖关系管理策略,并使用工具来提高生产力。
9. 经常进行代码审查
代码审查是高质量代码的关键。首先,它会强制开发人员产生更好的代码,此外,还可以使初级开发人员从高级开发人员那里学习到更好的编码方法。开发人员可以通过结对编程的方式来进行。
10. 记录项目中的经验教训
即使是经验丰富的成员,在项目中也有可能出现不可预见的事件,这会阻碍或延缓开发进度。这些事件可能是复杂的项目配置、错误信息、项目疑难点等,可以将它们优先总结成“经验教训”,并共享,这将有效避免发生同类事件时的时间浪费,使软件开发更高效。