极限编程(XP)是一种敏捷方法 ,被认为是软件开发中最有效的方法之一。 它以测试优先的开发方案运行。 它具有短期计划,同时高度适应需求的变化,并且由高生产率的团队组成,这些团队可以快速而有效地生产高质量的软件。
在极限编程中,客户的参与度高于任何其他敏捷方法。 他们是整个项目生命周期中团队的积极成员。
确实,它确实是“极限”,因为它需要大量的努力。 该软件的发布应尽快满足客户的需求。 通常,必须在今天而不是明天设计和测试代码。
它要求高度的坚持和纪律。 频繁使用功能测试和自动化单元需要逻辑思维,相关经验和快速解决问题的技能 。
XP高效吗? 让我们看一下XP团队的角色和原则。
极限编程团队
XP团队的规模从五人到12人不等。团队中的职位是:跟踪者,程序员,教练,测试人员和客户。 由于工作的复杂性和高速度,他们经常进行口头交流。
客户设置规则:功能测试,优先级和用户案例。 他们与跟踪者定期开会,以使他们及时了解项目进度。
跟踪器就像XP团队的经理一样。 他们有责任为团队提供支持,并确保项目进展顺利。
程序员实现客户对项目的要求。 他们定义任务并估计与用户故事相关的工作量。
测试人员对代码进行试验并分析图形。 他们将结果报告给团队的其他成员。
教练安排每日和每周的会议。 通常,他们负责将有价值的信息传递给跟踪器。
在极限编程中,每天召开一次会议,称为站立会议,长达15分钟。 通常,起立是在一天的开始。 在这些会议期间,将介绍目标并与团队合作。 但是,在每个周期结束时,都有一个较长的会议来测量项目速度。
结对编程是指两个开发人员在一个工作站上一起工作。 他们按时间段工作,通常最多一两个星期。 因此,XP通过拥有多个周期而不是只有一个较长的周期来降低需求变更的成本。
极限编程原理
XP遵循敏捷原则 。 但是,它具有五个关键价值: 简单,沟通,勇气,尊重和反馈 。
每个关键值都对极限系统编程中的工作流程产生重大影响。 根据我在Angular开发公司的经验, 简单,沟通和反馈是使Scrum和XP效率最大化的核心方法。
勇气允许程序员不管风险如何都可以修改代码。 当必须做出关键决策(例如重构代码或删除源代码)时,这是一项必要技能。
尊重对XP团队成员至关重要。 在提供和接受建设性反馈时,他们需要表现出理解和支持。 只有一个有礼貌的团队才能处理XP项目中所需的工作速度。
与其他方法不同,测试是第一位的。 在每个周期中,XP团队首先创建未通过自动测试的代码,然后运行它们,然后开发代码以使测试通过,而不是创建代码和测试然后运行它们。 听起来更长一点吧? 然而,代码从一开始就可以工作的机会比传统编程要高。
系统的按时交付要求编码人员不断进行编写和测试。 风险通常是使用最新技术按固定时间表进行的。 但是,在每周周期中(通常是在开始时),XP团队会聚在一起分析进度,风险和每周任务。
在将这种方法应用于您的项目之前,应认识到极限编程的优点和缺点。
极限编程的优点
快速。 极限编程项目只需要几个月,而不是像其他软件开发方法那样需要数年。 有一个快节奏的工作环境,没有浪费时间。 有持续的集成和部署。
可见。 团队内部的开放式沟通可帮助每个人跟上项目进度。 每个人都在完成各自的任务,但是例行会议会集体记录改进情况。 由于XP项目具有可见性,因此故障和错误受到限制。
降低成本。 在极限编程中,减少了反馈回路。 因此,改变的成本也降低了。 在其他方法中,仅在客户反馈后才重新制造代码。 在这里,在整个开发阶段都会实施更改。
团队合作。 在XP中,开发人员努力工作以在紧迫的期限内完成目标。 他们在整个项目中相互支持。 他们一起设计和测试代码。 结对编程以两人一组的形式将它们聚集在一起,在它们之间共享想法并并排创建软件。 因此,增加了员工的承诺和满意度。
极限编程的缺点
代码克服了设计。 XP的重点肯定是代码而不是设计。 设计是销售应用程序的要素,因此如果设计不够好,客户可能会对最终产品不满意。 有时,这可能导致无法完全实现软件要求。
位置。 当客户远离开发团队时,XP项目很难实施。 通常,当团队成员面对面见面时,XP交互会成功。 因此,应用极限编程会限制项目范围。
缺少文档。 不断的更改无法正确记录。 因此,存在无法跟踪的意外故障的高风险。 即使修复了错误,但如果没有准确的文档说明,同样的错误也有可能再次发生。
强调。 在期限紧迫的情况下工作压力很大。 如果开发人员压力很大,无法按时完成任务,则他们在编码时更容易出错。 随后,由于调度,软件质量可能降低。
为您的团队考虑极限编程
如果您希望团队在短时间内进行编程,则极端编程可能是对项目进行管理的正确方法。
与其他敏捷方法一样,极限编程旨在轻松应对不断变化的需求。 但是,它的优点是可以更快地创建产品。
客户和开发团队都致力于并平等地参与项目生命周期。
XP的黄金法则是首先测试,然后发展。 当然,当您进行“极端”测试然后进行编码时,会有风险。 但是,这种方法非常高效,这就是为什么它在软件开发中得到广泛使用的原因。
让我知道您在极限编程方面的经验。 发表评论以供进一步讨论。
翻译自: https://www.javacodegeeks.com/2019/01/pros-cons-extreme-programming-xp.html