程序員該如何應(yīng)對(duì)老板和客戶的施壓
那一天,你正靜靜地坐在辦公室里寫(xiě)代碼。突然,你的老板沖進(jìn)房間,急切地要求寫(xiě)一個(gè)功能。你甚至都沒(méi)聽(tīng)清楚功能確切的要求:
“現(xiàn)在市場(chǎng)迫切需要這個(gè)功能,……(然后一堆廢話)。這應(yīng)該用不了太多時(shí)間,我的意思是,庫(kù)是現(xiàn)成的,對(duì)吧?加上你們又很聰明!我們需要超前于市場(chǎng)的速度!…三周時(shí)間,OK?趕緊寫(xiě)一個(gè)1小時(shí)后上線的可行性評(píng)估。好了,抓緊!”
你知道你的老板——在你不知不覺(jué)中——將你推到了一種什么樣的境地嗎?
屏住呼吸1分鐘
上面這種提出功能要求的場(chǎng)景看似夸張了點(diǎn),但是我在現(xiàn)實(shí)生活中,已經(jīng)看過(guò)無(wú)數(shù)次類似的場(chǎng)景。
這是一種警示,這個(gè)故事告訴我們,作為程序員,我們得認(rèn)識(shí)到事情的嚴(yán)重性,然后立刻回絕。不要盲目接受扔給你的任何亂七八糟的工作。
下面讓我們依次來(lái)看一看這4句警示語(yǔ)。
現(xiàn)成的解決方案—— “已經(jīng)有現(xiàn)成的庫(kù)/解決方案”
這實(shí)際上是一把雙刃劍。一方面,一大批數(shù)量驚人的開(kāi)發(fā)人員趨向于重復(fù)性的勞動(dòng)工作,回避現(xiàn)成的解決方案。用戶注冊(cè)和登錄?讓我們從頭開(kāi)始寫(xiě)一個(gè)新的用戶管理系統(tǒng)吧!
而另一方面,這同樣會(huì)導(dǎo)致適得其反。當(dāng)公司突然發(fā)現(xiàn)已經(jīng)有現(xiàn)成的,易于定制的解決方案,那么你編寫(xiě)的程序很有可能就會(huì)被棄若敝履。不但你的勞動(dòng)成果永無(wú)出頭之日,并且由于類似的解決方案的存在,還會(huì)看輕需要你實(shí)施的整合等任務(wù)。
無(wú)論現(xiàn)在有多少現(xiàn)成的庫(kù),也不論你實(shí)現(xiàn)過(guò)多少類似的需求,都不能將功能重疊和再利用視為理所應(yīng)當(dāng)簡(jiǎn)單的工作。
你可以這么回答:“在經(jīng)過(guò)仔細(xì)分析和需求解構(gòu)之后,我才能告訴你那些現(xiàn)成的庫(kù)/解決方案是否適用。”
給你戴高帽子—— “你超級(jí)聰明!”
高帽子人人愛(ài)戴,我也是如此,因而在我職業(yè)生涯的早期,我時(shí)常頭腦一熱就接下人人唯恐不及的大麻煩。所以如果老板突然開(kāi)始贊美你,那就要小心了。
特別是如果你是一個(gè)自由職業(yè)者,當(dāng)你的客戶這樣說(shuō)的時(shí)候,那你心中就要拉響警報(bào)了。客戶給你戴高帽子的目的無(wú)非是想省錢(qián)——既然你是如此的聰明,那 么就應(yīng)該沒(méi)有解決不了的問(wèn)題,并且解決問(wèn)題所用的時(shí)間就應(yīng)該比那些普通智商的家伙要短。比如說(shuō)烤披薩,別人要10-12分鐘,那么從字面上你就應(yīng)該只需要 30秒時(shí)間。
如果你同意了這種“預(yù)估”,但是卻發(fā)現(xiàn)仍然需要10分鐘時(shí)間,我敢保證,你的自尊和自負(fù)讓你很難放下身段灰溜溜地回去找客戶,“對(duì)不起,我沒(méi)有你說(shuō)的那么聰明,我需要多花10倍的時(shí)間”。
你可以這么回答:“很不幸,此需求的復(fù)雜性與聰明才智無(wú)關(guān)。如果你想要,我當(dāng)然也可以用一分鐘的時(shí)間給你一個(gè)新鮮的意大利披薩。但是,為了確保它的美味和可食用,你肯定希望能夠多烤一會(huì)兒,對(duì)吧?“
咦,說(shuō)好的4句警示語(yǔ)呢???
別急,還有2句在這里:
成為市場(chǎng)先驅(qū)的光榮——“我們需要超前于市場(chǎng)速度!…三周時(shí)間,OK?!”
一個(gè)優(yōu)秀的軟件產(chǎn)品確實(shí)不僅需要強(qiáng)硬的技術(shù)實(shí)力,更需要結(jié)合天時(shí)與地利。產(chǎn)品超前市場(chǎng)無(wú)可厚非,甚至也是一個(gè)開(kāi)發(fā)目標(biāo),但是盲目的超前不僅會(huì)給開(kāi)發(fā)者帶來(lái)巨大的壓力,其結(jié)果也往往事與愿違。
你可以這么回答:“這個(gè)功能的編碼時(shí)間不會(huì)太久,但是我們?cè)陂_(kāi)發(fā)前仍需要做一些分析,以及開(kāi)發(fā)完成后做一些測(cè)試,我想你和你的客戶不愿意使用滿是bug的系統(tǒng)吧。”
展示技術(shù)實(shí)力的沖動(dòng)——“趕緊寫(xiě)一個(gè)1小時(shí)后上線的可行性評(píng)估。”
小時(shí)級(jí)的開(kāi)發(fā)周期對(duì)于修復(fù)一些bug還可以,如果是開(kāi)發(fā)新功能,那真的是不可取的。你可以這么回答:“讓我先花一小時(shí)出去吃個(gè)午飯,回來(lái)再跟您探討一下1小時(shí)后上線的可行性。”
譯者注:最后2點(diǎn)作者并沒(méi)有詳細(xì)展開(kāi),譯者根據(jù)自己的經(jīng)驗(yàn)進(jìn)行了闡述,望各位網(wǎng)友可以補(bǔ)充。
譯文鏈接:http://www.codeceo.com/article/programmer-and-boss.html
英文原文:4 WAYS YOUR BOSS OR CLIENT PUTS PRESSURE ON YOU AND HOW TO REACT