上次的博文敏捷开发之道(二)极限编程XP中,我们了解了XP的实践中的其中四个,今天我们来一起学习一下剩余的实践。
……接上文
5)、结对编程
结对编程就是由结对的开发人员使用同一台电脑共同完成一项任务。在结对编程中,同一时刻只有其中一位开放人员拥有键盘的控制权,另一位则负责寻找代码中漏洞和可以改进的方法,两个人可以进行交互和合作,这对提高开发人员的团队意识和合作有着积极的作用。
同时,关于结对编程是否能够像我们想象的那样,这就需要我们去实践了。
6)、测试驱动的开发方法
测试驱动与XP原则的第四条类似,只不过测试驱动更加的具体,前者主要针客户需求的实现,后者则属于开发人员主动的开发测试用例,在测试用例的基础之上进行代码开发。
测试驱动目前在国内还没有被大多数人所接受,大多数人更倾向在代码完成之后或代码完成过程中去做调试或单元测试。
7)、集体所有权
在XP中强调,每一个人员都具有对任何模块进行改进和更新的权力,没有专门的人员的对专门的模块负责,当然如果确实存在某一领域的专家,那么该专家就会被邀请或需要主动承担这方面的工作,同时还需要给团队成员进行培训。
集体所有权可以加强团队内部的知识的共享,同时也会扩展团队成员的视野,不会将自己局限在某一领域。
8)、持续集成
对于持续集成,XP与我们基本类似,所不同的是传统模式的构建可能是单独模块或功能的构建,而在XP中则是整个系统的构建。
9)、可持续的开发速度
对于开发人员来讲,每天的工作应该是积极和愉悦的,为了保持开发人员旺盛的精力和敏锐的警觉力,团队要保持适中和稳定的开发速度。所以在XP中不允许团队加班,允许加班的唯一例外是发布版本就在眼前,而且能够立即完成。
10)、开放的工作空间
通常我们认为在开发人员应该工作在一个安静、没有干扰的环境中,但在XP中则打破了这一传统,XP要求开发人员应该能够彼此听到彼此的声音,能够彼此了解所出现的问题,当团队中的成员遇到问题时,每个人都了解对方的状态,程序员随时处在适合进行激烈的讨论的位置上。
11)、计划游戏
所谓计划游戏,就是开发人员根据最近一次迭代的工作量给客户一个预算,客户根据开发人员的开发速度就可以确定项目的持续时间。它的意义在于开发人员和客户之间(或业务人员)进行职责的分离,客户可以决定产品特性,开发人员决定实现产品特性的花费。
12)、简单的设计
过分的设计在XP中是不推荐的,在开发过程中,能够最简单的实现用户素材就是最好的。只有在十分迫切需要进行改进的时候,才会去进行改进。
13)、重构
在开发过程中,随着迭代的进行,我们会发现处理一个错误可能引起另一个错误,代码会随之变得结构退化,最终导致代码难以维护。所以在XP团队中,会经常性的进行代码重构。
14)、隐喻
隐喻的概念类似于,在玩拼图游戏时候的整张图案,它的作用在于制定一个全局性的系统视图,如果模块的功能与整个系统的隐喻不同,则可以断定这个模块是错误的。
到此为止,关于极限编程实践方面的内容,我们就先讲到这里,更多的还是需要我们思考如何去应用和完善。接下来,我会继续进行敏捷开发的其他内容,敬请期待!