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