1.前言
最近公司的一些项目迭代越来越快,从产品产生到发布的时间越来越短,因此我们开始尝试敏捷开发并取得了一点的效果。
在此记录一些敏捷开发的心得。(由于公司比较大,为了说服那些领导,介绍敏捷开发也花了很多时间,如果有相同烦恼的同学可以交流一下意见)
2.概要
敏捷开发是一种以人为核心,迭代,循序渐进的开发方法。而瀑布流强调了开发应有完整的一个周期。
用两张图比较一些瀑布流开发和敏捷开发的特点
(瀑布流开发,即V字开发)
瀑布流在每一个设计开发阶段,都会对应一个测试阶段最大程度把整项目的完整行。
但是这个模式要求有完整的规划,分析,设计,测试以及文件等管理与控制。
敏捷开发主要特点体现在以人为核心的产品迭代上,在产品迭代我们还可以根据客户的要求在下一次迭代中加入适当的功能
3.主题
将敏捷开发思想引入到我们的项目中来时我们主要通过自己项目的特性考虑敏捷开发所有观点是否合适然后选择并加以改进
3.1完整的系统设计(系统架构)是否可以作为一个迭代周期内的设计
这个问题要从多个角度去考虑
1)我们的能力是否可以完成复杂的系统完整设计,同时在实施时能够只需要少量的修改
2)出现技术分歧的时候,我们是否有能力通过讨论判断出更加优化的方案
3)前期的架构设计是否会对后续的开发造成影响
完成一个复杂系统设计,或者开发基本以外包的形式进行时除了第三个问题都无法对上述的问题给出准确的答案,所以我们在前期确认了整体框架和功能标准滞后跳过了详细的设计,一边开发一遍测试的开始执行Scrum迭代开发
3.2 需要进行文档编写吗
需要,而且非常需要。
无论是技术文档还是面向用户的功能文档都是非常需要。
敏捷思想注重人与人的交流而不相信传统的文档因为中丢失了太多的信息,但是从我们公司的情况来看两个文档都需要进行文档编写。
我们公司代码的编写是以外包的形式给别的公司,所以不知道什么时候会选择下一家,而在这个过程中技术文档就是整个交流的核心开发的项目会分配到不同的部门中去,为了减少重复劳动,软件使用文档需要详细的记录下来。