時間:2023-06-21|瀏覽:241
本文中討論的問題不僅限于軟件行業,許多大公司都存在這樣的問題。
我在軟件行業工作已經二十多年了,前前后后經歷過很多公司。我曾在大型金融和咨詢公司從事過一些無聊的工作,還曾在一些小型軟件公司從事過一些很酷的圖形項目,這些項目為電影制片廠開發出了非常酷的工具。
我可以告訴你一個秘密,很多“軟件工程師”,尤其是在大公司工作的人,所做的工作實際上很少。他們中的很多人幾乎“無所事事”。
我曾在一家大型金融公司擔任軟件開發人員,當時我一直有一個疑問:為什么我們花在編程工作上的時間這么少。
大部分時間里,我都在應付各種無聊的會議、準備無聊的幻燈片、制作愚蠢的Excel表和甘特圖。如果幸運的話,每天我能拿出1~2個小時寫代碼。我們團隊負責開發的軟件實際上是一個JavaScriptWeb應用程序,用于監控和收集公司財務交易的詳細信息。
老實說,我覺得我完全可以在5個月內僅憑自己的力量完成整個軟件。整個解決方案的代碼行數不會超過24,000行(包括大量生成的代碼)——而我們團隊花了將近3年的時間來構建這個軟件。當然其中大部分時間都花在開會上,或者為瑣碎的功能爭論不休,比如我們是否應該使用特定的圖表來顯示某些數據,以及圖表應該使用什么顏色。就連我個人的項目都比我們開發的這個軟件更復雜。
當時我們團隊大約有20人,但開發出的軟件根本沒有什么可展示的。所有時間都耗費在溝通瓶頸、辦公室政治以及低效的工作流程上。有時,主管或“團隊負責人”會介入并“貢獻自己的力量”,給我們一些毫無價值的鼓勵,比如說一說為什么圖表應該使用哪個顏色,為什么信息應該以某種方式顯示等等——基本上就是一堆假大空。
不要以為這只是我對于這份工作的感受,其他的幾份工作也都是如此。
此外,有這類經歷的人不止我一個,與我交談過的許多程序員都抱怨他們編寫代碼的時間太少,大部分時間都浪費在了會議上。我們總是忙忙碌碌,卻沒有任何實質性的產出。在工作時間內,我們總是被各種事情折磨得焦頭爛額,從來沒有空閑時間。然而,我認為很多時候我們都是在白白浪費時間。
這些工作中遇到的另一個問題是不利于個人成長。在科技巨頭公司內,我們都是“螺絲釘”,在一個大項目中承擔一個很小的任務。自由開發者只需努力兩個月就能輕松超過我們1年的產出,請不要感到驚訝。
有時,你只是編寫了一小段代碼,卻要為此編寫50頁的文檔,還要進行一堆有用的和無用的測試。你做出的每一個決定都需要與同事和主管反復爭論。所以,我們辛辛苦苦努力1年才能完成一位開發人員只需兩個月就可以做完的工作。可悲的是,你習慣了碌碌無為,并在層層監視下,假裝努力工作。
后來,我回到了以前曾經工作過的一間小工作室,并在這里找到了內心的平靜和滿足。我使用的是C++和一些圖形API,包括OpenGL和DirectX。我們需要制作非常復雜的后期效果處理,比如顏色分級、色調映射、屏幕空間體積效果以及許多其他很酷的功能。
我們團隊只有3個人,我的另外兩位同事對工作充滿了熱情。每一天,我們都在積極地學習、探索和發現。我們編寫、構建和調試了大量代碼。我也終于有機會提高自己的數學水平,因為我們的任務需要應用非常復雜的數學知識。這里沒有辦公室政治、沒有廢話連篇,只有編寫代碼和不斷的學習。有時,我們也會會選擇加班,因為我們沉迷于手頭正在解決的問題。
此時此刻,我選擇為自己工作,做一些自由職業和一些短期的合同工,我感覺自己非常高效。我永遠不會回去為大公司工作,因為在那里我將一無所獲。在那些公司里,我的成就感為零,交不到任何朋友,搞不好還會樹敵。賺錢固然重要,但我寧愿用金錢換取成就感、樂趣以及充滿動力的工作,