美文网首页
《猎豹行动:硝烟中的敏捷转型之旅》第5章 与敏捷的初恋故事

《猎豹行动:硝烟中的敏捷转型之旅》第5章 与敏捷的初恋故事

作者: 副班长国伟 | 来源:发表于2020-08-15 15:00 被阅读0次

    第 5 章 与敏捷的初恋故事

    1、极限编程的12个具体实践

    1)计划游戏

    主张把整个项目拆分成从几天到几个星期的若干个迭代,把需求拆分成一个个独立的用户故事,放在Backlog里。

    在每个迭代开始时,用户对用户故事进行排序,然后交付团队通过估算确定哪些用户故事可以在这个迭代里开发。

    永远只对当前迭代进行计划,因为用户可能随时提出新的需求,产生的新用户故事放到后面的迭代中。

    2)小型发布

    每个迭代后,所开发的用户故事都可以发布或展示给用户,获取反馈,用户甚至可以提出新的用户故事放在后面的迭代中。

    3)现场客户

    用户应该和交付团队始终在一起,持续参与到项目中,阐明用户故事的具体需求和用户故事优先级,给与交付团队及时的反馈。

    4)测试驱动开发

    主张在编程前就根据用户故事的需求写好测试,通过测试来验证编程代码是否满足需求。

    如果可能,测试应该是自动化的。

    当我们为每一个用户故事都准备了自动化测试时,并可以一次性执行所有的自动化测试时,这些测试便为系统构造了一个“安全网”,它们是系统内部质量的基石。

    5)持续集成

    集成应该更频繁,最好每天甚至每次有代码提交时就集成一次。

    集成包括编译、运行所有自动化测试、打包等,尽早暴露问题并及时修复问题,防微杜渐。

    团队每天都应该监测持续集成的结果并维护持续集成的成果。

    6)重构

    不改变功能和外部行为而优化代码的可读性、质量和性能一直是程序员想做但不敢做的事情。

    有了自动化测试和持续集成,重构便有了强大的保障,一旦重构后出现测试失败,便立即回滚代码。

    7)代码集体所有权

    在自动化测试和持续集成的保障下,任何人都可以对代码进行重构。

    8)简单设计

    传统的设计要求有前瞻性,要充分考虑今后的扩展性,但是这会为系统设计带来复杂性。

    当原来的需求出现变更时,为原始需求埋下的复杂设计不但不会为虚无的未来带来收益,还直接影响了当下的开发效率和质量,过度设计是软件开发的几大罪行之一。

    提出简单设计,永远只为当前要做的需求进行最简单的设计。

    不要为了程序的可扩展性,把目前不需要的功能加入软件。如果设计确实不能满足需要,在自动化测试和持续集成的保障下,完全可以通过重构来解决。

    9)结对编程

    主张两个人结对在同一台计算机前来完成编程,一次性完成编程与评审。

    这个过程其实包含两个人对设计、测试以及编程的讨论,确保这几个过程都要共同讨论。

    然后配合自动化单元测试,完美解决事后评审的效率和效果问题。

    10)每周只工作40小时

    开发是一个脑力工作过程,前一天加班势必导致后一天的效率低下,得不偿失。

    11)系统隐喻

    记录用户故事需求时,用交付团队和客户都能理解的语言编写。

    12)编码规范

    有一套整个团队都认可的规范。在结对编程、重构和集体所有权等实践中都应落实这些规范。

    它们是一个有机整体,互相配合、相得益彰。

    计划游戏和小型发布确保开发可以更早开始和迭代式的持续交付。

    现场客户和系统隐喻确保客户和交付团队都明白在做什么。

    代码规范、结对编程、测试驱动和持续集成确保了简单设计、重构和集体代码所有权的可行性。

    2、极限编程的 5 个核心价值

    沟通、简单、反馈、勇气和谦逊。

    更强调面对面沟通、简化设计与实践、面对当下以及避免重复和浪费。

    3、花在需求上的时间越多,所剩的开发时间就越少,我们需要更早地开始开发,而不是更晚。

    4、经验也告诉我们,用户在用户验收测试时改需求是完全不可避免的,与其惧怕和回避,不如直面和拥抱。


    本章知识点小结:

    · 极限编程及其12个实践。

    相关文章

      网友评论

          本文标题:《猎豹行动:硝烟中的敏捷转型之旅》第5章 与敏捷的初恋故事

          本文链接:https://www.haomeiwen.com/subject/lloydktx.html