极限编程(eXtreme Programming , xp)
极限编程的思想源自Kent Beck 和 Ward Cunningharm 在软件项目中的合作经历。在这里, ”eXtreme“ 的意思是希望将软件开发过程中一些好的方法发挥到极致。 XP注重的核心在于沟通、简明、反馈和勇气,用一句话来概括XP的这4个核心价值观就是:通过充分的沟通和交流,使产品的设计尽可能简单明了;同时通过客户经常性的反馈,生产出符合客户要求的软件产品,并且有勇气迎接需求的改变。
另外, 极限编程者还总结同一系列经典的实践,形成了XP的12个主要实践方法,这些方法对极限编程具有指导性的意义,分别是:客户计划的制定、小版本的发布、隐喻、结对编程、测试驱动开发、重构、稳定的进度、代码共享、编码规范、简单的设计、持续集成、现场客户。
RUP(Rational Unify Process, Rational 统一过程)
RUP试图总结现代软件开发过程中所有好的实践经验,形成一种有很强适应性的软件开发过程。它包括了软件开发中的6大经验,分别是:迭代式开发、需求管理、可视化建模、使用基于组件的软件体系结构、验证软件质量、控制软件变更。RUP把软件开发的生命周期划分成4个连续的阶段,每个阶段可以包含一次或多次迭代。每次迭代结束时都会生成一个可执行的版本,并更加接受最终产品。这4个连续的阶段分别是:初如阶段,了解项目的大致需求,建立业务模型,确定系统范围;细化阶段,设计、确定系统的体系结构,制定工作计划;构造阶段,构造产品并继续演进需求、体系结构、计划直至产品提交;移交阶段,完成产品的最终版本并交付给用户使用。
RUP的9个核心工作流分别是:业务建模,需求,分析与设计,实现,测试,部署,配置与变更管理,项目管理,环境。RUP的基本原理是:以满足客户需求、为客户创造价值为最终目标;尽可能早且不断的化解重大风险;把注意力放在可工作的软件上;在项目执行过程中尽可能早地适应变化;在项目早期设计、实现并测试一个可执行的架构;使用组件来构造系统;建立高效、协作的团队;要始终重视产品质量,否则追悔菲及。
LEAN(精益软件开发方法)
精益生产的概念首先出现在制造业中,由日本的丰田公司提出。大规模的制造理论认为,一定程度的浪费、一定程度的废品是正常的和被允许的。而在软件开发中,资源浪费、成本居高不下也同样成为一大障碍。 LEAN方法的主要思路有:
消除浪费,将所有的时间花在能够增加客户价值的事情上;延迟决策,在一个复杂多变的环境中进行软件开发,需要根据实际情况保持可选方案的开放性,但时间不能过长;尽早交付,因为软件音交付的周期越短,用户的需求就会越清晰,软件应对需求变化的灵活性就越高,便 于让客户的需求来推动工作的进展;加强学习,承认变化的存在及其不可预见性,加强反馈和交流,在实践中发现问题,解决问题,并最终形成解决方案;授权给团队,正确的决策取决于准确的信息,让开发团队参与决策,让团队成员充分发挥自己的潜力。软件开发中一个巨大的浪费就是由于不注重质量而导致的返工。
========================================================================
在一个采取SCRUM的项目中,首先要将所有需要完成的工作列在一个Product Backlog中,项目开发过程中需求的变化也要写进去。在每个Sprint开始之前,要召开Sprint计划会议。在这个会上,产品责任人为Product Backlog中的各项功能需求确定优先级。随后开发团队按照优先级,从中挑选了他们认为能在这个Sprint中完成的任务,并把这些任务从Product Backlog中挪到Sprint Backlog中去。在Sprint的进行过程中,Scrum团队每天都要举行一个简短的每日Scrum会议,以便团队成员了解开发进度。一个Sprint结束之后,需要如开Sprint评审会议和回顾会议。开发团队在评审会议上把这个Sprint的开发成果展示给大家。在回顾会议上,团队成员们会回顾刚刚过去的这个Sprint,从中总结经验和教训。
分享到:
相关推荐
本书《轻松Scrum之旅:敏捷开发故事》就是基于敏捷开发思想的实践经验,讲述了一个外企的一个新团队如何从零开始实施敏捷,经历挫折、失败、进步、成长,直到项目成功结束的故事。本书的创作完全是由 4 位作者共同...
浓缩了3个月的读书心得和知识要点,包含了大部分篇章
Scrum是敏捷开发的一种具体方法,它来源于英式橄榄球,强调团队协作、自我管理和面对挑战的灵活性。敏捷开发在软件行业得到广泛应用,其核心是关注价值、消除浪费,以人为核心,采用迭代和循序渐进的方式进行软件...
敏捷开发是一种强调...敏捷开发和Scrum之旅不仅仅是关于技术和工具,更是一种团队文化、工作方式和思维模式的转变。通过这种方式,团队能够有效地提高工作效率,增强适应变化的能力,最终提升软件质量和用户满意度。
轻松Scrum之旅(一本介绍Scrum个人经历的实践指导教材)