一段時間,開發者問答網站Stackoverflow上有人發問:「我們都知道寫程式比做甘特圖(進度管理圖表)要更難,而且開發者加班也更多,那為什麼IT公司裡PM(project managers)和BA(business analysts)的薪水比開發者要高?」
作者:36氪
前一段時間,開發者問答網站Stackoverflow上有人發問:「我們都知道寫程式比做甘特圖(進度管理圖表)要更難,而且開發者加班也更多,那為什麼IT公司裡PM(project managers)和BA(business analysts)的薪水比開發者要高?」
英國的Vlad Gudim給出了一個很有意思的回答,這個問題的答案取決於你工作在一個什麼樣的軟體公司和環境。
簡單回答,原因是我們生活在一個按照職位在公司層級發薪水的社會。但是這個答案並不完整,因為我們沒有回答為什麼 PM和BA職位的等級在很多軟體公司裡比開發者要高,也沒有回答為什麼很多軟體公司要選擇這種等級制度的管理方式;這兩個問題其實才是最值得探討的。
概括地來講,這個世界上有兩種做軟體的公司:一種類似於工廠,而另一種類似電影拍攝小組。
工廠型的軟體公司起源於MIT Sloan管理學家Douglas McGregor提出的激勵理論Theory X:
普通員工是懶惰的,而且需要不斷的監督和管理;員工來工作只是為了拿薪水;經理的能力永遠要比手下的員工強。在這種管理理念的影響下,我們會認為團隊的領導者可以代表,甚至於替代他的整個團隊,而團隊成員只是完全可以互換的人力資源,他們的唯一價值就是幫助領導者完成任務。因此,這類公司都採用等級制度的管理方式,工作的分配也很單一。
軟體工廠的管理階層認為軟體是可以透過一個很明確的流程生產出來的,而這個流程需要PM 的監督和BA 寫出來的軟體 Specs。生產過程本身只要有足夠合格的但是可以隨時替換的開發者和QA 就搞定了。當然計劃的預算和最後發佈的產品也都是PM 和BA 說了算。
軟體工廠的經理人是很容易辨識出來的,因為他們在形容軟體製作時會經常提到「資源」(指的是他們團隊的成員)、「流程」、「營運效率」、「品質監控」等工廠生產業的術語。
而另一種軟體公司類似於電影拍攝小組,他們的管理理念來源於McGregor提出的Theory Y:
他們認為員工是自覺而聰明的,也很喜歡自己的工作,對待工作像小孩子對待玩耍一樣。這類公司認識到個體工作者(individual contributor)的能力有可能遠遠大於管理人員。當經理不可以代表和替代所有手下人的時候,等級制度的管理方式就不太好用了。人們需要在一種更扁平化的團隊結構下互相合作,工作的分配也更加多樣化,每個人都需要具備多種能力。
拍攝小組類軟體公司的「導演」會意識到如果想做出一個很好的產品,他需要很棒的人加入團隊,而他需要給這些人一個可以盡情發揮與合作的環境。導演這個角色給予他人靈感,而且掌控大方向,而不是單純的管理者。團隊裡的每一個人都很重要,因為最後的產品是團隊上所有人性格和思維的體現,而不是某某BA 寫出來的軟體規格。
在薪資方面,軟體工廠會認為在組織頂端的PM 和BA 是最有價值的,所以自然會給他們最多錢。團隊的其它成員只要差不多,會把規格變成程式就可以。PM 和BA 會勾心鬥角全力維護他們在頂端的位置,不與團隊成員分享很多有關計劃的資訊。沒有這些資訊,團隊成員無法自己做很多設計上的決定,所以只能聽從命令,按照規格來寫程式。這種情況會構成一種惡性循環,軟體工廠的開發者員真的變成像工廠裡的流水線工人一樣,只會做技術上複雜,但是實際上重複性很強的工作。
相比之下,拍攝小組類軟體公司會更加平等;所有的團隊成員都可以參考有關計劃的所有資訊,並且做出自己的判斷和設計決定。誰有能力,誰就可以來帶領計劃的某一部分,而薪水的分配是依據這個人給團隊和產品帶來了多少價值。在這種公司裡面,PM 往往不負責產品設計和創意,而僅負責一些行政和與外界打交道的事情。BA 的職位可能根本就沒有,而是所有團隊成員都承擔一些軟體規格的編寫。
當然,你應該知道很多大公司的內部資訊部門和外包類軟體公司都是像我所形容的軟體工廠。在這些公司裡,PM 和BA 的薪水比開發者要高,而且開發者很難改變管理層做出的設計決策。
成功的軟體公司往往傾向於電影拍攝小組型態,因為只有這樣,他們才可以吸引最優秀的人才來做出最優秀的軟體。在軟體公司工作的讀者們,那你的公司是屬於哪一類呢?
本文獲「Inside」授權刊登