非正式交流——在Internet协同开发活动中非正式交流对于项目成员间的协调极其重要,邮件列表、论坛等是常用工具,无论开发人员在文化、地域和时区方面是否存在差异。商业软件应借鉴这种做法,而不必拘泥于严格的、形式化的交流渠道。
增强的用户支持——许多用户都同意这种观点,即多数商业软件公司在进入售后支持阶段时就可能面临悲惨的失败命运。而开源项目的用户支持工作却有良好成绩,因为大量的用户愿意提供关于开源产品的反馈信息。因此,商业软件项目应增强用户之间、用户与开发者之间的交互,从而获得改进的售后支持以及更有意义的错误报告。
显然,随着人们对于基于开放源码的Internet协同开发模式的不断研究和深入理解,必将对未来的软件工程实践产生极其深远的影响。以下按照传统软件工程领域的常规做法,对于开放源码软件的协同开发活动总结出所谓“最佳实践”,以增进读者的感性认识:
(一)技术交流
软件开发人员需要花费大量时间用于相互之间的通讯交流,清晰和高效的技术交流对于维持团队间的同步和允许掌握关键知识的个人在需要时利用其知识都是必需的。开放源码社区的一个基本原则是技术交流应当在公共论坛中进行,邮件列表是开放源码交流的基石。不仅如此,开放源码项目需要在精确交流技术细节和小组决策方面得到支持
(二)版本控制、文档管理和发行
任何软件开发项目都需要版本控制,开放源码项目在这方面更是需要强大灵活的支持,以使得许多并行的开发人员可以同时工作在相互重叠的文件集上。开放源码项目也需要设计文档、技术文档和用户文档方面的标准模板,并需要一个良好组织的Web站点来发行这些文档。但是,开放源码项目的本质要求这些文件可供全世界访问,同时日常管理成本则被最小化,维护工作被分配给整个开发社区中的成员。
(三)质量保证
开放源码软件产品取得令人瞩目的质量水平,这一点在封闭源码开发世界被认为是最困难和最耗费资源的软件开发工作之一。开源软件取得高质量的原因主要包括以下三方面:(1)开发人员是根据自己在相关应用领域的兴趣和知识来自我选择的;(2)开发人员对于项目需求心照不宣,因为他们自己就是软件的用户;(3)技术交流(包括错误报告)是公开进行的。此外,调试工作也由于被分解到许多具有不同知识背景的人手中而更高效。
(四)构建和测试管理
开源项目的开发活动是在许多开发人员中发生的连续和并行的行为,有时某个开发人员的更改可能与其他开发者进行的更改发生冲突,通常情况下版本控制活动能够解决这些冲突,但是有时却不行。那些被开发用来支持软件经常自动构建和测试的工具成为帮助尽早发现这类逻辑冲突的强大工具。
(五)项目管理
任何项目都需要明确的目标、资源配置和进度安排,开源社区采取独特的、灵活的方式来解决这类问题——共享的“TO-DO”列表用于跟踪那些需要完成的任务,个人的“TO-DO”列表帮助开发人员保持进度,里程碑列表则基于用户和开发者的反馈设置了灵活截止期限。
(六)知识管理
知识是区分开发高手和初学者的最具价值的资源,高效地共享知识则是开源社区成功的关键所在。清晰地管理知识可以帮助减少初学者的学习曲线,从而降低潜在贡献者的入门壁垒,同时自动地将专家用于培训他人的负担降至最低限度。
文章来源于领测软件测试网 https://www.ltesting.net/










