阅读《构建之法》给我印象,收获颇多的另一个点,就是“敏捷流程”,在第六章主要讲了以下内容:敏捷流程及其原则,Backing、Burn-down、Sprint、Scrum方法论,各种软件开发的优缺点,选择软件流程的根据。
现有的做法 |
敏捷的做法 |
流程和工具 |
个人和交流 |
完备的文档 |
可用的软件 |
为合同谈判 |
与客户合作 |
执行原定计划 |
响应变化 |
敏捷开发的原则:
1、 尽早并持续地交付有价值的软件以满足客户的需求
2、 敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势
3、 经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;
4、 业务人员和开发人员在项目开发过程中应该每天共同工作
5、 以有进取心的人为项目核心,充分支持信任他们
6、 无论团队内外,面对面的交流始终是最有效的沟通方式
7、 可用的软件是衡量项目进展的主要指标
8、 敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去
9、 只有不断关注技术和设计,才能越来越敏捷
10、 保持简明——尽可能简化工作量的技艺-极为重要
11、 时时总结如何提高团队效率,并付诸行动
12、 只有能自我管理的团队才能创造优秀的架构、需求和设计
敏捷开发模式提供了一种更加有效的团队开发模式,敏捷开发技术的适用范围
1.项目团队的人数不能太多
2.项目经常发生变更
3.高风险的项目实施
4.开发人员可以参与决策
以及敏捷开发的优劣(此处参考了部分网络资料)
优势:
敏捷确实是项目进入实质开发迭代阶段,用户很快可以看到一个基线架构版的产品。敏捷注重市场快速反应能力,也即具体应对能力,客户前期满意度高。
劣势:
但敏捷注重人员的沟通,忽略文档的重要性,若项目人员流动大太,又给维护带来不少难度,特别项目存在新手比较多时,老员工比较累。
需要项目中存在经验较强的人,要不大项目中容易遇到瓶颈问题。