上篇主要讲个人发展,本篇谈谈我对敏捷开发的认识。现在很多新员工一上来就是敏捷开发的方式,形式上是有了,可能理解上还有不到位的地方,希望能对这些人有所收获。最后结合两个段子,解释一下我是如何适应环境的。
1 为什么采用敏捷开发
首先给出一个不言自证的结论:世间的物质都在进化成越来越复杂的东西。项目,团队也是如此。想想你的团队或产品,是否越来越大,越来越复杂。
同时,软件行业有一个很有意思的现象,大项目通常表现平平,小项目小团队往往更容易成功。到底是什么原因导致大项目难以成功呢?《人月神话》中巴比伦塔的例子说明,在人手,时间,资源和技术都不是问题的情况下,一个大项目还是会失败,所欠缺的就是两个方面:交流和交流的结果---组织。
《人月神话》中的焦油坑
软件开发中最大的风险往往不是技术的缺陷,而是缺少沟通。当团队的所有成员多到不能同时坐在一张餐桌旁,交流上的开销问题就开始严重了。用一个形象的比喻,因为左手不知道右手在干什么,所以项目很难顺利开展,而此时单纯的人员增加也无法解决问题,《人月神话》中的焦油坑也很好的解释了这个现象。
胚胎分裂中也遇到了类似的问题,分裂成各个器官和系统,最终形成人体,通过大脑的神经系统,构建了一个管理体系。软件开发也是这种分而治之的思路,我们把大系统中各个小项目之间存在的关系理顺,规范项目之间的接口,这样我们不必关心接口之外的东西。
瀑布式开发采用这种方式来解决交流问题,大问题变成小问题,把一个十分的难题分解是十个一分的问题。但这还是存在两点不足:第一,开销还在,只是变成了整洁的文档和漂亮的图表;第二,随着体系的复杂,系统控制了一切,人也要遵从它。换句话说,我们找到了解决问题的办法,但问题并没有简化,而且每个人的工作很容易变得枯燥,重复,没有成就感,简单说,就是工作不开心。
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
学习是年轻人改变自己的最好方式

