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