原文地址:http://blog.jobbole.com/110231/
概况(本文主要讲解了什么,用简短的语言):
以传统的瀑布式开发,抛砖引玉出敏捷开发。两种方式以漫画的形式,产生出对比。用通俗的语言简短介绍了敏捷开发特点。对敏捷开发众多分类中的SCRUM重点阐述了,详细的流程。
一、漫画形式说明敏捷开发
使用两种场景的对话介绍了,常见开发流程,瀑布式开发,从而引申出敏捷开发
1.瀑布式开发
重点:从设计到编码,从测试到交付,每一个阶段完成后,才能进入到下一个阶段。
感想:结果是一个整体的提交,有整体性。联想到实际工作中,此方式是一个稳扎稳打,循序渐进的节奏感,这也是优势方面。缺点,整个工作的周期实际会消耗很多,后续环节,可能会因为前面的环节的风险而受到影响,特别是时间上。引用漫画中一段,精辟的话:
“传统的瀑布式开发,就好比餐厅的厨师把所有的菜都做好在端上来”。
2.引申敏捷开发
敏捷开发,故就是为了解决传统的瀑布式开发的劣势,就像上菜一样,客户大多没有耐心等到所有菜上齐。
二、简要说明什么是敏捷开发
1.感想:个人理解深层的含义用一句通俗的话来说:“先定一个能达到的小目标”。个人联想场景,假设我个人(程序员)准备研发一套软件,因受人员和时间等因素的影响,我不可能花大量的时间去投入到设计方面的工作,可能更集中在编码、功能、以成果体现方面的工作。所以首先可能我会准备第一阶段,开始一些实际的编码和数据库设计等工作。
2.原文关键语句
简单来说,敏捷开发并不追求前期完美的设计、完美编码,而是在力求在很短的周期内开发出产品的核心功能,尽早发布出可用版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
三、敏捷开发模式的分类
1.SCRUM(流行)
2.XP(极限编程;流行)
3.
Crystal Methods
4.FDD(特性驱动开发)
.....等等
四、SCRUM
概述:SCRUM是敏捷开发模式中的一种,本文主要讲解SCRUM。SCRUM是一种开发流程框架,也可以说是一种套路。
1.基本术语
Sprint:周期,比如要开发一个功能需要多少周的时间。
User Story:用户的外在业务需求,类似一个客户的功能描述。
Task:具体的开发任务,比如某个的增删的功能。
Backlog:需求列表。分为软件产品整体的和周期的。
Daily meeting:日会。
Sprint Review meeting:评审和演示成果。
Sprint burn down:项目进展,更新并记录当前周期的需求完成情况。
Rlease:项目发布新的可用版本。
2.流程描述
![](https://app.yinxiang.com/shard/s67/res/4f63fd62-23e4-4baa-8d1a-26b2a574700d/SCRUM-1.png)
![](https://app.yinxiang.com/shard/s67/res/272de034-94c4-4e49-9d80-79d9090d8d5f/SCRUM-2.png)
![](https://app.yinxiang.com/shard/s67/res/de85639d-4d5e-4240-9768-b94f882d0c5b/SCRUM-3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/be4facc684e2b571d2fc9bd032f4c3bf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ba4bf71d2bddd8f90308e1663454bab1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d1c11c444e3a6b4705a4b3897c89430.png)
感想:工作中也切身体会这样的工作流程,很流行很实用,特别针对人数不多的开发团队,高效率的推动整体进展,早日交付成果。作为一个程序员独立开发一套软件,这样的工作流程也可以借鉴。
五、总结
本文只是对敏捷开发的一个初探,但通俗理解了敏捷开发的本质和特点。对于其中常用的一种类型SCRUM,个人感觉很有实用性也很普遍,我个人理解的是敏捷开发是为了团队快速高效率的产出结果的方式和一种节奏。我会有这种开发流程方式,去自己实践一款软件。作为软件开发中的某个单独的角色,也许很难再整体上对软件有把控,但我们可以先从定一个“小目标”开始,慢慢渗透到全局,先以有东西为准则。
LOG:
1.笔记创建—2018/5/2
(每个笔记至少要去回顾2次)
END