讓我們來談談分工

jopen 8年前發布 | 5K 次閱讀 程序員

昨天,我看到一個新聞——雅虎取消了 QA 團隊,工程師必須自己負責代碼質量,并使用持續集成代替 QA。 同時,也聽到網友說,“聽微軟做數據庫運維的工程師介紹,他們也是把運維工程師和測試工程師取消了,由開發全部完成。每個人都是全棧工程師”。于是,我順勢引用了幾年前寫過一篇文章《我們需要專職的 QA 嗎?》,并且又鼓吹了一下全棧。當然,一如既往的得到了一些的爭議和嘲弄;-)。

有人認為取消 QA 基本上是公司沒錢的象征,這個觀點根本不值一駁,屬于井底之蛙。有人認為,社會分工是大前提,并批評我說怎么不說把所有的事全干的,把我推向了另外一個極端。另外,你千萬不要以為有了分工,QA 的工作就保得住了。

就像《喬布斯傳》中喬布斯質疑財務制度的時候說的,有時候,很多人都不問為什么,覺得存在的東西都是理所應當的東西。讓我們失去了獨立思考的機會。分工也是一樣。

所以,為了說完整分工這個邏輯。請大家耐住性子,讓我就先來談談“分工的優缺點”吧。

分工的優點和缺點

首先,分工(Division of Labour)應該是由 Adam Smith 在 1776 年的《國富論》中提出來的,Adam 在那時候就觀察到分工對于手工業生產效率的提高。他將效率提高的原因歸結于三點:

  • 熟練程度的增加。當一個工人單純地重復同一道工序時,其對這道工序的熟練程度會大幅增加。表現為產量和質量的提高
  • 如果沒有分工,由一道工序轉為另一道工序時會損失時間,而分工避免了這中間的損失。
  • 由于對于工序的了解和熟練度的增加,更有效率的機械和工具被發明出來,從而提高了產量
  • </ul>

    分工的確是提高生產力。我想到了福特公司一開始做出來的汽車幾乎買不出去,原因有兩個,一個是成本太高,另外是生產太復雜,產能太低。于是福特公司開始把制造一輛汽車的工序分解開來,進行分工,分工給福特公司帶來的好處是:

    1. 很多工作可以并行了,而且因為事情變得簡單后,執行力也變強了
    2. 一個非常復雜和高深的汽車制造因為分工后,很多工作不需要很 NB 的人來干了,只需要一般勞動者經過簡單的培訓就可以干了。而且,越干越熟練,越干越專業,最終可能讓合適的人合適的事。
    3. 分工后導致了很多重復勞動可以用技術來解決,于是福特公司出現生產流水線的技術(你是否還記得卓別林《摩登時代》里的工業生產流水線的場景,那取自福特公司)。
    4. </ol>

      于是,福特公司的生產效率大大提高,最終實現了讓每個美國家庭都能買得起汽車的理想,同時讓美國成為了輪子上的國家。

      不過,我們需要注意的是,在《國富論》中,Adam 他同時也提到,分工如果過細,同樣會帶來問題——簡單重復的勞動會讓人變成一個不會思考的機器,從而越來越笨,進而變成平庸的無技能的人。自“分工”出現以后,爭論就沒有停止過。

      Karl Max 同樣認為分工越來越細,會導致人的技術越來越差,同時,大量的重復勞動也會導致人對工作的失出熱情,產生厭倦和抵觸心理,最終會導致生產力的下降

      同時,還有一些經濟學家也同樣表明分工的一些缺點:

      • 導致人只關注整個事情中的一小塊,缺乏全局視角,導致視野受限,沒有完全領會工作的意義和目標,從而導致各種返工
      • 對于組織而言,分工也會導致出現大量的溝通協同成本,并出現碎片的生產方式,以及組織的孤島形式,并不利于提高生產力
      • </ul>

        當然,奧地利經濟學家 Ludwig von Mises 并不這么認為,他認為,在分工所得到的好處面前,這些副作用不算什么。并且,他認為在資本主義的制度下,完全是可以平衡分工的各種優點和各種缺點,從而可以達到提高生產力和提高人員素質的雙贏解的。

        比如說,分工中的各種溝通問題是可以通過一個標準協議來解的,造燈泡的,造開關的,造燈座的完全不知道對方的存在,他們只所以可以讓做出來的東西拼在一起,完全是通過了一種標準協議完成的。這也是為什么這個世界上有各種各樣的標準化的組織

        還有很多經濟學家對分工都有自己的見解和想法。不過基本上就是上面這些 Pros 和 Cons 了。下圖是一個 PPT 的兩個 slids,可以點擊看大圖(來源

        </tr> </tbody> </table>

        全球化下的分工

        分工帶來問題在全球化的浪潮下變得尤為突出。其委婉地被講成是比較優勢(Comparative Advantage

        比較優勢(又叫相對優勢)是經濟學的概念,解釋了為何在擁有相對的機會成本的優勢下生產,貿易對雙方都有利。當一方(一個人,一間公司,或一 國)進行一項生產時所付出的機會成本比另一方低,這一方面擁有了進行這項生產的比較優勢。于是,一個國家倘若專門生產自己相對優勢較大的產品,并通過國際 貿易換取自己不具有相對優勢的產品就能獲得利益。

        于是乎,分工本來想要的是——合適的人干合適的事,但是在比較優勢的情況下,商業社會把分工變成了——不是選擇合適的人、公司或國家,而是選擇成本低的人、公司或國家。

        經濟合作與發展組織 OECD 最近(2015 年 6 月 28 日)對全球化這樣建議的——

        “有效率的政策的本質不是阻止失業而是鼓勵就業,如果各個國家都在收獲全球化的利益而不是開放貿易的話,那么一些地方就會失去工作機會,當然也伴隨 著在另一些地方出現新的工作機會,這是全球化進程不可避免的,而我們面對的挑戰是怎么能流暢調整我們的流程,能為那些新出現的工作機會找到合適的技能匹配 的工人”。

        </blockquote>

        通過上面的說明,我想你可以知道,為什么中國成為了世界勞動力大國,而為什么當初美國科技公司進入中國的時候,首先把測試的工作放到了中國。這 就是所謂的全球化分工。同時我們也可以看到,像我們中國這樣技術能力的確非常不足的國家,的確是可以通過分工這種形式,讓我們這些技能一般的技術人員參與 一個復雜的有技術含量的項目當中。這其中就是分工的光明面和陰暗面。

        那么,我們想一想,隨著中國的人力成本的越來越大,國際化的分工因為商業資本的因素,必然不會選擇中國,只會選擇人力成本更低的國家,比如印 度、越南、甚至人力成本更低的國家。美國雅虎和 Adobe 不是離開中國了么?再看看中國因為人民幣的匯率或是人力成本的上升,我們在早幾年關了多少個 Made in China 的工廠,這就是全球化的分工,商業上來說,他不是找最合適的人,而是找成本最低的人。

        所以,你千萬不要以為我一提倡全棧了,你 QA 的工作就保不住了,就算沒有全棧,就算是你還在堅持的社會化的分工,也可能讓你的 QA 的工作就保不住了,除非,你能提供更低的價格。(想想這其中的邏輯吧,人家美國人把一些技術工作(比如測試)外包到中國的原因不是因為中國人聰明,想得周 全,適合干這個測試這個事,而是因為中國人廉價,所以,當中國不在廉價了,自然就會找更廉價的地方了)

        為什么國家要從 Made in China 轉型?不就是因為中國早期拿到的國際化分工就是這些沒有技術含量的支持性的分工么?也因此而造就了大量的技能很一般的工人。為了能在全球化分工中能拿到更 有質量的工作,我們必然要從勞動密集型轉向成知識密集型,必然要從支持性的工作轉變為產出性的工作,必然需要單一技能型的技工轉變為復合型的人才。

        分工的溫床和天敵

        分工的溫床主要有兩個

        • 一個是成本和效率,資本家或企業主或一個國家為了追求更快成本更底的生產方式,他們必然會進行大規模的分工,伴隨著分工,他們也會把一些知識或技術密集型的工作生生地變成勞動密集型的工作。然后層層外包。
        • 一個是組織的大小,當一個組織的人數不斷的變大,那么,你只能把工作和任務分得更細。這是被人數逼的,而不是實際需要的。這就是為什么我們可以看到很多大公司里要么人浮于事,要么瞎忙。
        • </ul>

          分工的天敵主要有一個——那就是技術

          每當新技術出現的時候,一些復雜的工序會被一臺機器或是一種高超的技術所取代,不管是被技術自動化,還是被技術所簡化總之,以前本來需要數十人或是數百人才能干的事,突然之間只需要一個人就可以干完了。生產力得到了巨大的釋放。所以,你這就是我們常聽的——科技是第一生產力!

          所以,當你面對一些難題的時候,比如線上的故障,或是一個復雜的軟件生產活動,你是要加更多的流程更多的人呢,還是要用技術解決問題呢?一邊是溫床,一邊是天敵,你想好了嗎?

          什么樣分工才是好的

          分工是必然的,因為很簡單,你不可能一個人干完所有的事情,所以必需要分工,分工不是問題,而問題則變成了——什么樣的分工是理想的,是優雅的,是有效率的?

          讓我們來談談分工

          華君武漫畫《科學分工?》

          對于分工來說,一般來是一種組織和管理形為。就目前來說,現代的公司有兩種分工模式,分別是Control 和 Commitment 這兩種分工。

          • Control 就是控制型的管理,它是一種是基于工作技能的分工,于是員工會被這種分工分配到一個比較窄的技能里去完成一個非常明確的工作。
          • 而 Commitment 則是面向員工的責任心和所承擔的目標來分工并完成工作的。相比起前者來說,這樣的分工在完成工作時,需要的不僅僅是技能,還需要更多的責任感。
          • </ul>

            這么說吧,

            • 對于基于工作技能的分工,你會看到,這樣的公司會把技術人員按編程語言來分,比如:Java、PHP、C/C++,或是分成:Web 端、iOS 端、Android 端、后端、算法、數據。或是分成:開發,測試,運維。
            • 對于基于 Commitment 的分工,你會看到他們這樣分的,軟件工程師(不分前后端,不分語言,不分運維,測試),因為這樣的公司認為,他招的不是只有特定語言技能的 Coder,而是而學多種語言多種技術能保證軟件質量以及能對軟件維護的軟件工程師。這種公司的軟件工程師是各種團隊都可以去的,而他們的分工更多的是按 軟件的功能,軟件的模塊,或是軟件的產品線來分工。
            • </ul>

              基于技能的分工已是過去時,而基于 Commitment 的分工是更有效率的分工的未來。你可以參看 McAlister-Kizzier, Donna. 的文獻 “Division of Labor.” 。

              小結

              我說了這么多,不知道你看懂了我想表達什么沒有?我不強加我的價值觀,只希望你自己問自己幾個問題:

              1)作為工作的人,在分工中你會怎樣選擇?是成為一顆棋子,一顆螺絲釘,還是成為一個多面手?

              2)作為工作的人,當你選擇工作或任務的時候,你是選擇做支持性的工作,還是做產出性的工作?你是選擇做勞動密集型重復工作,還是做知識密集型的創新性的工作?

              3)作為老板,你是想要什么樣的員工?聽話的只會加班和干重復工作的勞動力,還是有責任心的為企業和產品負責的員工?

              4)作為老板,你是想通過分工釋放低端員工的生產力,還是通過科技或技術去創造更 NB 的生產力?

              5)作為老板,分工中的問題,你找到比較優的解了嗎?比如,對于不同團隊間的協議,你找到了嗎?

              可能,在不同的情況下你會有不同的答案。但是對我來說呢,無論是什么情況,我都只會有一個答案。

              來自: coolshell.cn
               本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
               轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
               本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
        讓我們來談談分工 讓我們來談談分工