請不要一廂情願地為了壓榨開發人員而強迫他們加班

edithfang發表於2015-04-10
已退休的軟體總監的Jim Seidman,2500+贊

在經歷了數次創業以後,我對於某些總監公開表現出的對程式設計師不屑一顧的態度,但同時又希望程式設計師能為他們加班的行為表示無法接受,我多次聽到過這樣的言論,“我真想把開發員鎖在一間屋子裡,從門下面塞披薩給他們,等一個月後我就能拿到想要的軟體啦”。想想吧,你所要的產品正是出自被你認為是下等人的、你從未想到要激勵過的程式設計師之手。

我曾經在一家公司擔任開發部門的VP,一位新任的CEO命令我讓開發人員加班。當我問及緣由時,這位新CEO說道:加班是開發員應該做的。我試圖從CEO那裡得到些公司的願景計劃,以用目標驅動的方式來激勵早已被髮布折磨得精疲力盡的開發員加班,比如是否有一個銷售前景很好的需求?又或者我們遇到了強勁的競爭對手需要我們迎頭而上,或者我們的產品出現了缺陷需要開發員挑燈夜戰?然而我得到的回答卻是,不,沒有。這位CEO僅僅認為,加班是開發人員的宿命。開發人員當然不是傻子,他們能分得清哪些是有意義的加班,哪是來自斤斤計較的CEO的主觀意願。

所以我對待這個問題的態度十分明顯。想要獲得為時幾個小時的加班所換來的是開發者的流失。即使你有充分的要不得不加班的理由,也請讓開發人員簡單明瞭的知曉。我見到過開發人員為了保證一項關鍵功能的按時上線、為了準備一個大型的交易展示、為公司所做出的傑出的工作。所以,認為請給加班一個正當的理由,請不要一廂情願地為了壓榨開發人員而強迫他們加班。
 
產品經理Steve Johnson的評論,200+ 贊

有爭議的是,如果我們將‘開發人員’換做‘銷售人員’的話,這個問題是否還成立。如何削減銷售人員的人力成本?如何讓銷售人員一週工作七天?如何讓銷售人員唯公司的利益至上?我對銷售VP的打擊士氣的做法有著深刻的體會。在對我的團隊的超過預期的傑出工作表現表示感謝之後,他接著說,我在趕往夏威夷的途中特意趕來為你們在工作上的努力表示感謝,90%以上的銷售員不僅完成了最低的銷售指標,而且年銷售目標也是指日可待。他們用自己的方式全年無休的在Maui島上工作著。感謝你們的辛苦付出。他的做法能激勵開發人員加班才怪。
 
碼農 William Pietri 的評論,920+ 贊

你的提問方式有問題,想要開發人員加班的做法是愚蠢的。Boss們真是想要的是多快好省的開發軟體。如果開發人員正在挖坑的話,那我我們不得不另外花費幾周的時間來填補在幾個小時的加班時間中所挖的坑。但是對於軟體來說,我認為這是不成立的,為什麼這麼說,請看‘生產性法則’ 的詳細描述。所以請指出的什麼是Boss們真正想要的、並能幫開發人員理解問題的原因所在。如果想要訓誡開發人員,請對他們關心的事情提供支援,比如…,如果想要提高持久戰的效率,請協助開發人員人員越過障礙輕裝上陣,如果想得到優質的軟體,請幫助開發人員瞭解使用軟體的使用者,瞭解軟體是將要如何使用的。
 
Christopher Pow的評論,100 贊

開一家公司, 為開發人員提供誘人的股份,提供豐盛的一日三餐,提供帶有桌球、乒乓球、電玩(小蜜蜂和大金剛是必須的,“時間危機III”就算了,實在是太爛了)的休息室,提供託兒所,提供醫療福利,為員工上下班提供安保措施,提供免費的咖啡,蘇打水和健康小吃,提供足夠的白板,電腦電源,訂購高水準的報刊雜誌供 UI 開發人員參考。這樣就完成目標的25%。接下來,告訴員工,他們可以在任何時候,以他們自己的方式,自由地組織,用他們覺得舒服的方式來完成工作,這樣你就完成了50%。完成上述事項,然後每個季度出手闊綽地在當地有名的娛樂場所讓你的開發人員呼朋喚友的聚一聚。這樣你就完成了75%。接下來要提供一兩桶kegerator生鮮啤酒,以及關於在工作時間飲酒“不要問,不要說的政策”,這樣就完成了99%。要達到100%,你還要為N個離婚埋單(N為你想要的員工數量)。免責宣告:我曾在兩家創業公司工作過,在經歷了無數個長達80個小時的加班(包括這個週日的早上)後的一個禮拜天的早上,在我接到我老婆的三通電話以後,我最終決定把這個該死的問題留到週一再解決吧。就在這天的中午,我接到call並被老闆詰問,“你是不是不想幹了,如果是的話,我好找人手頂替你…”。
 
用生命在程式設計的Phil Darnowsky的評論,1600+贊

只需要向開發人員說明,他們的工作績效的衡量標準是努力的工作表現,而並非是優異的工作質量。然後優秀的開發人員會離職,然後留下比較差的開發人員來收拾爛攤子,然後在兩個月以後你會發現你的程式碼庫將會變為垃圾,搞定。
 
自由開發者 Justen Robertson,2400+贊

與大多數人的觀點相反,大多數程式設計師有自己的家庭,朋友,子女和社交活動。我們不需要‘驅動’來工作更長的時間,我們需要管理人員給我們清晰、簡潔、便於理解的工作說明(我相信管理人員能做到以上三點),並以此為基礎來向我們開發人員詢問開發的預估時間(因為如果你不這樣做的話,將無法獲得每行程式碼所有花費的確切時間),從而制定一個安全理性的預期。‘這將要花費120個人時左右’的回答並不意味著‘我們實際需要花費100個人時,如果你把這個數字砍到80個人時的話,剩下的40個人時對你來說就是免費的,我們只能用帶薪加班的方式來完成剩餘的工作’軟體開發的時間成本不能像其他的商品一樣討價還價,我們也沒有無聊到找不到比免費加班更有趣的事情做。上述不是憤怒的、鬱悶的吐槽;我所供職的公司為我提供了上述的一切,結果是我們按時、按預算完成了專案,並且讓花錢的使用者感到物有所值,而並非是強勢銷售人員所想象的使用者將會很樂意的埋單。這個問題令我感到不快。

George Gonzalez的評論,730+贊

在搞什麼?特麼的在搞什麼啊?程式設計師已經在洗澡,駕車上班的途中,有時在睡夢中都在思考工作。你和你的開發人員簽訂了合同,一個合法的民事法律條文。在雙方正式在合同上簽字以前就已經存在了口頭上的承諾和一定的預期。如果想要變更合同的話,從法律和道德的角度上來說,需要重新協商僱傭合同。程式設計師理所當然的想要得到等多的報酬,如果你想要他們加班的話可能還需要再付多一點。(事先你最好確認一下這樣的勞動合同是否符合你所在地的法律,當地的法律是否強制發給員工付加班費)。

請注意以下幾點:

(1) 大多數人在經歷了一天為時八小時的集中精力的工作後都會感到疲憊。在一天的工作中我們可能會碰壁,實際上整天都在做無用功。更糟糕的是我們開始做出了錯誤的決定。你真的想讓他們在最後的兩個小時中搞定一天中的工作?

(2) 如果沒有提供好的機器、大的顯示器、快速的硬碟,高速的網路和一個安靜的,沒有電話,沒有會議,沒有形式主義、朝令夕改、繁文縟節的環境,那麼很多程式設計師的工作時間實際上都被浪費掉了,很多開發人員的工作效率會降低。我曾工作過的地方,哪怕管理層知道一點點,那效率幾乎能翻兩番。有必要每週開兩次會議用來討論“我們delay了”麼?

所以在號召大家加班之前,請檢討是否能設法提高開發人員的效率。如果你向開發人員詢問的話你會大吃一驚,如果你採納了他們的建議的話,結果會令你更加吃驚。

你可以在銷售上說我們有硬性指標,但你不能對沒有認可的事情做出承諾。我曾在這樣的公司工作過,這裡的銷售人員常說我們的程式設計師可以在下週交出任何你想要的程式。

可能你在向開發人員要一個日程表時會有自己的底線,但你實際上採用了開發人員提供的時間表。很多公司的高階管理層會武斷地砍掉1/3到1/2的開發時間,然後設法讓專案按時上線。

不論何時, 就像你發現金子一樣,軟體在交付時意味著可以使用。不能拔苗助長,只能順其自然。就在上個星期我不得不花額外的一天時間用來整理預期之外的、沒能正常工作的、糟亂的程式碼。另外的半天加班時間花費了在一個近期剛發現的,發生在7年前source上的一個小缺陷。另外一天加班是因為要修正IE8 的缺陷。昨天他們想把使用者介面(user-interface)由數字輸入改為選單,這項變更涉及到了所有的程式碼。今天我的程式碼有幾次崩潰,經調查發現程式碼中有三處不同的離一錯誤(off-by-one errors)導致不定時的吃記憶體。

上面的事例都是不可預見的,除了下面典型的做法:預估程式碼中又會1/3到超過一半的未知的缺陷數量,要為此增加至少1/3的工時。超過1/3到1/2的預報工時通常會被管理層砍掉。

進一步,從管理的角度來說,管理人員從未接觸過程式設計,他們認為程式設計師並沒有做什麼,因為他們看起來像是在打字、或者兩眼放空,或者在白板上畫一些盒子和箭頭,或者在吃奇多(Cheetos:一種膨化食品)。程式設計師僅僅是打字員,他們的工作通常看起來並不是十分的辛苦。程式設計師的工作給不瞭解程式設計的人們是會容易帶來這種印象。但是很多時候程式設計師的的確確是在很努力的工作,只不過繁重勞動場景是出現在他們的腦中而已,然後試圖用一些死板的計算機語言去實現他們腦中的想法。這是最辛苦的工作之一。這需要大量的發呆, 需要在白板上畫盒子再用箭頭把盒子連起來,需要在白板前比劃,需要大量的可樂、膨化食品為程式設計的過程補充能量。不能僅僅因為他們看起來不忙碌,就以為什麼都也沒有做。
相關閱讀
評論(1)

相關文章