原文:陳皓
這篇文章是我的一個外國的同事Gareth推薦給我的,我和他一起工作過一段時間。他之所以覺得非常不錯,是因為這篇文章讓他身有體會,他覺得我也一定會有體會,並讓我考慮一下翻譯到我的blog上來。我看完後覺得很有代表性,而且覺得說得太對了,所以翻譯過來,希望大家都讀一讀,最好轉給你的公司老闆。
這篇文章來源於 StakeExchange上的一個問題——“為什麼BA和PM的薪水要比程式設計師要高?”,頂在一樓的回覆分析了這個原因,並指出了兩種管理文化。
————正文開始————
一個簡單的回答應該是——“因為在我們的社會裡,我們總是會認為薪水和會和職位的層次綁在一起”。但是,這個答案同時也折射出一個事實——我們的薪資是基於我們的所理解的價值,但這並沒有解釋
- 1. 為什麼PM(Project Manager)和BA(Business Analysts)在很多軟體公司裡在組織的上層?
- 2. 為什麼軟體專案團隊總是在最底層?
這兩個問題真是非常地值得我們去問,去思考。
總體來說,這個世界上存在兩種不同的軟體公司的組織結構。我把他們叫做 Widget Factory(小商品工廠)和 Film Crews(電影工作組).
Widget Factories 想要去解決怎麼去激發被X理論所影響的人 。 X理論由 McGregor提出,這個理論是說,一般人的本性是懶惰的,工作越少越好,可能的話會逃避工作,大部分人對集體(公司,機構,單位或組織等)的目標不關心,因此管理者需要以強迫,威脅處罰,指導,金錢利益等誘因激發人們的工作源動力。於是,經理總是要去做他下屬的工作。於是,基於這種前提下所思考出來的管理方式,很自然的就是——整個團隊能夠容易地被經理一個人所取代,這種團隊中的每一個人都很容易被別人取代,在這種團隊裡,經理的工作能力不斷地被加強。因些,這種公司一般使用樹形層級的組織結構,而不是水平式的工作角色。
Widget Factory管理體系運作於製作軟體的某種假設,這種假設需要BA在一個定義地非常明確的並且需要主管項止經理監管的流程在,準備軟體的規格說明書。這種軟體製造業需要對專案定置足夠的可被替換的程式設計和測試資源。整個工作由事先安排好的預算來驅動,這個預算由PM和BA在初始化business case的時候完成。
一個 Widget Factory的公司的管理可以通過觀察這個公司員工的談話方式識別出來。他們很喜歡談論Resource資源(包括幹活的人也叫做 resource),Process流程,Operating efficiency運作效率,uniformity一致性, repeatability可重複性,嚴格在控制對資源的使用,鮮明的工作角色和鮮明的流程定義(inputs 和 outputs)。他們對實實在在的軟體開發漠不關心,他們想要把理想中的軟體開發運作變成他們看得見的圖畫。
Film Crews 。這種公司認為人是有相當高的智力和創造力的,是自己可以激發自己的(陳皓注:即使沒有外界的壓力和處罰的威脅,他們一樣會努力工作以期達到目的——人們具有自我調節和自我監督的能力),人們努力工作,並且可以享受工作(人們願意為集體的目標而努力,在工作上會盡最大的努力,以發揮創造力,才智),就像孩子喜歡玩一樣。 Film Crews 認為,每一個個體的自已專業能力,要遠遠優於那種被組織和協調出來的能力。因為經理不再代替每一個人,而樹形的層次架構也不能很好的運作——人們不得不以比較複雜和形式合作才能把事搞定。工作職責變得非常地垂直——你需要具有從上到下的而比較寬泛的各種能力(陳皓注:每個人都需要有管理和技術能力),這種管理也就是基於McGregor的 Y理論。
在一個Film Crew的Director(注:有總監和導演的意思)瞭解要把一個偉大的軟體組合起來的每一個碎片,他需要組織一個無與倫比的團隊,並且要幫助這個團隊能凝聚在一起,團結在一起工作。他的角色是鼓舞大家,守護著構想(Vision),提供方向和集中大家的精力。每一個人都很關鍵,因為 “Director”相信軟體的結果來自所有的參與者,以及他們的那種獨一無二團隊工作方式。大家都知道自己是這個事的一個明星,明星效應可以增加成每個人的成功的機會。而他們的構想(Vision)驅動著預算和撥款。
當我們用報酬來表示的話, Widget Factories 認為,有價值的東西總是從PM和BA派生出來的,所以他們常駐在管理層的上面,也有相應的報酬,而軟體團隊,只要他們正確地把需求變成可工作的程式碼後就變得無所謂了。PM 和 BA 努力工作來維護他們的權位,他們通常不會讓你能得到專案的原始資訊。團隊拿不到專案的原始資訊,團隊就要吧拼命地製造各種理由來讓他們的方案變得有價值,程式設計師成為了只會從PM和BA那邊聽從命令的工人。這種情況反而讓Widget Factory公司方向大了他們的那種想法——程式設計師都是差不多的,就像車間裡的工人一樣,他們只不過在機械地幹一些很複雜的但是很標準的事情。
和 Film Crew公司鮮明的對比,Film Crew更主張的是平等主意,每個成員都可以不受限制地獲得主要的和原始的資訊,其鼓勵形成價值判斷,並且可以自由地選擇不同的方式來達到團隊的構想。 Leadership領導力結構基於人的能力而不是工作角色。報酬拆射出這個人是怎麼在這個專案中工作的,需要明白這個人為我們的軟體創造了多大的價值和產生了怎麼樣的結果。在這種環境裡,PM的工作顯得並不突出,他也許也不太可能是一個有創造力的領導者,工作角色被弱化成了一種行政管理上的支持者,以及團隊外部的聯絡者。BA的部分工作直接被團隊取代(在專案早期被Director取代)。
現在,一點也不奇怪,大多數的公司內的軟體開發團隊以及一些諮詢工作運作於 Widget Factories ,其需要依賴於流程來不斷地製造那些無聊的軟體。在這種情況,慣例上來說,PM和BA要比程式設計師掙得更多,這是基本一種他們可以創造更多價值的假設。在這種組強架構和管理裡,程式設計師們很難證明管理是錯誤的。
成功的軟體公司都會趨於採用 Film Crew的方式,任何其它的東西都會妨礙他們吸引牛人的能力,因為只有吸引了牛人,你才能創造出偉大的軟體。在這種公司裡,一個好的程式設計師的收入會高過BA和PM很多。
————正文結束————
讀完這篇文章,我發現這完全就是在說我上一家公司和現在公司。我上一家公司的經理們最喜歡談論的就是resource、 process,而他們的Project Manager或Team Manager或Dev Manager幾乎不會為軟體團隊分擔真正的軟體開發的壓力,還不如Widget Factory。哎!第一次看到這麼被人系統地表達出來,心中的一些困惑都得到了解答。
你的公司屬於哪一種呢?