敏捷实践系列(一)

开篇:

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

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

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

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

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

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

悟空:。。。。。。

敏捷是什么?

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

所以很多人问我什么是敏捷,我其实很难定义,用了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)等等为我们带来了很多收益。由于我们公司以……

技术博客 技术趋势 敏捷实践 1027 阅读

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

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

技术博客 敏捷实践 943 阅读

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

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

技术博客 敏捷实践 1027 阅读

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

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

技术博客 敏捷实践 820 阅读

敏捷实践系列(二)

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

技术博客 敏捷实践 733 阅读

走近领域驱动设计(二)

上一篇讲了事件,以及为什么要使用事件,主要是为了解耦,但是有同学就问了,同步如果订阅事件的人太多,比如13亿人都关心上头条的事,那么RaiseEvent得等13亿人都处理完,那得多久呀,从此再也不敢发事件了。 事件驱动之异步事件 举个例子,你在网上下单,下完单要通知库房,甚至要通知供应商补货,如果都……

技术博客 技术趋势 365 阅读

走近领域驱动设计(一)

从我做过的项目来看,似乎欧洲已经有很多的公司开始实施领域驱动设计了,而我本人了解领域驱动设计也有些时间了。但是网上不管是文章还是代码,都显得太过高大上,一谈领域驱动设计,一大堆的概念一股脑的给你上上来,搞的有点晕头转向,而我想在一些中小项目中实施领域驱动也遇到了不小的障碍,大家对很多新的东西总是处于……

技术博客 技术趋势 743 阅读

我从项目实践中看到的ODC演变

几年以前,我曾经很关注国外的招聘价格,刚毕业的新人月薪可以低到1,500美元,而普通项目经理价格又可以达到10,000美元以上,项目中技术骨干则要高出更多。而在当时我们的ODC小时报价达到30美元(月报价约4,800美元)的已经是很厉害的程序员了。 假设国外市场更成熟稳定,为什么这几个角色价格差要远……

技术博客 技术趋势 敏捷实践 1461 阅读

Elasticsearch – 让你的搜索飞起来

接触Elasticsearch是两年前因为项目的需要。客户位于西雅图,对于新技术有着敏锐的洞察力,正好项目需要实现搜索功能,客户就想尝试采用Elasticsearch来实现整个网站的检索功能,然后就被迫去学习了一下。一开始我是排斥的,但还是忍不住想看一下为什么客户要推荐它。随着深入的使用,Duang~~,才发现这货果然是个神器,只需要轻轻松松的简单配置一下,就可以让你的程序的搜索功能插上翅膀,带着用户在你的应用里翱翔。

技术博客 技术趋势 604 阅读