敏捷开发

    最近很多人一直提敏捷开发!我就想这是什么玩意,真的有那么好吗?我做开发四五年了,我们用的又是什么开发呢?

    首先,既然有敏捷开发(这是一种思想,一种理念),那么应该是不是还有其他的开发思想呢?自然的我就查了下百度和google.

但是始终没有找到标准的答案,只查到了以下几种:


极限编程(eXtreme Programming,简称XP):关注的是参与开发的人,以及提交物的质量,强调沟通、协作,主张拥抱
变化。


测试驱动开发:它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动
整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

Scrum:是一种迭代式增量软件开发过程,通常用于敏捷软件开发。


RUP(我们公司好像用到就是这个东西)(“工程化”软件开发管理思想):希望稳定需求,通过关注过程而保证结果.一般有严
格的开发文档,代码规范,代码升级等等一系列的东东!————通常会使项目管理者很有成就感

其次,敏捷开发是什么东东?(敏捷之于游戏开发)
百度百科(http://baike.baidu.com/view/309926.htm)里说了一大堆,还是一头雾水.不知道我理解的对不对?
    1)把大项目切割成一个个相互联系的子项目,并分别完成任务.如果有条件的话,可以设置多个开发小组,
为每个开发小组分配一个子项目,然后每个小组再细分每个模块给程序员(我们公司对数据层的访问,使用接口式编程(通
过url访问,得到json数据),每个组只要开发和维护自己的接口)。下面是一张概念的简图

敏捷开发


    2)对文档的要求不是很高,如果非要文档,只需简单的uml模型,能让自己和别的程序员看懂就OK!
3)更注重版本,更注重交流,更注重结果,而不是流程!
4)包括迭代增量的开发方法!所谓的迭代即系统化的返工.迭代的目的是为了应付需求的变化。
我们经常提到Scrum(英音:['skrʌm)]),经常用于敏捷软件开发.

迭代开发

   再次,我们怎样实施敏捷开发呢?这个没有标准,视情况而定!

   1)人员调度.
   结对编程
(最好男女搭配,呵呵):XP就提倡两个人一起写同一段程序(PairProgramming),
而且代码所有权是归于整个开发队伍 (CollectiveCodeOwnership)。程序员在写程序和重整
优化程序的时候,都要严格遵守编程规范。任何人都可以修改其他人写的程序,修 改后要确定新
程序能通过单元测试。好处是,一个人编写代码时另一个人在思考。思考者的头脑中保持总体概念,
不仅手头问题的这一段,而且还有XP指导方针。例如,如果两个人都在工作,就不太可能会有其中
一个说“我不想首先写测试”而离开。如果编码者遇到障碍,他们就交换位置。如果两个人都遇到障
碍,他们的讨论可能被在这个区域工作的其他人听 到,可能给出帮助。这种结对方式,使事情顺畅、
有章可循。也许更重要的是,他能使程序设计更具有社交性和娱乐性。
快慢配.
2)每日立会,报告一天的工作进度以及明日的安排!有问题的地方,大家共同讨论解决方案以及今日的
    心得体会!一般较简短,设置时间为15分钟左右!
3)进度跟踪:可以使用office project进行进度跟踪!
4)代码审查

最后,不断的学习和调整是敏捷开发的核心思想。

总结,我觉得在敏捷开发中重点就是xp,这篇文章比较能说明问题。
http://baike.baidu.com/view/259207.htm?func=retitle


对敏捷开发,我脑子里一直很模糊,写这篇文章的原因是希望能够得到大家的意见,让敏捷开发在我脑子中有个
大致的轮廓!








原文地址:https://www.cnblogs.com/baochuan/p/2340460.html