【釘科技訊】你是要一個(gè)長時(shí)間工作的碼農(nóng),還是要一個(gè)有效率的碼農(nóng)?本文來自Quora一個(gè)問答帖《如何激發(fā)程序員自愿加班工作更長時(shí)間?》。
已退休的軟件總監(jiān)的Jim Seidman,2500+贊
在經(jīng)歷了數(shù)次創(chuàng)業(yè)以后,我對(duì)于某些總監(jiān)公開表現(xiàn)出的對(duì)程序員不屑一顧的態(tài)度,但同時(shí)又希望程序員能為他們加班的行為表示無法接受,我多次聽到過這樣的言論,“我真想把開發(fā)員鎖在一間屋子里,從門下面塞披薩給他們,等一個(gè)月后我就能拿到想要的軟件啦”。想想吧,你所要的產(chǎn)品正是出自被你認(rèn)為是下等人的、你從未想到要激勵(lì)過的程序員之手。
我曾經(jīng)在一家公司擔(dān)任開發(fā)部門的VP,一位新任的CEO命令我讓開發(fā)人員加班。當(dāng)我問及緣由時(shí),這位新CEO說道:加班是開發(fā)員應(yīng)該做的。我試圖從CEO那里得到些公司的愿景計(jì)劃,以用目標(biāo)驅(qū)動(dòng)的方式來激勵(lì)早已被發(fā)布折磨得精疲力盡的開發(fā)員加班,比如是否有一個(gè)銷售前景很好的需求?又或者我們遇到了強(qiáng)勁的競爭對(duì)手需要我們迎頭而上,或者我們的產(chǎn)品出現(xiàn)了缺陷需要開發(fā)員挑燈夜戰(zhàn)?然而我得到的回答卻是,不,沒有。這位CEO僅僅認(rèn)為,加班是開發(fā)人員的宿命。開發(fā)人員當(dāng)然不是傻子,他們能分得清哪些是有意義的加班,哪是來自斤斤計(jì)較的CEO的主觀意愿。
所以我對(duì)待這個(gè)問題的態(tài)度十分明顯。想要獲得為時(shí)幾個(gè)小時(shí)的加班所換來的是開發(fā)者的流失。即使你有充分的要不得不加班的理由,也請(qǐng)讓開發(fā)人員簡單明了的知曉。我見到過開發(fā)人員為了保證一項(xiàng)關(guān)鍵功能的按時(shí)上線、為了準(zhǔn)備一個(gè)大型的交易展示、為公司所做出的杰出的工作。所以,認(rèn)為請(qǐng)給加班一個(gè)正當(dāng)?shù)睦碛?,?qǐng)不要一廂情愿的為了壓榨開發(fā)人員而強(qiáng)迫他們加班。
產(chǎn)品經(jīng)理Steve Johnson的評(píng)論,200+ 贊
有爭議的是,如果我們將‘開發(fā)人員’換做‘銷售人員’的話,這個(gè)問題是否還成立。如何削減銷售人員的人力成本?如何讓銷售人員一周工作七天?如何讓銷售人員唯公司的利益至上?我對(duì)銷售VP的打擊士氣的做法有著深刻的體會(huì)。在對(duì)我的團(tuán)隊(duì)的超過預(yù)期的杰出工作表現(xiàn)表示感謝之后,他接著說,我在趕往夏威夷的途中特意趕來為你們?cè)诠ぷ魃系呐Ρ硎靖兄x,90%以上的銷售員不僅完成了最低的銷售指標(biāo),而且年銷售目標(biāo)也是指日可待。他們用自己的方式全年無休的在Maui島上工作著。感謝你們的辛苦付出。他的做法能激勵(lì)開發(fā)人員加班才怪。
碼農(nóng) William Pietri 的評(píng)論,920+ 贊
你的提問方式有問題,想要開發(fā)人員加班的做法是愚蠢的。Boss們真是想要的是多快好省的開發(fā)軟件。如果開發(fā)人員正在挖坑的話,那我我們不得不另外花費(fèi)幾周的時(shí)間來填補(bǔ)在幾個(gè)小時(shí)的加班時(shí)間中所挖的坑。但是對(duì)于軟件來說,我認(rèn)為這是不成立的,為什么這么說,請(qǐng)看‘生產(chǎn)性法則’ 的詳細(xì)描述。所以請(qǐng)指出的什么是Boss們真正想要的、并能幫開發(fā)人員理解問題的原因所在。如果想要訓(xùn)誡開發(fā)人員,請(qǐng)對(duì)他們關(guān)心的事情提供支持,比如…,如果想要提高持久戰(zhàn)的效率,請(qǐng)協(xié)助開發(fā)人員人員越過障礙輕裝上陣,如果想得到優(yōu)質(zhì)的軟件,請(qǐng)幫助開發(fā)人員了解使用軟件的用戶,了解軟件是將要如何使用的。
Christopher Pow的評(píng)論,100 贊
開一家公司, 為開發(fā)人員提供誘人的股份,提供豐盛的一日三餐,提供帶有桌球、乒乓球、電玩(小蜜蜂和大金剛是必須的,“時(shí)間危機(jī)III”就算了,實(shí)在是太爛了)的休息室,提供托兒所,提供醫(yī)療福利,為員工上下班提供安保措施,提供免費(fèi)的咖啡,蘇打水和健康小吃,提供足夠的白板,電腦電源,訂購高水準(zhǔn)的報(bào)刊雜志供 UI 開發(fā)人員參考。這樣就完成目標(biāo)的25%。接下來,告訴員工,他們可以在任何時(shí)候,以他們自己的方式,自由地組織,用他們覺得舒服的方式來完成工作,這樣你就完成了50%。完成上述事項(xiàng),然后每個(gè)季度出手闊綽地在當(dāng)?shù)赜忻膴蕵穲鏊屇愕拈_發(fā)人員呼朋喚友的聚一聚。這樣你就完成了75%。接下來要提供一兩桶kegerator生鮮啤酒,以及關(guān)于在工作時(shí)間飲酒“不要問,不要說的政策”,這樣就完成了99%。要達(dá)到100%,你還要為N個(gè)離婚埋單(N為你想要的員工數(shù)量)。
用生命在編程的Phil Darnowsky的評(píng)論,1600+贊
只需要向開發(fā)人員說明,他們的工作績效的衡量標(biāo)準(zhǔn)是努力的工作表現(xiàn),而并非是優(yōu)異的工作質(zhì)量。然后優(yōu)秀的開發(fā)人員會(huì)離職,然后留下比較差的開發(fā)人員來收拾爛攤子,然后在兩個(gè)月以后你會(huì)發(fā)現(xiàn)你的代碼庫將會(huì)變?yōu)槔?,搞定?/span>
自由開發(fā)者 Justen Robertson,2400+贊
與大多數(shù)人的觀點(diǎn)相反,大多數(shù)程序員有自己的家庭,朋友,子女和社交活動(dòng)。我們不需要‘驅(qū)動(dòng)’來工作更長的時(shí)間,我們需要管理人員給我們清晰、簡潔、便于理解的工作說明(我相信管理人員能做到以上三點(diǎn)),并以此為基礎(chǔ)來向我們開發(fā)人員詢問開發(fā)的預(yù)估時(shí)間(因?yàn)槿绻悴贿@樣做的話,將無法獲得每行代碼所有花費(fèi)的確切時(shí)間),從而制定一個(gè)安全理性的預(yù)期?!@將要花費(fèi)120個(gè)人時(shí)左右’的回答并不意味著‘我們實(shí)際需要花費(fèi)100個(gè)人時(shí),如果你把這個(gè)數(shù)字砍到80個(gè)人時(shí)的話,剩下的40個(gè)人時(shí)對(duì)你來說就是免費(fèi)的,我們只能用帶薪加班的方式來完成剩余的工作’軟件開發(fā)的時(shí)間成本不能像其他的商品一樣討價(jià)還價(jià),我們也沒有無聊到找不到比免費(fèi)加班更有趣的事情做。上述不是憤怒的、郁悶的吐槽;我所供職的公司為我提供了上述的一切,結(jié)果是我們按時(shí)、按預(yù)算完成了項(xiàng)目,并且讓花錢的用戶感到物有所值,而并非是強(qiáng)勢銷售人員所想象的用戶將會(huì)很樂意的埋單。這個(gè)問題令我感到不快。
George Gonzalez的評(píng)論,730+贊
在搞什么?特么的在搞什么???程序員已經(jīng)在洗澡,駕車上班的途中,有時(shí)在睡夢中都在思考工作。你和你的開發(fā)人員簽訂了合同,一個(gè)合法的民事法律條文。在雙方正式在合同上簽字以前就已經(jīng)存在了口頭上的承諾和一定的預(yù)期。如果想要變更合同的話,從法律和道德的角度上來說,需要重新協(xié)商雇傭合同。程序員理所當(dāng)然的想要得到等多的報(bào)酬,如果你想要他們加班的話可能還需要再付多一點(diǎn)。(事先你最好確認(rèn)一下這樣的勞動(dòng)合同是否符合你所在地的法律,當(dāng)?shù)氐姆墒欠駨?qiáng)制發(fā)給員工付加班費(fèi))。
請(qǐng)注意以下幾點(diǎn):
(1) 大多數(shù)人在經(jīng)歷了一天為時(shí)八小時(shí)的集中精力的工作后都會(huì)感到疲憊。在一天的工作中我們可能會(huì)碰壁,實(shí)際上整天都在做無用功。更糟糕的是我們開始做出了錯(cuò)誤的決定。你真的想讓他們?cè)谧詈蟮膬蓚€(gè)小時(shí)中搞定一天中的工作?
(2) 如果沒有提供好的機(jī)器、大的顯示器、快速的硬盤,高速的網(wǎng)絡(luò)和一個(gè)安靜的,沒有電話,沒有會(huì)議,沒有形式主義、朝令夕改、繁文縟節(jié)的環(huán)境,那么很多程序員的工作時(shí)間實(shí)際上都被浪費(fèi)掉了,很多開發(fā)人員的工作效率會(huì)降低。我曾工作過的地方,哪怕管理層知道一點(diǎn)點(diǎn),那效率幾乎能翻兩番。有必要每周開兩次會(huì)議用來討論“我們delay了”么?
所以在號(hào)召大家加班之前,請(qǐng)檢討是否能設(shè)法提高開發(fā)人員的效率。如果你向開發(fā)人員詢問的話你會(huì)大吃一驚,如果你采納了他們的建議的話,結(jié)果會(huì)令你更加吃驚。
你可以在銷售上說我們有硬性指標(biāo),但你不能對(duì)沒有認(rèn)可的事情做出承諾。我曾在這樣的公司工作過,這里的銷售人員常說我們的程序員可以在下周交出任何你想要的程序。
可能你在向開發(fā)人員要一個(gè)日程表時(shí)會(huì)有自己的底線,但你實(shí)際上采用了開發(fā)人員提供的時(shí)間表。很多公司的高級(jí)管理層會(huì)武斷地砍掉1/3到1/2的開發(fā)時(shí)間,然后設(shè)法讓項(xiàng)目按時(shí)上線。
不論何時(shí), 就像你發(fā)現(xiàn)金子一樣,軟件在交付時(shí)意味著可以使用。不能拔苗助長,只能順其自然。就在上個(gè)星期我不得不花額外的一天時(shí)間用來整理預(yù)期之外的、沒能正常工作的、糟亂的代碼。另外的半天加班時(shí)間花費(fèi)了在一個(gè)近期剛發(fā)現(xiàn)的,發(fā)生在7年前source上的一個(gè)小缺陷。另外一天加班是因?yàn)橐拚齀E8 的缺陷。昨天他們想把用戶接口(user-interface)由數(shù)字輸入改為菜單,這項(xiàng)變更涉及到了所有的代碼。今天我的代碼有幾次崩潰,經(jīng)調(diào)查發(fā)現(xiàn)代碼中有三處不同的離一錯(cuò)誤(off-by-one errors)導(dǎo)致不定時(shí)的吃內(nèi)存。
上面的事例都是不可預(yù)見的,除了下面典型的做法:預(yù)估代碼中又會(huì)1/3到超過一半的未知的缺陷數(shù)量,要為此增加至少1/3的工時(shí)。超過1/3到1/2的預(yù)報(bào)工時(shí)通常會(huì)被管理層砍掉。
進(jìn)一步,從管理的角度來說,管理人員從未接觸過編程,他們認(rèn)為程序員并沒有做什么,因?yàn)樗麄兛雌饋硐袷窃诖蜃?、或者兩眼放空,或者在白板上畫一些盒子和箭頭,或者在吃奇多(Cheetos:一種膨化食品)。程序員僅僅是打字員,他們的工作通??雌饋聿⒉皇鞘值男量?。程序員的工作給不了解編程的人們是會(huì)容易帶來這種印象。但是很多時(shí)候程序員的的確確是在很努力的工作,只不過繁重勞動(dòng)場景是出現(xiàn)在他們的腦中而已,然后試圖用一些死板的計(jì)算機(jī)語言去實(shí)現(xiàn)他們腦中的想法。這是最辛苦的工作之一。這需要大量的發(fā)呆, 需要在白板上畫盒子再用箭頭把盒子連起來,需要在白板前比劃,需要大量的可樂、膨化食品為編程的過程補(bǔ)充能量。不能僅僅因?yàn)樗麄兛雌饋聿幻β?,就以為什么都也沒有做。
掃描二維碼關(guān)注釘科技
【關(guān)于釘科技】
釘子,代表著鉆研和進(jìn)取,與互聯(lián)網(wǎng)精神的專業(yè)、垂直、單點(diǎn)突破一脈相承。
釘科技(m.antoniomartinocouture.com),致力于秉承釘子精神,打造為TMT領(lǐng)域最專業(yè)的科技新媒體。
歡迎加入釘科技QQ群,與我們一起探討TMT創(chuàng)新:釘科技TMT交流群 312438705
歡迎添加微信號(hào)(dingkeji2015)關(guān)注釘科技微信公號(hào)。投稿請(qǐng)發(fā)至:dingkeji2015@163.com。
- QQ:61149512