极限编程与敏捷开发( 二 )
首先,我们可以这样说,这十七位代表整合了20世纪90年代产生的各种“轻量级”方法论的价值观(包括crystal、scrum等),在此基础上提出了一个包容度更大的概念——“敏捷软件开发方法”。
其次,“敏捷开发”的目标是通过频繁交付,来获取反馈,以便提升客户价值。而这也是以极限编程为代表的众多“轻量级”方法论所追求的结果。
那么,既然有众多的“轻量级”方法论,为什么还要提出“敏捷软件开发方法”呢?我认为,原因有两点:
1.“软件危机”的出现,促使人们开始思考:如何开发软件以满足不断增长的需求,以及如何维护数量不断膨胀的软件产品。快速原型、增量、螺旋等模型涌现,在此基础上,基于迭代的和基于流动的敏捷模型横空出世。敏捷模型实现了高程度的成果交付,并且能够高度迎合需求变化,这是软件开发技术发展的必然要求。
2.敏捷联盟通过激发群智,将原本零零散散的“轻量”方法整合起来,形成包容度更大的概念,以满足不同团队、不同项目的实际需要。
最后标注一下,以上部分资料出自于敏捷开发网站,尤其是其中自制的小视频,啧啧啧,让人欲罢不能。
https://www.minjiekaifa.com/
■网友
2001年2.11~2.13日,17位重量级的轻方法领军人物齐聚美国犹他州瓦士奇的雪鸟滑雪基地,著名的敏捷宣言诞生。17位重量级人物中包括XP的创始人 Kent Beck和Scrum的创始人 Ken Schwaber \u0026amp; Jeff Sutherland。所以XP是轻量级方法的一种,而敏捷是所有类似XP,有着共同的轻量开发价值观的方法的统称。
■网友
以下资料来自于课堂笔记,内容主要出自
商业信息系统 Business_Information_Systems 作者 Graham Curtis; DavidCobham
Extreme programming 极限编程
It stresses customer involvement and emphasizes success through customer satisfaction.
适用于具有以下特征的项目
1. systems requirements are expected to change regularly; 需求定期变化
2. systems requirements are often difficult to specify completely in advance;
需求无法提前完全确定
3. systems need to be developed quickly; 要求系统开发速度较快
4. systems are relatively small. 系统相对较小
Extreme programming projects involve small groups of developers (at least two and typically no more than 12) together with selected managers (customers).
参与人员较少
1. Planning
User stories are produced by the customers and are accompanied by a specification of an acceptance test – a test which will determine whether the code when produced performs what is required of it. 用户故事:验收测试的规范
2. Design
During systems design great emphasis is placed on simplicity. Functionality is not added until and unless it is scheduled. 重点在简单性,轻易不会增加功能
3. Coding
During the coding process, the customer is always available to clarify any questions on the functionality required. 编码过程中,客户始终可以澄清有关所需功能的任何问题
4. Testing
Within extreme programming the development of unit test code occurs before the program code is developed. 单元测试代码的开发发生在程序代码开发之前
The process of extreme programming also allows for changes to be implemented as the system is developed. 极限编程的过程还允许在系统开发时实施变更
【极限编程与敏捷开发】 敏捷开发(如Scrum)
Software is developed in “sprints”, which are set time-frames.将总体过程划分为多个时间片,强调短期“冲刺”。Scrum depends on repetitive executions of a cycle of activities. 依赖于重复执行一个循环内的活动The product owner creates a product backlog, which is a prioritized “wish-list”. 具有含优先级的待办事项清单,可以确定时间片的优先顺序。Scrum is not only applicable to software projects. 不仅用于软件开发(但极限编程只能用于软件)
推荐阅读
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 有点计算机基础的人想尽快找份编程的工作。哪种编程的工作最好找还需要学些啥
- 戒烟|一天内抽多少支烟,是人体能承受的极限?医生给个数,要心里有底
- 作为软件工程大二的学生,学习一般,编程一般,毕业后能干些啥
- 30岁的人生,想自学一门编程并从事,这个选择怎样呢
- 趣头条|他柔软他敏捷,我是刚直汉子,我和黑猫有个约会。
- 电子编程书可以边看边练习,价值大吗
- 自学编程知识是自己啃书加实践好还是看视频加实践好好
- 马云说的大数据时代到底是,用到啥技术,如果想要学习大数据技术,要学习哪些基础的东西要先会编程么
- 谈车工坊|在“中国之最”赛道挑战双擎混动的性能极限
