軟體工程 之 動物世界

2022-01-11 21:35:31 字數 3076 閱讀 2191

在乙個神奇的國度裡生活著許多動物,  其中有豬, 雞, 和鸚鵡。

它們每天搞頭腦風暴, 琢磨如何創業,  最後鸚鵡提議它們合夥開乙個早餐店:

具體分工如下:

豬: 提供豬肉, 做薰豬肉 (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 角色:

//注: 豬和雞的故事在這裡也有:

軟體工程之動物世界

編者按 每一軟體開發團隊中的不同成員都擁有不同的角色 承擔不同的責任,從而完成不同的使命。在乙個新建的團隊或者是創業型團隊中,根據他們各自的投入程度,存在著三種主要分工,鄒欣老師將之喻為豬 雞和鸚鵡。讓我們一起來聽聽這三種角色各自承擔著怎樣的職責和風險。或許你也可以此為關照,審視一下自己在所參與的團...

軟體工程 之 動物世界

在乙個神奇的國度裡生活著許多動物,其中有豬,雞,和鸚鵡。它們每天搞頭腦風暴,琢磨如何創業,最後鸚鵡提議它們合夥開乙個早餐店 具體分工如下 豬 提供豬肉,做薰豬肉 bacon 雞 提供雞蛋,做煎蛋 鸚鵡 提供諮詢,它會每天閱讀大量部落格,給其他團隊成員提供建議,例如最新業界趨勢,最新術語,saas,n...

軟體工程 之 動物世界

在乙個神奇的國度裡生活著許多動物,其中有豬,雞,和鸚鵡。它們每天搞頭腦風暴,琢磨如何創業,最後鸚鵡提議它們合夥開乙個早餐店 具體分工如下 豬 提供豬肉,做薰豬肉 bacon 雞 提供雞蛋,做煎蛋 鸚鵡 提供諮詢,它會每天閱讀大量部落格,給其他團隊成員提供建議,例如最新業界趨勢,最新術語,saas,n...