理解:
- 首先,敏捷并不是一门具体的技术,而是一种理念或者说是一种思想。它可以指导我们更加高效的开发。
- 其次,敏捷开发都具有以下共同的特征:
1.迭代式开发
2. 增量交付
3. 开发团队和用户反馈推动产品开发
4. 持续集成
5. 开发团队自我管理
- 最后,相比于“传统”的瀑布开发模式,敏捷开发是一种“现代”的开发模式。
具体开发
上面说了敏捷是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而具体的开发方式有哪些呢?
Scrum,极限编程(XP),精益软件开发(Lean Software Development),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Crystal Clear)等等。
除了Scrum和XP,对于上面的其他开发方式,我也只是简单了解,大家可以多查查相关的资料。
我们可以简单的对比一下Scrum和XP:
- 在开发的过程中,你可以采用Scrum方式也可以采用XP方式;
Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的。
敏捷宣言:
我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工作,我们形成了如下价值观:
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈
响应变化 重于 遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者
什么是Scrum?
Scrum 是一个用于开发和维持复杂产品的框架 ,是一个增量的、迭代的开发过程,通常用于敏捷软件开发。。原词来自于橄榄球中“带球过人”。在橄榄球比赛的每次冲刺前,都将有一个计划安排的过程,但冲刺开始后则由队员在原计划的基础上随机应发
评价:
很多觉得Scrum并没什么实质性作用,原因有这么几点:
1. 对于没有接触过Scrum的程序员来说,很难做到敏捷。
2. 用户故事的划分以及产品列表挑选最高优先级有点困难
3. 开发的过程中,团队中所有程序能够一直保持积极主动性很难把握
4. Scrum对于自组织的团队要求很高
5. 对于在实施Scrum的过程中,对于把握全局的master以及产品负责人的要求更高。
6. 能否在实施的过程中及时发现问题,及时解决问题
不可忽视Scrum作用:
1. Scrum团队总是先开发对客户具有较高价值的需求。
2. 更好的管理软件开发项目,它同样可以用于管理运行软件维护团队,或者作为计划管理,或者作为计划管理方法。
3. 提高团队的开发效率,降低项目的开发周期,最大限度的发挥团队的作用,更好的满足用户的需求。
优缺点:
Scrum的优点就是敏捷的优点,很注重实效,能更好的应对变化。
缺点是,他过于强调了人的自我管理。 有的观点认为,Scrum适用于一帮资深程序员组成的团队,每个人都是牛人,每个人都有激情干活,这样才work。在国内大家缺乏能动性,没什么激情,很不适合Scrum。
还有一个问题,就是很容易不停的因为目标变化而重新设计,最终导致不能交付。
Scrum并不能保证项目成功,它只是给你更多的反馈,更多的可控性,让你更灵活的应对变化。在实际项目中我们应该对Scrum进行可适应性调整。
团队分工:
- 秦崇文:编写代码,进行前端测试
- 彭圣松:写后端开发代码
- 邓志豪:了解客户需求,沟通用户
- 谷涛: 编写需求文档
- 储梦秋: 负责项目以及安排任务和测试