解析极限编程--Kent Beck, Cynthia Andres读后感
Posted 架构师易筋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解析极限编程--Kent Beck, Cynthia Andres读后感相关的知识,希望对你有一定的参考价值。
极限编程(Extreme Programm, XP)的目标是杰出的软件开发–
更低的成本、更少的缺陷、更高的生产效率、更高的投资回报。
现在还在艰苦奋斗的团队,只须通过精化他们工作的方式,并把日常开发实践极限化,就可以达到这个效果。
- 无论环境如何,你始终可以改进。
- 你总是可以自己开始改进。
- 你可以今天就开始改进。
1. 极限编程定义
- XP要求我们坦诚自己有能力做什么,然后去做这些能力所及的事情。同时允许希望其他人也这样做。
- 好的合作关系是做好事情的保证。
- 尽力而为,然后处理其结果,这就是极限Extreme的含义。暴露自己,对有些人来说,这不可思议,而对其他人却习以为常。不设防才是真正的安全。
- 一种软件开发的哲学,基于沟通、反馈、简约、勇气和尊重的价值观。
1.1 XP的方法
- 开发周期短,提供及早的、具体的、持续的反馈。
- 增量计划方法。迅速地提出一个总体计划,并在项目生命周期中不断演化。
- 能够灵活安排功能的实现,以对变化的业务需求做出反应。
- 使用由程序员、客户和测试人员编写的自动化测试来监控开发进度,支持系统的演化,并尽早发现缺陷。
- 通过口头沟通、测试和源代码沟通系统结构和意图。
- 演化的设计过程贯穿整个系统生命周期。
- 依赖于能力普通但能积极参与的程序员之间的紧密协作。
- 各种实践兼顾项目成员的短期直觉以及项目的长期利益。
1.2 XP的良好心态
你可能有足够的时间、资金或团队技能,也可能没有。但不论如何,如果你认为自己将会有足够的资源,在这种状态下就会有最好的表现。人类学家 Colin Turnbull在《山里人(The Mountain People)》 和 《丛林中的人们(The Forest People)》两书中对这种“满足心理”有动人的描述。他对比了两种社会:资源紧张而导致的撒谎者、欺骗害人者的部落和资源富足产生的协作互爱的部落。我经常问处于窘境中的开发人员的一个问题:“如果有足够的时间,你会怎么做?”即使受到某些条件的约束,你也可以做到最好。对这些约束的过分忧虑会使你偏离目标。不论这些约束是什么,你自己可以做到最好。
1.3 XP可以解决开发过程中的风险
- 进度延迟-- XP提倡短发布周期。
- 项目取消-- XP 中的最小发布必须是满足最大商业意义的部分,这些功能的选择工作由团队中面向商业的成员来承担。
- 系统恶化-- XP中创建并维护一套自动化测试,每次系统发生改变后都要运行(一天好几次)这些测试,以确保质量基线。XP 总是保证系统处于可部署的状态,而不允许出现问题的积累。
- 缺陷率-- XP中既包括了程序员的每个函数 function 的测试,也包括了客户书写的每个程序特性 program-feature 的测试。
- 业务误解-- XP 提倡业务人员成为团队成员。项目规约 specification 在开发过程中不断改进,因此客户和团队的知识都能反映在软件中。
- 业务变更-- XP 缩短了发布周期,因此在一个单独的发布周期中几乎没什么变化。
- 错误特性太多-- XP 坚持只解决最高优先级的特性。
- 人员流动 – XP 要求程序员估算自己工作所需时间并完成工作。XP中有一个关于人员流动的清晰模型:鼓励新成员逐渐承担越来越多的责任,新成员之间互相帮助,同时老成员也为新成员提供帮助。
1.4 什么是XP?
- XP是放弃旧的、低效的技术和习惯而采用新的有效的技术和习惯。
- XP 是因为你今天的竭尽全力而充分欣赏自己。
- XP是努力在明天做得更好。
- XP是要你按照对团队共同目标作出的贡献来评价自己。
- XP是让你的一些人性需求在软件开发中得到满足。
2 学习开车
XP的范式 paradigm:保持清醒、适应、变化。
软件中所有东西都在变。需求在变,设计在变,业务在变、技术在变,团队在变,团队成员也在变。问题不在于变化,因为变化总是发生;问题在于我们有没有应对变化的能力。
开车这个隐喻应用与XP时有两个层次,客户驱动系统的内容,团队则驱动开发的过程。XP让你通过不断的、小的纠正来适应,通过短周期的部署软件来朝着目标前进,这样你就不会过很长时间才发现自己走错了方向。
- 客户驱动系统的内容。客户(内部或外部的)从系统需要解决什么问题的概要想法开始。团队的客户,当他们周复一周地决定软件接下来应该走向何方时,需要谨记他们应该朝地平线的哪儿前进。
- 每个团队表达他们价值观的形式都会因地点、时间、团队的不同而不同。如客户驱动着系统的内容,整个团队从当前的一组实践开始,驱动着开发的过程。随着开发的继续,团队将意识到哪些实践需要加强,哪些实践偏离了目标。每项实践都是一个改进效率、沟通、自信心和生产率的试验。
3 价值观
- 沟通: 每当开发中出现问题的时候,通常已经有人知道了解决方法,但有权作出改变的人却不知道。
- 简单:KISS原则 – Keep it Simple Stupid。
- 反馈:我们不断改进,并不期望可以马上做到完美,我们使用反馈来一步步地接近我们的目标。
- 勇气:勇气是面对恐惧的有效行动。
- 尊重:如果团队成员不关心彼此,也不理会别人所做的事情,XP是无用的。每个人对团队的贡献都应该得到尊重。
以上是关于解析极限编程--Kent Beck, Cynthia Andres读后感的主要内容,如果未能解决你的问题,请参考以下文章