TRIZ和XP
将XP的12种原则和TRIZ的40种问题解决原则做对比的话,他们之间的关系就很明确了:
1.规划过程(用户要求)可以被形容为TRIZ原则第一条:分割。分割的
过程,就是将一个系统分为几个部分来孤立或融合,以有利于性能。这些分割的部分随后会被重新组合以提供所需要的功能。每一个用户要求都封装了一个极其重要的条件,组合在一起,这些用户要求就组合成了一个完整的软件系统。
2.微型施放,是TRIZ的第30号原则,或称作小型材料的使用。传统的建筑正在被利用柔性膜和薄膜材料的建筑所取代。XP程序系统的发展正是由不断积累的许多小型施放所组成的。
3.隐喻,是TRIZ的第2条原则:提取。一个系统的重要性能可能被分开,
不管是物理性的或是其他。隐喻提供了一个虚拟抽象的系统概念,这个概念是以对开发团队和用户都有益为参照点提出的。
4.简单设计可能被形容为TRIZ的第7条原则:堆叠。堆叠是改善品质使
其与其他的相似,融合或者包含。由于是简单设计,不需要太多的功能,现有的施放可以立即延长,不用担心不必要的编码产生的副作用。
5.预先编写好的单元测试是TRIZ的第9条原则:居先的反作用。这个原
则要求我们提前计划,以减少可能犯下的错误。预先编写的测试可以帮助指引发展进程,并为我们打算测试和为完成测试需要编写的编码之间提供耦合关系。
6.重构可以被描绘为TRIZ原则第5条:整合。功能可以通过其他相结合
机能来实现。整合(同时存在于物理系统和软件)可以在空间、时间和持续作业中得到实现。重构是一个重复需要不断优化的代码的大众化的集合。
7.成对编程可以形容为TRIZ的2个原则:第15条,动态性,它规定了
系统是自适应的还是灵活多变的;第17条,另一个层面,将转化指定为一个更高的层面。成对编程是将单人编程转化为多人编程的过程。角色职能经常转换,所以需要所有的程序员都具有适应性,灵活和多变性。
8.集体代码所有权:这是TRIZ的第25条原则,自我服务。这条原则指
出,一个物体必须服务于本身以进行补充和维修。集体所有权和使用权的构思正是这条原则中关于自我服务的构思。
9.持续集成是TRIZ的第20条原则:持续的有益活动。持续的行动可以用
来提高工作效率。在XP的开发系统中,微型施放正在不断的融入现有的代码基础。这种在现有系统中不断注入新代码的行为有助于问题发生时尽快将他们发现。
10.40小时工作周是TRIZ的第16条原则:局部行动。而过激行为是有害
的。这确定了程序员理想的工作时间是一周40小时。一个疲劳的程序员充满错误的工作(程序)还不如不工作。
11.现场客户是TRIZ的第23条原则:反馈。反馈原则是基于系统的输出,
即返回到系统(输入)为目的的质量控制。该原则为项目业主和项目开发商提供了良好的沟通。
12.编码标准可以描述为TRIZ原则第33条:同质性。当2种系统使用同
样的材料和信息时,他们之间的相互作用是最佳的。对相似的编码和文件形式的使用为编程小组的沟通提供了一种普遍的交流方式。
下一步骤
本文是介绍XP和TRIZ团队之间开发方法的第一步。并将XP的12条原则与阿奇舒勒的40条问题解决法则做了关联。这些法则的同质性所能产生的作用正在它们被程序员使用的时候得到研究。
参考文献
1.阿奇舒勒(1998),40原则的扩展版本:《TRIZ的关键技术创新》。马萨诸塞州伍斯特市:技术创新中心。
2.Beck, K. & Andres C.(2005),《极限编程解释说明》,第2版。
3.Cockburn, A.《敏捷软件的开发》。
4.Jeffries, Ron (n.d.).《什么是极限编程》2006年5月4日。
http://www.xprogramming.com/what_is_xp.htm.
5.Pressman, R.S. (2001)《软件工程》,第5版。
6.Royce, W. (1970)《大型软件系统的开发管理》。Proc. Westcon, IEEE CS出版社,328-339页。
7.Von Bertalanffy, L.《大众系统论》。纽约 George Braziller公司。