当Agile已经变成一个贬义词的时候,我们是要把Lean变成下一个贬义词吗?还是脚踏实地去做一些改进?

在这里,向大家推荐 James Coplien 的 Organizational Patterns。它不是一套新的过程,一上来弄十几个实践,也不知道为什么就开始结对开始 TDD 了。它也不是什么大师思想,只有大师才能领会。它更像一个中药柜,里面列了许多药方,更重要的是还告诉你了什么时候用什么药,相关的药有哪些,吃了药有副作用的话用什么药去化解。

在Oredev 2008上有一个相关的演讲视频(原视频地址被墙,这是我放在Youku里的): 
http://v.youku.com/v_show/id_XMTUxNzgyOTI0.html

这本书在电驴上有。国外的朋友可以去买纸版的:

http://www.amazon.com/Organizational-Patterns-Agile-Software-Development/dp/0131467409 
在他的主页上有Top 10 Patterns:

http://users.rcn.com/jcoplien/Patterns/Top10OrgPatterns.html

本来有一个wiki的,不过现在已经挂掉了。利用web.archive.org还可以找回来。 
http://orgpatterns.wikispaces.com/

模式有很多。在我看来最重要的就两个: 
第一个是要有Unity of Purpose,大家必须要朝一个方向努力。另外一个是Distribute Work Evenly,工作必须在所有组员之间平均分担。不过最重要的也是最无用的,因为只要达到了这两个状态,基本上也没有项目管理问题了。所以我把其他的模式都看成达到Unity of Purpose & Distribute Work Evently的手段。 
关于Distribute Work Evently这个模式特别有意思。Coplien用CRC卡记录了组员的角色,职责以及互相沟通的频率。然后标以红黄绿的颜色表示连接强度。这个非常有意思。让我想其了包之间的依赖。让我想起了玩Bridge游戏时钢铁受力图。也许协作问题根本要解决的就是如何平均分摊受力吧?

Cope总结得非常好,他说软件开发组织有多高效,主要就是取决于沟通的强度。上面那张图就很形象地标榜出了什么是高强度,健康的沟通。健康的人际关系网络,就是没有瓶颈的网络。信息能够及时地传达到需要的人的手上。在上面的图我看到的是平衡负载的人际关系,没有人是Overloaded的。

在这张图里,我们就明显的可以发现有人是Overloaded的。在你的团队里有这样人吗?很多项目里的项目经理,不但要管项目,管需求还要管技术,显然是会Overloaded。有的项目专门有人负责“沟通”,就是他去和客户沟通,然后回来和程序员沟通,然后和QA沟通。很快,沟通就变成他的全职工作,那么他的附加值是什么呢?只要团队内有这样的Overloaded的角色,他们就会变成薄弱点。一旦团队的规模变大,外部的压力变大,就会整体垮掉。所以,平均负载是关键。

有一个非常形象的类比。就是Bridge游戏。这个游戏让你设计钢铁互相搭配的形状,设计一座桥梁,然后让汽车从上面通过。如果受压大的钢条就会变红,超过负载就会断掉。

但是这个是模式吗?James Coplien认为这个是,这个模式叫Distribute Work Evenly。但是我觉得这个不是常规意义上的模式。至少我理解的模式是为了解决特定问题在特定上下文中的特定解决方案。而Distribute Work Evenly只能说是一个愿望,并没有具体可实际操作的解决方案。我有一个想法是“如果不能轻易地想出一个不适用的场合,那么这个模式就不是一个模式”。按照这个想法,我把组织模式的四个Pattern Language几十个模式做了一些整理。下一篇,我们就来看看,组织模式都包含哪些内容。

组织模式 - Introduction相关推荐

  1. 领域驱动系列:三种领域逻辑组织模式的本质

    企业应用架构模式中明确提出了三种领域逻辑组织模式:事务脚本.领域模型和表模块.不少人看的云里雾里的,不少人说的似懂非懂的,主要原因是没有从项目的级别的分析和设计经验,只有单个项目模块的开发经验的人很难 ...

  2. linux 开发组织模式,Linux内核发布模式与开发组织模式(1)

    Linux内核社区经历20多年的发展,逐渐形成了一套完善的开发模式.作为想要加入社区进行开发的人来说,当然必须熟悉下这套模式啦,其中最重要的两点是: 内核发布模式 内核开发组织模式 本文将对第一点进行 ...

  3. 马斯洛需求层次结构、配置控制委员会CCB、领导者和管理者、战略组织模式

    马斯洛需求层次结构 前四个级别通常称为缺陷需求(D 需求),而最高级别称为增长需求(B 需求). 配置控制委员会 配置控制委员会(Configuration Control Board,CCB),负责 ...

  4. 倒三角组织架构模式下的赋能方式

    以前一名士兵要想呼唤炮火支援,需要向上级层层申请,甚至需要大BOSS亲自下达命令才能调动炮兵,但是现在该命令由一线战斗小组下达,其具备了调动后方资源的能力,后方资源围绕前端进行作战,特种作战正在改变以 ...

  5. Apple苹果公司组织架构

    Apple苹果公司组织架构 这种模式,自乔布斯回到苹果时,开始实施,一直保留到现在. 今天,苹果大学校长兼副总裁 Joel Podolny 在<哈佛商业评论>上发表了一篇题为<How ...

  6. 使用模式创建一个面向服务的组件中间件

    引言 在本文中,您将了解面向服务的组件中间件在用于资源有限的语音设备时,在设计阶段所应用的模式.它涵盖了项目的问题上下文,并被看成是一组决定因素,是对相关体系结构远景的一个简要概括.您还会得到一份描述 ...

  7. 五项管理行动日志_迈向学习型组织,企业必须具备五项修炼

    未来真正出色的企业,将是能够设法使各阶层人员全心投入,并有能力不断学习的组织. --彼得·圣吉 陈春花老师曾说,一个企业组织在平稳发展之时,最可怕的是怠情,是组织疲劳,就像人们说的"温水煮青 ...

  8. Oracle编程入门经典 第4章 新9i示例模式

    Oracle 9i产品帮助文档: http://docs.oracle.com/cd/B10501_01/index.htm 可根据自己需要进行查询,包含了众多的文档. Sample Schemas的 ...

  9. 研发和人力资源发展模式对比研究

    研发和人力资源发展模式对比研究 (2009年7月23肖伟亚写于东莞)      本人长期从事企业设计&研发管理与企业核心高层管理实战工作,对研发管理模式有些心得体会写出来供大家思考,以前也有很 ...

最新文章

  1. 网易盖楼回复的简易实现
  2. 2851 菜菜买气球
  3. js中typeof用法详细介绍
  4. LA4238 Area of Polycubes(立方体的表面积)
  5. 使用cvs或svn从sourceforge上获取开源项目的方法[转载]
  6. C语言学习:snprintf()函数
  7. 源码 状态机_阿里中间件seata源码剖析七:saga模式实现
  8. 给button加href
  9. c 怎么获取服务器文件是否存在,powershell - 需要找出服务器上是否存在特定的文件夹。如果是,那么哪个驱动器是C:或D - 堆栈内存溢出...
  10. python requests json_python:解析requests返回的response(json格式)
  11. JAVA异常处理实战心得
  12. 自动驾驶 4-1 二维运动学建模Kinematic Modeling in 2D
  13. WinRAR_5.40 绿色!!!无广告
  14. 拍牌系统改版html5,开启上海拍牌的日子,有点玩人的系统,一会快一会慢
  15. 股指期货日内平仓手续费高,锁仓可以解决吗
  16. TypeError: Image data of dtype object cannot be converted to float
  17. 【Web】lighttpd基础
  18. 怎么在字符串中加加号python_python加号连接字符串
  19. php微信公众号样式模板下载,PHP微信公众平台自定义菜单
  20. 1.6 电源树中电流的计算方法(硬件基础系列)

热门文章

  1. C语言实现面向对象示例
  2. 解决win10系统中截图异常放大的问题
  3. wsl使用可视化界面_通过 VcXsrv 在 WSL2 上使用图形化界面(xfce4)
  4. lingo变量无限制版本_LINGO笔记
  5. matlab 行 读取文件 跳过_用Matlab处理LAS点云(1)——LAS文件概述
  6. linux系统配置php环境,linux下php环境的搭建
  7. html表格的表头怎么合并单元格,使用tableGrob合并表头单元格
  8. 完整议程、重磅嘉宾公布,第四范式AI新品发布会持续报名中
  9. web开发入门到深入-html5(2)
  10. 【机器学习】5行代码在小数据集上涨点