软件工程 之 动物世界

在一个神奇的国度里生活着许多动物,  其中有猪, 鸡, 和鹦鹉。

它们每天搞头脑风暴, 琢磨如何创业,  最后鹦鹉提议它们合伙开一个早餐店:

image

 

具体分工如下:

猪: 提供猪肉, 做熏猪肉 (bacon)

鸡: 提供鸡蛋, 做煎蛋

鹦鹉: 提供咨询, 它会每天阅读大量博客, 给其他团队成员提供建议, 例如最新业界趋势, 最新术语, SaaS, N-层架构, 创业明星当年的轶事, 等等。 

 

这项创业对三个动物的负担是一样的么?  它们应该各自占多少股份?  一旦创业失败, 猪, 鸡, 和鹦鹉会各自失去什么?

 

在一个团队中,  不同的成员来自五湖四海, 为了一个共同的目的, 走到一起来了 (至少表面上是这样). 在一起吃饭的时候大家意气风发, 群情激奋,但是不同的人对于团队的承诺是不一样的 -

有些人是 - 他们或者辞掉了工作, 投入创业中; 或者这一门软件工程课是他们的必修课, 他们一定要拿到高分, 才能提高自己的GPA, 申请到好学校。 对他们来说, 要想项目成功, 他们要拿出自己身上的肉, 背水一战; 一旦失败, 自己的老本也赔进去了.  他们的投入级别是 - 全身心投入 (committed).

 

有些人是 - 他们能做重要的贡献, 但是项目一旦失败, 他们的损失并不大, 他们的生活还可以继续下去。例子: 有些人周末来给项目帮忙, 平时自己上班; 或者是选修软件工程课; 或者他们已经保研, 只要这门课混及格就行。 他们的投入级别是 - 参与 (involved).

 

有些人是 鹦鹉 - 他们有漂亮的羽毛, 能说会道, 联系广泛, 能提出很多建议, 很多点子. 但是他们不执行, 除了一些人云亦云的观点和一些关于架构的空谈之外, 他们没有其他投入.  一旦项目失败, 他们就会飞到另一个项目中去。 他们的投入级别是 – 围观 (bystander). 

 

一个人可以同时做很多事,  这些事情对每个人的轻重缓急各不相同,  有些事情只能业余帮一些忙, 这无可厚非。 加入一个团队时要弄清楚自己在团队中投入的级别是什么, 别人的期望值是什么.  不要拿着卖白菜的钱, 操那卖白粉的心 - 太不值得。 人可以在 n 个地方做鸡, 或者 n*m 个地方做鹦鹉,  但不可能在两个地方同时做猪, 这太难了, 很多牛人, 例如 Bill Gates 同学和 Mark Zukerberg 同学, 就只好在学业和事业中抛弃一个, 全身心地投入另一个。 

 

同时, 把一件事情做成需要很多人的帮助, 创业者要不拘一格吸引人才。 但是我们也要分清楚团队成员的投入/承诺/责任是属于哪一个级别,  哪些是猪, 哪些是鸡, 哪些是鹦鹉。 一群猪全身心投入看似不错,  但无论多么努力,  猪没法下蛋。 一群鸡每天按时上班下班, 也许团队相处和谐但没有斗志。 最坏的情况是找到一群鹦鹉, 大家叽叽喳喳, 来回扑腾, 好不热闹。 但是最后大家做鸟兽散, 只落得一地鸟毛。

 

在竞技体育, 商业竞争中, 如果一个队伍的队员都是猪, 另一个队伍的队员都是鸡, 那谁胜谁负, 就很清楚了, 鹦鹉可以做拉拉队, 但是并不决定最后的胜负。

 

在企业中, 大家都是拿工资的人, 应该都是全身心投入的 “猪” 了吧?  那倒未必,  各人对一个具体项目的投入和负责程度还是很有区别的。 企业内不同的角色相互合作, 各有想法, 市场变化快, 应该听谁的呢? 是听那些在研发和市场第一线全心投入的 "猪", 还是坐办公室的“鸡”,  还是一些空降而来的 "鹦鹉"?  在软件企业培养新人, 是让他们对公司各项业务作高层次的点评, 写成漂亮的PPT (鹦鹉),  还是让他们坐办公室, 主管流程 (鸡), 还是把他们送到能听到炮声, 可能会流血的第一线 (猪)?   

在遵循敏捷原则的团队里, 成员们并不忌讳谈论不同的投入和负责程度 - 因为这就是现实。 但是他们一般有一个原则: 

       重大决定由 “猪” 来定夺。 

 

在官僚层次驱动的项目中, 往往有一些鹦鹉会控制流程的关卡, 鹦鹉虽然对项目具体情况不了解, 也很忙, 但是项目的一些决定非得由她们来做, 她们做完决定之后, 拍拍翅膀飞走了...  这的确是比较让人郁闷的事。

 

驱动和责任在项目管理中是很重要的因素。 有责任, 有投入, 有期待, 才有回报。    在 <现代软件工程>这门课中, 我也要求同学们在自己的团队中给每个成员决定一个 “团队贡献分”, 一般来说, 贡献和投入是很相关的。

 

复杂的合作模式和影评家 

这些可爱的动物们也在别的项目管理书籍中以别的名目出现,  例如 《项目百态》 这本书提到了一个角色 - 影评家。 影评家不拍电影, 也没有演技, 但是他们对电影的一切都可以指手画脚, 而且可以不承担任何责任, 往往最高领导还挺容易受影评家的影响!   你在幸幸苦苦做项目的时候, 是否有一圈影评家在围观? 

在进行一些跨部门合作的时候, 我们更要理清不同部门的权力, 责任和流程。 下面是一个比较通用的RASCI 模型:

R: Responsible, 负责把具体事情做好。 

A: Accountable, 对任务负全责, 有批准的权力

S: Support,      对任务提供支持, 辅助任务的完成

C: Consulted, 咨询, 拥有完成项目所需的信息或能力的角色。

I: Informed, 知会者, 应该事后及时通知结果的角色。

当你的项目看到很多影评者的时候,  你不妨想想他们属于RASCI的哪一个角色, 然后依照相应的规范行事即可。 

在一个流程漫长, 合作者众多的项目中, 项目的管理者要把每一个环节的RASCI 角色都列出来, 每个环节有且只有一个R. 

练习: 请指出下图中的 RASCI 角色:

//注: 猪和鸡的故事在这里也有:

http://en.wikipedia.org/wiki/The_Chicken_and_the_Pig

posted @ 2011-03-14 13:21  SoftwareTeacher  阅读(8991)  评论(13编辑  收藏  举报