这是敏捷开发与中医理论系列的第一篇。。

最近一个世交的中医朋友到梁冬的正安药坊上班,也去实地参观了一下。因为之前的一些经历和最近的几天的交流,一点点悟到一些中医理论与软件研发管理的共同之处,写在这里成一系列。这里的很多内容来自于与这位朋友沟通所得,并与之前更早听《冬吴相对论》的思考成果。

内容将涉及中国文化与研发管理方法,团队的自组织管理,师徒制度/技能教育等内容。

千年古籍

这位朋友很精湛的一个解释是:为何西医教材每年都在变化,而中医却经常使用《黄帝内经》、《伤寒杂病论》这些千年古籍?到底是什么导致教材千年不变但依然有效?

原来西医基于对外界变化的认知,比如发现了细菌,就有了抗生素;发现了病毒,就有了疫苗;发明了人工心脏,就可以做植入心脏。西医的研究对象是外界。

而中医则聚焦于人本身,就是人的经络,阴阳,五行等,听起来很玄乎,实际上是对人体免疫系统工作原理的一种“近似的”甚至可以称为“错误”的但确是自洽的解释。由于2000年来人体并没有发生明显的进化,因此中医的理论也没有明显的变化。(这位朋友并不认为不变化是完全正确的,但也认为“研究人本身”从思想上说是正确的)

不过,这个和研发管理关系何在?

文化及社会对生产关系的影响

世界上的“资本主义”分为3个流派,一个是英美注重自由竞争、重公司轻员工的央格鲁萨克逊资本主义,一个是北欧注重福利、重员工轻公司的莱茵资本主义,一个则是我们的近邻日本注重“仁”与大家庭观念的儒教资本主义。

欧美资本主义发展迅速,很大程度上得益于“新教伦理”,即基督教中关于工作即修行的信念。这一信念在产生了诸如“为何极其富有的企业主仍然努力工作”“为何盖茨会捐献几乎全部家产”“为何50%的美国前100富翁会响应盖茨的捐献50%的号召”“为何西方罕见富二代”“为何巴菲特从刚起步到拥有百亿美元一直开一辆旧车(注意他不是成名后买辆旧车装简朴)”。因此注重世俗享乐的西/葡/意等国纷纷衰落,而新教国家将资本主义发扬光大。

但日本很奇特,其文化中也有工作即修行的概念(如果大家看过《入殓师》),但产生的资本主义形态却截然不同,比如“终身雇佣制”“年工序列”等等,与西方资本主义相差很大。

但是简单的理解可以解释其产生过程:日本人有1000多年的儒教历史,而日本企业至今只有100多年的资本主义历史,因此当两者相遇,作为新生生产关系的客体“资本主义”,就必须要受到存在已久的主体“人(及其社会)”的影响而发生变形。

研发管理建设中存在的问题

但是在研发管理中却经常忽视这种现象,一个公司可能上个月还在用CMMI管理,下个月就决定改为敏捷开发。而且,CMMI是原汁原味的CMMI(因为要做认证),敏捷开发是原汁原味的敏捷开发(因为不想做成“Scrum But”)。可是被管理的主体——人呢?他们并没有在这短短的两个月里边发生什么实质性的变化,一个本来连每天的计划变更都要审批还要被PPQA严格审计的受控团队,转眼变成一个居然可以自己估算和领取任务的自组织团队,不可不谓一个相当疯狂的举动。

敏捷中本来有以人为本的概念,但个人感觉并非是指选择管理方法要以人为本,而是指任何管理方法,都应该以发挥个体的能力为最主要的目标。这个目标很好也很实际,但和本文讨论的以人为本不是一个概念。

本文中的以人为本的概念是:“无论使用哪种研发管理方法,都要以被管理的人为本,进行相应的调整,才能发挥个体的能力。

比如中国人文化上内敛含蓄,比较不容易“对估算结果进行挑战”,那么就利用估算扑克中的匿名性,引发估算讨论(老外比中国人用扑克反而多,因为国内对此方法多不了解);又比如中国人文化上有“人之患在好为人师”的说法,因此就应该指定师傅徒弟,来取代自发的互助行动(估算中的和每日立会中的);再如中国人文化多内敛,不愿意干涉别人的代码也不愿意被干涉,就适合使用松结对编程建立有限的以师傅帮助徒弟为目的的“干涉”(不解对不好,天天结对也不好);载入中国文化人多喜欢被动指令,就可以保留项目经理的指派制度;等等。

开始变革

不知道日本18XX年有没有报纸,但是显然并没有一场社会运动来讨论资本主义如何适应日本文化,等出现结果了,然后大家才能开工办厂。相反地,工厂一个一个建立起来,人们在日常的活动中不断问题驱动地持续改进、精益求精地消除浪费(是所谓“精益生产”),最终形成了其特有的生产方式,甚至超越了欧美原来的生产方式。

现在中国也处于大国崛起的状态,本人并不提倡真的上升到国学/儒学/佛学的高度来看研发管理甚至敏捷开发,这很不现实。但是笔者提倡在日常工作中,适时地发现那些与群体性格(可以算是文化的缩影)相悖的实践,并加以变革。

变革不能是生硬的,而是要遵循适当的步骤。操作层面的步骤可以大致归纳如下:

1. 理解“相悖”的原因。

这个原因不能马虎地找到一个就算,而是要真切到你感觉“如果是我,我也会……的”的程度。

比如如果团队成员都很反对别人看自己的代码,就要找真正原因。一个人对公司代码的最大权利,也不过是在注释里边签上自己的名字(其实,在编译的时候就给忽略了别指望发布后还能找到),有什么可保密的呢?仔细思考可能我们才发现:“原来公司是考核大家的编程质量的,而这些代码里边隐藏这很多测不出来但一看就知道是坏代码的东西”,如果一个人看了我的代码说:“这些代码真烂”而项目经理果然过来看了以后说:“的确如此,你别编新功能了(这会影响我的生产率绩效),先把代码重构一下吧”然后他转身离去……如果是我,我也会反对别人看我的代码的。

2. 理解这一实践的必要性和前后生态

既然连自己都不想做的事情,是不是不做算了?不行。在敏捷开发生态系统系列之二中曾经提到,为了能让团队“跨职能”/“共同估算”/“共同跟进”,看别人的代码肯定是难免的,那怎么办?

3. 在平衡文化和生态系统中解决问题

如果一个人看了我的代码,而我也不会被考核为差,反而这个人还会帮助我改好代码(甚至提前预防写出烂代码),岂不美哉?估计没有人会拒绝这种看代码。

可是谁这么大公无私呢?只有一个能从中得利的人才会如此——比如我的师傅。他能力强经验多,管理着一群小组,而小组的生产力都算在他的头上,因此他的工资也比我多,但是为了让我能干更多活,他得帮助我,其中一种方法就是看代码——这就是我们在敏捷开发松结对编程系列中提到的代码审查。

所以师傅会帮助改好代码;因为“改好”代码太费时间,他还会选择前关键点来提前防止代码变坏;又因为每次都来指导很麻烦,他会尝试指导徒弟在工作中学习,提高水平。

师徒制度其实是中国文化由来已久的一种生产关系,我刚分配到研究所的时候就被指派了一位师傅。在多数企业中都被忽略了,另外一些企业则西化为mentor制度(还是师徒制度)。在“古法教学”一文中,还有详述额外的问题,比如“饿死师傅”。

读者可以试着用三部曲分析这个问题:在无人认领任务的团队中,如何“指派”任务,而又不破坏自组织团队?

如果您愿意,可以在回复中作答,我也会说一说我对这件事情的认识。

转载于:https://blog.51cto.com/cheny/1100193

敏捷开发与中医理论系列之一:序言及为何中医教材都是千年古籍相关推荐

  1. 敏捷开发与中医理论系列之二:古法教学(软件教育,松结对编程,师徒制度)

    这是敏捷开发与中医理论系列的第二篇.(之一,之二) 由来 中国古代的很多技术或艺术,都是没有学校教授的,譬如中医,戏曲,民间艺术,食品,酿酒--但却不乏流传千古的名家和作品,唯一问题就是流传缓慢,传内 ...

  2. 敏捷开发与中医理论系列之二:古法教学(软件教育,松结对编程,师徒制度)...

    由来 中国古代的很多技术或艺术,都是没有学校教授的,譬如中医,戏曲,民间艺术,食品,酿酒--但却不乏流传千古的名家和作品,唯一问题就是流传缓慢,传内不传外,传男不传女--.现在终于有了大学,流传速度应 ...

  3. 敏捷开发“松结对编程”系列之七:问题集之一

    本文是"松结对编程"系列的第七篇.(之一,之二,之三,之四,之五,之六,之七,之八) 刚刚参加完MPD 2011深圳站,在演讲中间及后来媒体采访,被问到了一些问题,也给出了答案,这 ...

  4. 敏捷开发“松结对编程”系列之八:微软 Tech ed2011 自组织团队与松结对编程讲稿(敏捷开发)...

    本文是"松结对编程"系列的第八篇.(之一,之二,之三,之四,之五,之六,之七,之八) 好像微软自己也有一个无纸下载处,但是手册不在身边没搜到,这里补充一个下载链接. 无需积分,但需 ...

  5. 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)

    本文是"松结对编程"系列的第十一篇.(松结对编程栏目目录) 上一篇中提到的技术方法都不太难,但问题是为什么很多团队做不到呢?问题在于: 高手可以每次都写出可复用的代码,从而大大地降 ...

  6. 敏捷开发“松结对编程”系列之十二:L型代码结构(质量篇之一)

    本文是"松结对编程"系列的第十二篇.(松结对编程栏目目录) 有没有一种管理方法,无需额外的测试活动,就能大幅度提高产品质量?L型代码结构就是其中一种候选方案. 缺陷的来源 要减少缺 ...

  7. 敏捷开发“松结对编程”系列之八:微软 Tech ed2011 自组织团队与松结对编程讲稿(敏捷开发)

    本文是"松结对编程"系列的第八篇.(之一,之二,之三,之四,之五,之六,之七,之八,此系列之九及之后文章请见栏目总目录.) 好像微软自己也有一个无纸下载处,但是手册不在身边没搜到, ...

  8. 敏捷开发“松结对编程”系列之十五:L型代码结构(编程篇之一)

    本文是"松结对编程"系列的第十五篇.(松结对编程栏目目录) 之前的L型代码结构的前三篇提到过,L型代码结构的微观计划和估算过程会与一般的编程方法不同,今天正好要编写一些新代码,边写 ...

  9. 敏捷开发松结对编程系列:L型代码结构案例StatusFiltersDropdownList(下)

    这是松结对编程的第23篇(专栏目录). 接上文,45分钟后-- 新的筛选效果 现在需要在下拉框上加上两排新的筛选项(更早和更晚): 师傅本人可以在45分钟完成(实测),但如果直接交给徒弟维护(或师傅离 ...

最新文章

  1. 漫画:到底什么是微服务?
  2. openoj的一个小比赛(J题解题报告)poj1703(并查集)
  3. 经典面试题:为什么 ConcurrentHashMap 的读操作不需要加锁?
  4. 13个代码注释的小贴士
  5. SpringCloud Openfeign
  6. [VBA] 设置行高和列宽,以及全选单元格
  7. 京东ajax怎么用,使用Ajax、json实现京东购物车结算界面的数据交互实例
  8. Tesla柏林超级工厂开始招人,首批职位已发布
  9. 创业计划书学习笔记二——创业计划书的目录结构与执行概览部分的写作方法
  10. 最新常用会计科目表及详细解释
  11. win10计算机休眠快捷键,键盘快捷键关闭或休眠Windows 10 | MOS86
  12. Vue3 npm run serve 太慢的解决方法
  13. 聚醚/聚丙烯酰胺-竣甲基/聚丙烯酰胺/粒状聚N-异丙基丙烯酰胺壳聚糖水凝胶的制备方法
  14. 【elasticsearch】——用ILM策略自动完成冷热数据分离
  15. 名字生成器 php,中文名字随机生成器
  16. 主力资金屡试不爽的六种洗盘手法
  17. easyExcel设置最后一行的样式【可以拓展为每一行】
  18. git clone速度太慢的解决办法
  19. NoSQL之Redis配置与数据库常用命令
  20. Halcon12 HObject与VC++ OpenCV Mat相互转换

热门文章

  1. 全球及中国壁纸市场盈利预测与投资风险分析报告2022-2027年
  2. COM 组件设计与应用(十一)—— IDispatch 及双接口的调用
  3. VC6解决托盘菜单不消失
  4. JavaString库
  5. 二分查找-数组实现(小trick)
  6. Scala学习之路 (六)Scala的类、对象、继承、特质
  7. Python_summary
  8. [WC 2011]Xor
  9. VS2015安装简单的C#单元测试
  10. wp7 HubTile