软件开发管理中的博奕论

软件开发管理中的博奕论

吴旻

泰岩网络工作室

 

         软件开发人员大多懂得算法的威力,但无数失败的项目却向我们展示了一个又一个教科书解决不了的困境。不断前进软件的管理方式在力争避免项目失败,其实就是在不遗余力的破解这些困境。今天我们从博奕论的角度重谈这些问题,没准你会觉得从此天高云淡!

 

一、到底谁的BUG:“智猪博奕”,多劳并不多得?

         曾经有过一段时间,我不停地在和几个团队沟通并界定接口出现的BUG是哪一方的责任。限于某些原因,没有哪一个团队愿意主动去找出问题的原因,反而都说自己的没问题。于是问题就被当作皮球踢来踢去了;所有的团队都相信最后会有人忍不住的,至少负责人会出面找人来界定的,所以自己并不急。

“智猪博奕”的故事也是说,如果活只有一个人来干,但好处却是大家分享,那除了强势的群体,其他人还是等着坐享其成的好。博奕论给出的解决方案是修改游戏规则,让坐享其成的人付出一些代价,比如将被证明有问题的团队的绩效的一部分分给真正解决问题的团队,那大家就不会觉得自己没问题了而坐享其成了。

 

二、能人过度流动:信息不对称,“劣币驱逐良币”?

         在实际工作中发现,有些公司的所谓“老员工”都是一些能力比较平庸的人,而就算是有能力强的人进来,也会很快离开。换句话说,能人是很难留下的。这和中国古代铜钱中含铜的比例不宜过高一样,高了就会导致有人盗铸,从而获利。

         另一个更贴切一些的比喻是“二手车市场”。如果你想买二手车,但你又不清楚二手车到底值多少钱,所以你就会觉得价格越低越好;但好的二手车价格不可能太低,于是二手车市场就真的只有差得不行的二手车成交了。

缺少有效斟别机制是这个问题的关键,解决方案也从这里开始。如果买家能确切了解二手车信息,那他就知道该付多少钱,就不存在价格越低越好的怪圈了。同理,如果公司知道能力强的人和平庸的人的差别,并且能给出合理的定位,那一切就都能迎刃而解了!

 

三、没人敢指出错误所在:“多个人的囚徒困境”,事不关已?

         有时候几乎所有的人都知道问题出在哪里,但就是没有人站出来。埋怨这些人都是胆小鬼?错啦,因为人在这个时候是非常理性的:我说了,我指出了,很可能被打击报复,“枪打出头鸟”呀!

“多个人的囚徒困境”是说,个体的理性有时是和群体的理性相反的。尤其是在一个高压氛围的环境中,所有的人都不敢说话,于是大家就只能眼睁睁的看着又一个本可以避免的悲剧发生了。

破解这一难题的一个办法是建立良好的沟通渠道。尤其是从没有过民主氛围的团队,从不许说,到可以说却不会说、乱说,到能说并且会说,有一个相当长的过程。

 

四、面向(需求)变化编程:“信息动态博奕”

软件开发中经常会遇到用户的需求变个没完没了,而且对方还觉得你不够配合,没有把他当成上帝!可事实是,你为了这点钱,已经累得快死了!

这就像我们平时玩“猜拳”一样,如果你要想赢,那你就得知道对方出的是什么。我提出的“面向变化编程”其实就是这个意思。如果我事先知道用户有可能发生哪些变化,并且提前做出适当部署,那问题可就好办多了。破解这一困境的前提是要充分了解需求的来龙去脉,只有你提前预期到用户可能出什么“牌”,你才会从容应对!

 

五、保守的合作者:“进化中的路径依赖”

某航天项目中有若干个合作方,但其中的一方使用的操作系统竟然还是Windows 98!其他合作方对此都是怨声载道,因为无论是从速度,还是稳定性,Windows 98早该被换掉了。可这一方说自己的程序用了10多年了,不想换!于是,为了保证Windows 98的可能故障不发生,别的合作方都不得不做出比标准工作更多的工作来!

我就见过坚持不使用IDE的程序员,理由就是自己习惯了。我觉得这个人把技术当成信仰了,就像回族兄弟姐妹们不吃猪肉一样,那完全不是好不好的问题!

为什么不愿用更合适的东西,为什么老是犯同样的错误,这是我们在工作中经常会遇到的问题。说白了就是习惯了,要想打破这种依赖心理,你必须改变他的路径!要知道,微软就是通过未来不支持XP的方式来推进用户进行操作系统升级的!

 

六、你做的不是我想要的:“信息传递需要成本”

         忙了半天,最痛苦的事情就是人家说:你做得根本不对,不是我想要的!为什么会出现这种情况,我觉得关键还是沟通的原因。事情上,某些时候,沟通的成本如此之高,以至于很难沟通!

         比如说,你去找老总,老总说,我没时间,你看着做吧;比如说,你去找用户,用户说,你先做出来我看看;比如说,你去找合作方,合作方说,我们的产品是有多少多少用户为基础的,从没发生过错误,问题一定是你们引起的!

         怎么样,头大了吧?其实这个也不难,难的只是开头。要知道,简单是因为信任,而信任是因为了解!所以,一定要把信息传递的通道建立起来,这样沟通的成本就会大大降低了!这个属于一次性投资,是要花些成本的,但不会没有回报!

 

         教科书中的博奕论多是讲如何对理性的个体最有利,而软件管理中要的破解困境却是个体“最优”导致的团队“最差”、一方“最有利”导致的团队“高成本”的情况。他山之石,可以攻玉,至少在许多时候,应用以上方法都比用单纯的绩效考核来得方便、实在。

原文地址:https://www.cnblogs.com/hainange/p/6153029.html