中期总结

          网络上说:写软件开发文档是一件很痛苦的事情,所以越来越多的人因为这点去使用敏捷开发。在此,我们借用了一下百度百科的定义。简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 下面,我们结合敏捷开发的几点以及我们团队在开发研究生管理系统的过程中的一点感受。

1. 架构师的重要性 

首先,敏捷开发对于个人能力的要求是十分高的,尤其是领导人的能力。领导者及架构师是个举足轻重的角色,需要有深厚的行业背景、创新能力,以及架构能力。一个好的架构师,必须能考虑到产品当前使用模块,产品可以继续发展的模块以及下一代产品的方向。只有考虑到这三种模块和特性,这样的产品才能保持长期的生命力。敏捷开发也强调拥抱市场变化,这对产品架构师提出了很高的要求——深厚的业务背景、创新能力、技术洞察力和架构思想。  在开发GSM项目过程中,我们团队决定了用ssh的框架。我们团队的人员整体来说对ssh的框架并不熟悉,但是有的组员对ssh框架有所了解。所以架构师的职责只能由这些组员担任了。

2. 不断加强自己的技能 

敏捷开发对于个人适应变化的能力要求非常高,所以对于普通员工来说,就必须不断加强自己的技能。不断的关注优秀的技能和好的设计会增强敏捷能力,很多原则、模式和实践也可以增强敏捷开发能力。 在开发过程中,我们团队的实际情况决定了,我们要不断在发现问题、查找资料、实验、应用等的环节中曲折前进。我们不能很详细地了解这些技术,但在开发过程中却要时常的用到这些技术。对于我们来说,我们只有在需要的时候不断地加强自己的技能,以便项目的顺利发展。

3. 结对编程 

结对编程,简而言之,就是两个人同时坐在同一个电脑面前,一个人编程,另外一个人检查并给予一定的帮助,过一段时间可以交换工作。很多公司不愿意使用结对编程,因为这样得额外支付一倍工资。但是,结对编程也有它的优点。在工作效率上说,两个人同时工作就避免了单独工作时出现的没事上QQ聊天和浏览休闲网站的情况,这样会提高工作效率,结对编程一天的产出不一定小于两个人分别工作时的工作量。而且结对编程因为有另外一人的检查,出错率会大大降低。众所周知,错误发现的越早,系统维护起来所需要的代价越小。而且在我理解,这样还可以增加同事间的友谊,在工作其他方面会有意想不到的好处。 关于结对编程,在实际的开发中,我们是这样的:我们是由一个在某个技术层面上比较熟悉组员搭配一个在这个技术上并不熟悉的组员。技术不熟悉的组员主要是在另一个组员的指导下进行编程。这样的话,我们觉得可以相互提高各自在某个方面的短板。

4. 面对面交流 

在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。在十几或者二十几个人组成的大团队中,文档是一种比较合适的传递知识和交流的途径。而敏捷团队一般不会很多人(大团队实施敏捷时也会分成多个小的敏捷团队),所以大量的文档交流其实并不是很经济的做法。此时面对面的交谈反而更快速有效。我们团队倾向于面对面的交流,或者直接在电脑上演示出各自的问题。我们认为这样更具有效率。

5. 经常性的交付软件 

经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。只要我们可以保证交付的软件可以很好的工作,那么交付时间越短,我们和客户协作就越紧密,对产品质量就更有益。虽然我们多次迭代,但并不是每次迭代的结果都需要交付给用户,敏捷开发的目标是让他们可以交付。这意味着开发小组在每次迭代中都会增加一些功能,增加的每个功能都是经过编码、测试,达到了可发布的质量标准的。 交付软件方面,主要是每周上课的时候,我们都会尽量交付出一些我们认为有价值的一些成果。

原文地址:https://www.cnblogs.com/jason-wyf/p/5480650.html