敏捷实践系列(一)

开篇:

悟空:师傅,为什么你写东西,喜欢写系列呢?

师傅:因为很多东西需要长期的实践呀。

悟空:怎么又开始说敏捷了

师傅:就像一本好书,常读常新,人生不同阶段过的都是不同的人生呀。

悟空:师傅,为什么你原来用上、中、下呢?

师傅:因为原来只写了个上中,别人一直问下,现在如果只写一二,别人要问,我就说写完了呀!

悟空:。。。。。。

敏捷是什么?

其实别人问敏捷是什么?几年前我觉得很好回答,但是现在我觉得很难回答,就像你问天龙八部里的扫地僧:“功夫是什么?” 我觉得他可能真的会被问住的。你再问:功夫是“降龙十八掌”?, 是“九阴真经”?,是“一阳指”?他可能说不是,但是待会儿他可能会说:“也算”。

所以很多人问我什么是敏捷,我其实很难定义,用了SCRUM算吗?用了Kanban算吗?用了Target Process,Trello算吗?我也只能说:“也算,也不算”。

还有人觉得用了持续集成,用了测试驱动开发,用了结对这个应该算是敏捷了吧? 我只能说如果你用了“轩辕剑”,“倚天剑”,“屠龙刀”,”莫问剑”,”游龙剑”,你就是高手吗?君不见,扫地僧一把扫帚就制服两大高手? 由此我们可以看到功夫要好,更重要的是内功,是心法。

敏捷的心法是什么?

这个心法其实就是武林高手总结的敏捷宣言

个体和交互 胜过 过程和工具

可以工作的软件 胜过 面面俱到的文档

客户合作 胜过 合同谈判

响应变化 胜过 遵循计划

这个其实就是:“九阴真经”,“易筋经”,“六脉神剑”,“葵花宝典”(正宗的是不需要自宫的)

知道了心法,其实每个人的修炼方法都不一样,但是前人为了后人节省时间,给出了自己修炼的一些经验和原则,那就是十二条原则。

  1. 最优先的目标是通过尽早地、持续地交付有价值的软件来满足客户欢迎需求变化,甚至在开发后期。
  2. 敏捷过程控制、利用变化帮助客户取得竞争优势
  3. 频繁交付可用的软件,间隔从两周到两个月,偏爱更短的时间尺度
  4. 在整个项目中业务人员和开发人员必须每天在一起工作
  5. 以积极主动的员工为核心建立项目,给予他们所需的环境和支持,信任他们能够完成工作
  6. 在开发团队内外传递信息最有效率和效果的方法是面对面的交流
  7. 可用的软件是进展的主要度量指标
  8. 敏捷过程提倡可持续发展。发起人、开发者和用户应始终保持稳定的步调
  9. 持续关注技术上的精益求精和良好的设计以增强敏捷性
  10. 简化——使必要的工作最小化的艺术——是关键
  11. 最好的架构、需求和设计产生于自我组织的团队
  12. 团队定期地对运作如何更加有效进行反思,并相应地调整、校正自己的行为

注意:上面我说的是这是前人根据自己修炼的过程总结出来的经验,那么也就是说只是经验,100%可以拿来自己用?那就不一定。

比如有一条原则说:情人节一定要给老婆买花?那么问题来了,没老婆怎么办? 当然是先找个老婆。总不能买花送给别人老婆吧。

比如,上面有一条:“在整个项目中业务人员和开发人员必须每天在一起工作”, 很多时候很难,那么怎么办?第一创造条件能让业务和开发人员每天在一起工作,这个一起不一定是坐在一起,可以每天及时回复你的邮件,也可以你自己就当业务人员,那么你自己不就是每天和自己在一起?

怎么样才算敏捷了?

尽管公司实行敏捷也很多年了,这个问题,我想说我不知道怎么回答,因为我们也还在努力变得更敏捷,但是我理想中的敏捷,应该是这样子的:“草在发它的牙,风在摇它的叶,小鸟在唱他的歌,而敏捷团队的Leader静静的座在那里一句话也不用说”,此时敏捷就像空气一样充满了整个房间,知道有一天PM高了,这个时候大家说:“哎呦,最近是不是不敏捷了?”

怎么开始敏捷呢?

重要的事情说三遍:

读书,实践!

读书,实践!

读书,实践!

上文我提到了敏捷的心法,但是我想除了心法之外,更重要的是敏捷的意识。

为什么意识更重要?

意识:辩证唯物主义的解释是,意识是物质运动变化的场所,意识是人脑对大脑内外表象的觉察,即它可以辨识自己脑区中的表象是来自于外部感官的还是来自于想像或回忆的。

我们这里说的意识,一是你能主管的去想一件事情,另一个就是你对一件事情的发自内心的认可程度。

敏捷,光有心法是没有用的,有没有要敏捷的意识,敏捷的意愿。有没有主观的愿望去做,我们经常说的话:没有成不成,就是看你想不想做。

欲推敏捷,首先要培养敏捷的意识

我举两个例子:

一个是最近推行“无车日”, 无车日本来是想让大家绿色出行,减少二氧化碳的排放,但是结果是什么,结果是堵的一塌糊涂。 为什么?据说原因如下:有车的人想,本来平时不开车,但是今天无车日,路上车少,那我就开车肯定不赌。这样造成的结果是,坐公交的人觉得无车日大家都挤公交,开车的人觉得今天无车日开车应该不赌,所以开车。造成的结果是,公交也堵,开车也堵。这就是政府和民众对环保的意识不够,如果政府意识够了,那么政府是不是多提供公共交通的数量,以及提高公共交通的便捷以及服务?如果民众意识够了,那么我是不是可以走着去上班?我是不是可以骑自行车?我是不是可以跑步?若能如此,无车日才有了真正的意义。

另一个例子,就是我看到的道路旁边的自行车道栅栏,政府甚至花了不少钱来弄这个,但是效果呢? 我看到的情况是很多地方没人用,甚至造成地段的拥堵。为什么? 有些地方自行车道里面有面包车在里面堵着,还有的地方有人逆向骑过来,试想,如果你骑自行车有这样的经历,你还会骑自行车道吗?骑到中间你飞出来? 如果这个自行车道没人用,那么另一个问题又来,本来3车道,现在一个车道停车,一个车道过车,原来没有自行车道时,如果前面的车临时停车,其他的人还能利用空的地方错开车,现在就能硬等,这样岂不是更堵?结果就是,本来就赌的路,硬硬的把路切一块空着浪费了!

从上面的两个例子,我们都能感觉到,都是为了要把事情做好,但是,就是意识层面没做好工作,才导致截然相反的结果。(以上只是我自己片面的感觉,真正的事实数据请看官方数据)。

如何培养敏捷的意识?

首先,我觉得培养敏捷的意识之前,首先要知道是什么事敏捷的意识,我觉得敏捷的意识就是:

高质、高效的做事情

持续的学习

团队精神,Good team player.

责任心

关心客户的价值

解决问题

努力改变现状,不抱怨现状。

其次,那么如何培养敏捷的意识呢?我个人觉得两种方式:

  1. 招聘具有敏捷意识的人。 其实我列的敏捷的意识和大家想象的SCRUM那些无关的。
  2. 培养已有的人具有上面提到的敏捷的意识,方法比如说是宣传、强调、加薪、惩罚等等各种方法,关键是推行的人自己有没有这个意识来推行敏捷。

最后,最重要的是要让大家知道为什么要敏捷,敏捷解决的问题是什么?敏捷对工程师自己的好处是什么?因为只有人敏捷了,项目才能敏捷,所有的项目都敏捷了,公司才能说是一个敏捷的公司。若如此,强行推行一个SCRUM框架,持续交付等等,就必然走向文章开头的那两个例子,结果只能是适得其反。

愿君更饮一杯酒,敏捷路上无故人。

且行、且思、切记!

相关内容:

我们如何从领域驱动开发当中获益–王德水

领域驱动设计,遇见你之前 我们公司推行和实践敏捷已经很多年了,SCRUM已经成功应用于大部分项目,得益与业界敏捷开发大师以及国内很多优秀工程师的分享和宣传,我们使用了很多优秀的软件开发实践,比如测试驱动开发(TDD),行为驱动开发(BDD), 持续集成(CI)等等为我们带来了很多收益。由于我们公司以……

IOT 研究 技术趋势 洞见与思考 观察与技术趋势 软件开发 96 阅读

如何选择靠谱的软件外包公司

在信息化建设中,随着IT与业务进一步融合, IT成为推动业务转型、管理变革的重要力量。很多企业在10几年前购买的软件产品,已经无法适应日益变化的业务需求,需要根据企业自身业务模式进行定制化开发,以助力企业发展及业务转型。 传统企业通常没有专业的软件开发团队,组建IT团队的成本比较高,后续IT人才维护……

观察与技术趋势 软件开发 85 阅读

Mind Matter项目分享——设计不仅仅是设计

Mind Matter软件旨在促进企业的战略发展,并帮助推动战略的实践。其核心业务是开发下一代战略软件和服务。与各种类型和规模的企业组织合作,共同定义、设计和执行战略。 目前开发的软件作为一款简单精巧的协助工具,帮助用户定义、设计、讨论、决策和交付发展战略。 Mind Matter项目自2017年9……

技术趋势 观察与技术趋势 80 阅读

远程办公:谈谈我遇到的挑战与机遇

每每与身边朋友说起我在家上班,他们都会投来羡慕的目光,外加两个字:“真爽”。而我,只能无奈地回应:“其实也就那样了,并没有多爽。”这是心里话,但是他们只会觉得我矫情,得了便宜还卖乖,我也只能呵呵苦笑了。
我承认他们部分正确,是有点身在福中不知福,这也是人的天性吧,永远不满足。但是,我之所以如此笃定地说,在家办公没有那么舒坦,是因为这两年的远程办公经验让我明白,这种看似“爽”的工作方式,其实暗含着许多挑战,对远程工作者也提出了更高的要求。

敏捷实践 洞见与思考 软件开发 远程办公 100 阅读

引导客户不是靠话术 而是全然的负责

近期我们接了一个在线教育的客户,他们业务发展很快,旧有的系统虽然比较稳定但已经不能适应业务发展的需求,因此找到我们。充分了解需求之后,我们判断客户提出的任务不现实,在规定时间内完不成,既定目标不可行。于是我们将需求拆分,将功能实现的顺序重新安排:哪些在3个月内可以完成,哪些不行,同时接手客户的运维。

敏捷实践 观察与技术趋势 软件开发 远程办公 82 阅读

跟客户面对面确认需求是一种什么样的体验?

Matthew是个澳洲客户,前期有过很长时间的沟通和推进,我们对业务和项目需求目标大概了解了。但是针对第一个要发布的版本,要做成具体什么样的产品还是两眼一抹黑。故此,客户来我们办公室两周,专门讨论具体细节。期望经过两周的密集讨论,我们能有若干产出: 想想都挺多事情的。当然,理想都是很丰满的……过程不……

观察与技术趋势 软件开发 77 阅读

善用工具——成就高效沟通协作的团队

《敏捷软件开发宣言》  我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观: 个体和互动 高于 流程和工具  工作的软件 高于 详尽的文档  客户合作 高于 合同谈判  响应变化 高于 遵循计划 也就是说,尽管右项有其价……

敏捷实践 观察与技术趋势 软件开发 86 阅读

我的ODC项目经验分享

项目介绍:客户公司旨在为病人提供更加优质低价的治疗方案。其主系统联合病人、医师和医保公司,根据病人的病症、体检数据、过敏情况、生活习惯和过往服药方案等信息,结合其内部一套引擎工具,检查用药过程中的问题(Drug Therapy Problem)并提出给药建议。 在三年的合作过程中,我们不断丰富其主系……

观察与技术趋势 软件开发 95 阅读

敏捷实践系列(三):代码管理流程

我们已经从SVN切换到Git很多年了,现在几乎所有的项目都在使用Github管理。对于那些还在坚持使用SVN的,我实在想不出原因,权且称作守旧派吧。 Git的优点 Git的优点很多,但是这里只列出我认为非常突出的几点。 感兴趣的,可以去看一下Git本身的设计,内在的架构体现了很多的优势,不愧是出资天……

敏捷实践 观察与技术趋势 软件开发 82 阅读

敏捷实践系列(二)

大话西游里有一段因为没有沟通的经典, 结局如何大家都知道。 唐僧:你想要啊?悟空,你要是想要的话你就说话嘛,你不说我怎么知道你想要呢,虽然你很有诚意地看着我,可是你还是要跟我说你想要的。你真的想要吗?那你就拿去吧!你不是真的想要吧?难道你真的想要吗?…… 悟空:… 一. 敏捷项目沟通尤其重要 敏捷开……

敏捷实践 观察与技术趋势 软件开发 68 阅读