欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

这是一个负载平衡的艺术 博客分类: 组织模式 游戏设计模式.net 

程序员文章站 2024-02-21 12:08:10
...
最近在读James Coplien的组织模式。觉得最有意思的还是这张图。这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 

最近公司级别组织了一次Open Discussion,总结来总结去,问题都是“沟通问题”,根源呢就是“价值观”。项目级别也做过好多次Retrospective,也是那句老话“沟通问题”。Cope总结得非常好,他说软件开发组织有多高效,主要就是取决于沟通的强度。上面那张图就很形象地标榜出了什么是高强度,健康的沟通。我觉得软件开发中只要解决两个问题:

1、从技术层面,怎么解决控制复杂度的问题。主要的手段就是Divide and Conquer和Compression。分模块分子系统就是Divide and Conquer,分函数分层就是Compression。
2、从团队,组织层面,怎么解决高效高强度的沟通问题。

但是这两个方向的问题,最终结果似乎是“殊途同归”的。控制复杂度似乎最重要的就是控制包的依赖数量和方向。做到均衡的负载,不能让太多的包都依赖于同一个包,导致所有的改动都要经过同个包。建模良好的系统不应该出现一堆人都在改同一个类的现象。除非这个包或者类处于更高更稳定的抽象级别,最极端的例子就是.NET Framework中的那些类。
这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 
而沟通问题也是在做均衡的负载。在上面的图我看到的是平衡的负载,没有人是Overloaded的。
这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 
在这张图里,我们就明显的可以发现有人是Overloaded的。在你的团队里有这样人吗?很多项目里的项目经理,不但要管项目,管需求还要管技术,显然是会Overloaded。有的项目专门有人负责“沟通”,就是他去和客户沟通,然后回来和程序员沟通,然后和QA沟通。很快,沟通就变成他的全职工作,那么他的附加值是什么呢?只要团队内有这样的Overloaded的角色,他们就会变成薄弱点。一旦团队的规模变大,外部的压力变大,就会整体垮掉。所以,平均负载是关键。
有一个非常形象的类比。就是Bridge游戏。这个游戏让你设计钢铁互相搭配的形状,设计一座桥梁,然后让汽车从上面通过。如果受压大的钢条就会变红,超过负载就会断掉。
这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 
  • 这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 
  • 大小: 39.3 KB
  • 这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 
  • 大小: 44 KB
  • 这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 
  • 大小: 41.3 KB
  • 这是一个负载平衡的艺术
            
    
    博客分类: 组织模式 游戏设计模式.net 
  • 大小: 51.5 KB