如何进一步提高敏捷组织的灵活性和顺畅度?

引言

2015.5.28,携程网宕机,消耗了10几个小时才恢复,每小时的损失高达100万美元。作为随时处于变化之中的互联网公司,发生事故总是难免的,但在这次宕机中对突发事件中响应得不够灵活顺畅,就很难被接受了,据说几位高级总监已经被开掉了。

近年来,不论大型还是初创公司,纷纷引入敏捷软件开发的理念,遍地开花。敏捷在不同的组织中以不同的形态出现,Scrum、看板、甚至精益创业等等,无不围绕快速迭代和改进的研发理念展开。强调需求分拆,时间分拆,进度可视化,利用度量进行改进等实践,来提高组织协作的顺畅度,提高灵活性以满足随时变化的业务需要。老板、销售、产品经理、项目经理、过程改进人员、开发测试人员都能听得懂,然后开始导入,不亦乐乎。

一段时间后,爱思考的管理者就会冒出一些疑问,怎么开了很多会没是觉得配合不顺畅?怎么还是感觉进度不快?质量也没见提高?于是乎,很多人就都会给出分析:比如开站会的姿势不对,比如看板不够漂亮,比如度量手段不完善,比如团队缺乏正能量,等等。总之,都还是强调深化过程改革和意识培养。但现状却是仍然觉得组织协作不够顺畅,以至于对市场事件和业务需求变化不能够及时响应,业务总是觉得一点需求变更就会花很久才能完成,最终客户方的满意度提高缓慢。

刚刚买到一本《如来神掌》,就以为自己真的会功夫了?

Read More

从管理1.0到管理3.0的大跃进。管,或者不管,问题都在那里,不增不减。

前言

王宇王大爷发表的《拥抱管理2.0世界之“看板”:强迫团队的微观管理工具》,以及路宁路大丝的评论《看板是强迫团队的微观管理工具吗?》,感觉槽点太多,忍不住也来说几句。

(一)

管理1.0、2.0、3.0根本不是线性的发展,不在一个维度上。我认为它们是事物复杂性增加后的主动应对,从1.0到2.0,是简单系统的不断叠加后,想要保证叠加的规范性、完整性和可复制性。而从2.0到3.0,则是要解决复杂系统如何决策的问题。这3个阶段甚至可以同时共存,就像人与草履虫在地球上共存,就像繁荣的首都北京周边山区至今还有很多孩子喝不到牛奶。

想到一个故事,说是大跃进期间,村公社要求每家都要上交所有的粮食和牲畜,只有主人公家里私藏了一口大白猪没有上交。某一天,公社在主人公家里开会讨论两个议题,一是《让群众每天吃到红烧肉》,二是《实现共产主义》。书记说现在没有猪,咱们直接讨论第二个议题吧。书记告诉大家,将来大家都不用劳动了,劳动都由机器负责,大家也不用吃肉了,吃营养药丸就行。村民表决一致通过,要在1970年实现共产主义。突然大白猪叫了一声,被发现了。公社书记说,暂停第二个议题,今晚都到公社食堂去讨论第一个议题。大白猪必须马上上缴,因为它耽误了共产主义进程!

Read More

敏捷开发中分解拆分用户故事的几种模式招式

User Story is a lightweight requiement in Agile mode, splitting big specification to fine granularity is helpful to increase flexibility, deliver highest value earlier and feedback earlier to expose risks. Here’s some patterns for splitting user story, also it described the “5C” characteristics and INVEST acronym for good story.

用户故事(User Story)是敏捷开发中流行的需求表达手段,各种敏捷流派中都提倡将大型需求进行化整为零,减少颗粒度,提高灵活性,实现尽早交付价值和揭示风险。本文根据 @申导 多年敏捷实践经验,同时借鉴业内流行做法,整理出一套分解用户故事的模式,分享给大家。并且最后也给出了优秀的用户故事需要满足的5C特征及INVEST原则。

Read More

理解unicode和utf8字符编码

本文以python语言为例,解答下面几个问题:理解unicode的统一性,unicode与utf8和ASCII到底是什么关系?又如何在实践中用好字符编解码呢?

令人头疼的字符编解码乱象

由于历史原因,中文字符编码标准众多,特别是在Windows操作系统上,GBK,GB2312,UTF8等等,各不相同,还记得各种场合出现的乱码吗?而在Mac系统上,由于完全统一用UTF8编码,所以编程人员在开发调试时就不大会因为编码操心。然而,一旦涉及到与第三方系统对接,还是不免会遇到编解码的问题,不论这种多系统集成的模式叫做SOA或者MicroService也好,每个系统都有自己的接口定义,即使是用SOAP协议夜还会有不同版本,更不用说各种自定义的基于XML或JSON的准Restful协议了。
总之,不同操作系统,不同的第三方系统,带来了不同字符编解码复杂局面。

Read More

Scrum Master 技能模型

Scrum Master的定义是这样说的:团队的仆人式领导者,帮助团队排除障碍,仅有的权力是针对Scrum过程的。

从实践中看,SM其实就是组织的敏捷教练,是组织变革的代言人,需要对交付以及长期的转变之间进行平衡。很多人想了解SM的进阶技能,来进一步提升。

从领域上来说,SM要了解技术、业务、组织结构的领域知识。而从技能上来说,要掌握以下几个部分:

  • Training
  • Mentoring
  • Facilitating
  • Coaching

解决在iOS App中集成支付宝时遇到的RSA密钥签名问题

最近在自己的iOS native App中集成支付宝功能,发现有即时到帐、手机网页、快捷支付,之间的区别说的不够清楚,接口及参数定义更是各不相同。对于Native App来说,选择快捷支付(wap)就对了。

说起集成文档及Demo,发现文档质量比起五年前没啥进步,一如既往的不知所云,甚至缺少某些关键步骤。而且Demo中的代码一直强调此代码不完全能直接使用,可是我想说,开发者看demo的意义就在于能够快速的解决问题,最好能一键集成,SDK的集成度可以做得更好。可是无论文档和代码都缺少版本控制,二者之间存在大量不一致现象,更不用说出错后的信息让人难以跟踪,跟当年Windows的出错信息有得一拼。

下面说说集成快捷支付中遇到的一些关键环节,特别是RSA加密的问题,因为快捷支付只支持RSA,不支持MD5方式。

Read More

将新浪微博 WeiboSDK 桥接集成到用Swift语言编写的iOS App

昨日女神高圆圆嫁到了台湾去,各位屌丝粉丝哭晕在厕所。别说,昨夜还真梦到了女神。于是今日发奋图强,继续进行编程工作–集成微博SDK到我的Swift程序中,用于微博授权登录。

前年曾经做过一次集成,那时还是ObjectiveC语言的天下,而今日Swift语言已成大势所趋。
由于iOS SDK是用ObjectiveC写成,在Swift中要用到语言桥接。

由于文档与代码脱节,自己摸索半天,还是遇到很多坑。特别是链接期直接抛异常出来,比如'NSInvalidArgumentException', reason: '-[__NSDictionaryM weibosdk_WBSDKJSONString]: unrecognized selector sent to instance,多是找不到链接库导致。

完整解决方案:

Read More

银行中的跨国研发团队如何快速交付

在互联网大潮中,金融企业也越来越多地直面互联网金融的冲击。传统的产品设计和发布周期显然已经跟不上当下快速发展的消费市场。无论中资还是外资各大银行,都已经纷纷上马移动金融产品,并且开始采用敏捷开发的模式,以达到快速发布,灵活调整的目的。
本案例向大家分享某银行的跨国研发团队是如何达到快速交付移动金融产品的。

一、引言

该银行组建了单独的团队来研发新一代的手机银行产品,团队主要分布在中国和新加坡,在马来西亚和印度也有部分人员。手机银行的业务逻辑和关联系统基于原有的网上银行产品,但用户体验及页面设计都要另起炉灶,试图对不同国家的业务提供统一的用户体验。

对于一个全新招聘的跨国团队,采用大家没用过的敏捷方法来研发一款创新的手机银行产品,这个“三新”项目看起来就是一个不可能完成的挑战。

Read More

Coding Kata-网球计分 tennis

Coding Kata是一种编程练习方式,针对某个题目反复进行操练,达到熟能生巧的目的。
一般会通过TDD的方式进行。

这里是一个用Java来编写的网球计分程序,题目详见http://codingdojo.org/cgi-bin/index.pl?KataTennis

用到的工具:Mac上QuickTime、IntelliJ、iTunes

国内有一个kata接力活动,鼓励大家把自己的操练录制视频发出来共享和交流。

更多操练题目: