Extreme Programming vs SCRUM | XP vs SCRUM
There have been number of different software development methodologies used in the software industry over the years, such as Waterfall development method, V-Model, RUP and few other linear, iterative and combined linear-iterative methods. Agile model (or more correctly, a group of methodologies) is a more recent software development model introduced by the Agile manifesto to address the shortcomings found in those traditional software development methodologies.
敏捷方法基于迭代开发,并将用户的反馈用作主要控制机制。敏捷可以称为以人为中心的方法,而不是传统方法。敏捷模型通过将系统分解为非常且易于管理的子部件,从而很早就提供了产品的工作版本,以便客户可以尽早实现一些好处。与传统方法相比,敏捷的测试周期时间相对较短,因为测试与开发平行。由于所有这些优势,敏捷方法比目前的传统方法更喜欢。Scrum和Extreme编程是敏捷方法最流行的两种变体。
什么是Scrum?
As mentioned above, SCRUM is an incremental and iterative project management process, which belongs to the family of Agile methods. SCRUM is based on giving high priority to the customer participation early in the development cycle. It recommends incorporating testing by the customer early and often as possible. Testing is done at each point when a stable version becomes available. The foundation of SCRUM is based on starting testing from the beginning of the project and continuing throughout to the end of the project.
Scrum的关键价值is “quality is the team’s responsibility”, which stresses that the quality of the software is the responsibility of the whole team (not just the testing team). One other important aspect of SCRUM is breaking down the software in to smaller manageable parts and delivering them to customer very quickly. Delivering a working product is at utmost importance. Then the team continues to improve the software and deliver continuously at each major step. This is achieved through having very short release cycles (called sprints) and getting feedback for improvement at the end of each cycle.
Scrum定义了开发团队平稳运行的几个关键角色。他们是产品所有者(代表客户并保持产品积压的人),Scrum Master(通过举办Scrum会议,保持Sprint Backlog并烧毁图表)和其他团队成员,担任团队的组织者和协调员。团队可能由传统角色组成,但主要是他们是自我管理的团队。主要的Scrum工件是产品积压/发行积压(愿望列表),Sprint Backlogs/缺陷积压(每次迭代中的任务),烧毁图表(工作剩余与日期)。主要的Scrum仪式是产品积压会议,Sprint会议和回顾会议。
什么是极端编程?
Extreme编程(缩写XP)是属于敏捷模型的软件开发方法。极端编程以很小的连续步骤进行阶段(与传统方法相比)。仅需一天或一周的第一张通行证是故意不完整的。为了提供开发软件的具体目标,一开始就编写自动测试。然后开发人员进行编码。重点是将编程作为对。一旦所有测试通过,编码就被视为完整。下一阶段是设计和体系结构,它处理相同的程序员组合代码。在此阶段结束时,将不完整(但功能性)的产品提交给利益相关者。此后,下一阶段(重点关注下一组最重要的功能)开始。
极端编程和Scrum有什么区别?
Extreme Programming and SCRUM are understandably very similar and aligned methodologies. However, there are subtle but important differences between these two methods. SCRUM sprints last for 2-4 weeks, while typical XP iterations are shorter (last 1-2 weeks). Usually, SCRUM teams do not allows changes in to sprints, but XP teams are little more flexible to changes within iterations. For example, after the sprint planning, the set of items of that sprint stays unchanged, but a feature that has not started working on can anytime be swapped with some other feature in XP. Another difference between XP and SCRUM is that, the order of features developed in XP is a strictly prioritized one by the customer, while the SCRUM team decides the order of items (after the product backlog is prioritized by the SCRUM’s Product owner).
Unlike XP, SCRUM does not lay down any engineering practices. For example, XP is driven by practices like test-driven development (TDD), pair programming, refactoring, etc. However, some believe that mandating a set of practices on self-organizing teams could have a negative impact, and this can be considered a shortcoming of XP. Another shortcoming of Extreme programming is that inexperienced teams may tend to refactor without any automated tests or TDD (or simply hacking). Therefore, some suggest that SCRUM is better for staring off (as it brings big improvements simply through focused timeboxed iterations) and XP is suitable for slightly mature teams who have discovered the value of above mentioned practices (rather than using them because they have been asked to do so).
hello说
very good
罗布乐思说
也很好