获得个性化的品质

虽然在编程控制应用程序时,组织能力很重要,但个人能力对于高质量的产品至关重要。在最好和最差的软件开发人员之间,以及最好和最差的开发团队之间,每千行代码的错误率相差10比1是很常见的。

通过丹尼斯·布兰德,BR&L咨询公司 二五年九月一日

虽然在编程控制应用程序时,组织能力很重要,但个人能力对于高质量的产品至关重要。在最好和最差的软件开发人员之间,以及最好和最差的开发团队之间,每千行代码的错误率相差10比1是很常见的。因为具有最低质量的过程决定了最终产品的质量,更少的个别错误会导致更可预测的发布和更高的生产力。

软件工程研究所(SEI)的能力模型很好地帮助组织按照时间和预算开发软件,但是它不能为个人控制工程师或开发团队提供很多东西。幸运的是,SEI开发了另外两个过程——个人软件过程(PSP),用于个人改进他们的个人过程,以及团队软件过程(TSP),以帮助开发团队改进。

“2005年国家技术奖章获得者”Watts Humphrey开发了PSP。大多数专业工程师都努力提高他们的工作质量,PSP向软件专业人员展示了如何以专业的方式处理他们的任务。PSP通过定义如何衡量自己的表现、跟踪变化、分析问题、从错误中学习以及根据吸取的教训更新个人流程,为人事流程带来了严格的要求。TSP给软件团队带来了同样的严谨性。

在软件开发中很容易陷入坏习惯。每个人在开发过程中都会犯一些错误,但很少有人系统地从错误中学习,以免重蹈覆辙。然而,从错误中学习和改进过程是提高质量的基础。例如,您可能会发现,在单元测试期间,您不断地发现相同的错误,例如C中未初始化的变量、梯子中闩锁的重用、不完整的详细设计、拼写错误的变量或对适当的控制算法的不完整理解。PSP教你如何从这些错误中学习,并修改过程以减少或消除未来的错误。这可能包括较小元素的早期测试、外部评审或早期代码演练。您可以自行更改开发流程,以删除错误源或更早地发现错误。

SEI提供了PSP自学手册。这不是为胆小的人准备的;改进自己的作品是一个漫长的过程,但值得一试。改进并不容易,特别是如果您长期以自己的方式设计和实现软件。自学指南在你从事一个或多个大型项目时最有效。它要求您通过记录项目的所有阶段(计划、设计、编码、编译、测试和维护)来保持度量。日志允许您建立质量基线;衡量规模、资源和时间表的估计;实行缺陷和产量管理。

这种努力工作的回报是通过正确估计和计划你的工作来更好地履行承诺。接受PSP培训的工程师将进度估计误差从平均350%(工作时间比预期长3.5倍)降低到不到10%。每千行代码的总缺陷减少了75%以上。

TSP为专注于自我导向团队的团队经理提供了类似的过程改进工具。它强调计划和评估的团队开发。软件经理被认为是激励团队保持对质量和卓越的关注的教练。TSP提供工具来帮助管理人员遵循流程、收集数据、分析结果并进行修正。PSP和TSP共同提供了高质量发展的基础。

更多信息可在www.sei.cmu.edu/tsp在论文《PSP:软件工程师的自我完善过程》中。

作者信息
丹尼斯·Brandldbrandl@brlconsulting.comBR&L Consulting是一家专注于制造业IT解决方案的咨询公司,总部位于北卡罗来纳州卡里(Cary)