提到XP想到什么?Windows XP ?(配音:晕倒死叉P)?
敏捷开发里面,也有一个XP,这里要按照英语字母发音,分开念。老司机就不示范发音了。
敏捷开发里提到的XP是eXtreme Programing的缩写,翻译过来是:极限编程。不是福报,不是编程累到极限的意思…
敏捷XP是对测试小伙伴、QA团队最有利,最友好的一个方(tao)法(lu),没有之一!
敏捷XP是Kent Beck等大牛在20世纪90年代发明的一种软件工程方法,是一种强调团队工作的工作方式。
之前文章说的Scrum是一种工作方式的框架,从组织到团队的设计,而XP关注的是具体的工程技术实践。换句话说,Scrum指明谁,去扮演什么角色,干什么活儿,多长时间,产出什么。
XP指导工程狮、程序猿怎么用什么姿势工作,怎么CP搭配提高效率。
官方说法
XP旨在通过工程实践的合理搭配使用,使开发者们能够自信地响应客户需求。强调反馈环机制,客户与研发团队之间的反馈环,测试与开发的反馈环,具体代码实现跟单元测试之间的反馈环,结对之间的反馈环。
极限编程认为在软件研发过程中,变化是无所不在的,人们不应回避变化,而应该适应变化,通过对反馈的检视,去适应变化。具体反馈环见下图:
就这样吧,估计这种定义没多少人真的看-_-||
敏捷XP提出的具体编程姿势或者实践思路,很值得测试小伙伴们实践并推进,我们一一列出来,测试小伙伴们就明白了:
- 测试驱动开发(TDD)
- 接受测试驱动开发(ATDD)
- 持续集成、持续发布(CI/CD)
- 结对编程
之前文章里,老司机已经给各位小伙伴们科普过TDD、ATDD,多数公司里已经有了Jenkins等工具构建的CI/CD流水线,此处不再赘述。
结对编程(Pair Programming),即两个人一起编写代码,共用一套显示器及键盘,一位担任的是navigator的角色,另一位是driver的角色。即:一个人写代码,另一个人直接审查,看着不爽直接接过键盘继续编程。
正经的结对编程看起来像这样
Kent Beck等技术大牛表示:结对编程的前提是代码集体所有制(Collective Code Ownership),即代码为团队所共有,团队为代码的质量共同承担责任。而且,Kent Beck等大牛认为,结对编程好处还包括:
- 及时完成结代码审查,减少代码缺陷率
- 帮助人员的能力提升
- 便于讨论,帮助攻关
- 可以提高编程工作的专注度
对于敏捷XP的测试相关三条实践,即:TDD、ATDD、CI/CD,表示完全同意。
对于结对编程,老司机觉得,编程是个苦差事,需要鼓励,所以跟谁结对很重要…此处请不要自行脑补…
敏捷XP虽好,但是在很多领导看来,TDD、ATDD增加了代码量,花费了时间但是工程进度并没有有效前进。
结对编程,更是让领导们觉得人力成本直接下降50%,是可忍孰不可忍。基于此,我们常见的“敏捷开发”模(tao)式(lu)中,几乎看不到Scrum + XP的真正组合。
最后,下次在看到敏捷XP不要念成“叉P”,跟Windows没半毛钱关系。
老司机强调:所有把极限编程(XP)说成是极限加班的,100%是耍流氓…
想学习却无从下手,该如何学习?
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!