首页 » 程序员必读之软件架构 » 程序员必读之软件架构全文在线阅读

《程序员必读之软件架构》除非他们有其他身份

关灯直达底部

对自组织团队的想法,我有一个大问题,我们在行业中谈论了很多,但很少看到实践。这可能是在咨询的环境中工作的副作用,因为我的团队总是随着项目而变化,而且我不太可能跟某一个客户在一起超过几个月。或者,我怀疑,真正的自组织团队非常少。把自组织作为努力方向是值得尊敬的,但对很多软件团队而言,这就像是还没学会走就想跑了。

在“Notes to a software team leader”3 中,罗伊·奥谢洛夫(Roy Osherove)描述了他的“弹性领导”概念,这种领导风格需要根据团队的成熟度有所变化。罗伊用一个简单的模型对团队成熟度做了分类,每个等级需要不同的领导风格。

3 http://leanpub.com/teamleader

1.生存型(混乱):需要一种直接指挥和控制的领导风格。

2.学习型:需要一种指导的领导风格。

3.自组织型:需要简易化来确保平衡不受影响。

就像我说的,团队里每个人都是经验丰富的软件开发者和架构师,那就太棒了,但我还没见过这样的团队。大多数项目的团队连一个对“大局”之类的东西有经验的人都没有,一团乱的代码库、不明确的设计、很慢的系统,类似这些都是明证。从技术角度来看,这种情况最为多见,我建议团队中由一个人来承担软件架构角色的责任。

罗伊举了流程经理角色的例子。在成熟的初始阶段,一个人承担流程经理的角色来帮助团队向正确方向前进,这将使团队受益。另一方面,自组织团队不需要别人告诉他们做什么。名字就是线索;从定义上,他们是自组织的,可以自己承担这个角色。我想说,软件架构的角色是同样的,因此技术领导的角色也是。