再一次犧牲了午休的時間,在下午三點多的時候,劉祎峰總算是完成了一個需求,提交給了黎笑笑開始測試。
雖然午飯前黎笑笑和他提到開發(fā)進度滯后的時候,他插科打諢地地蒙了過去,黎笑笑也沒有再深說,但是他自己知道這并不是什么開玩笑的事。這個需求是組內(nèi)三個人合作完成的,界面和緩存部分都已經(jīng)完成了,最后卡在由他負責的后臺服務上。滯后的原因倒不是因為他能力不夠或者效率太低,只是單純地因為他在年前請了兩天假。出來混,總是要還的,這樣想著,他不得不盡快把失去的進度追回來,好像又回到了支援測試那個時候。
他長長地伸了個懶腰,然后站起身,在椅子周圍踱了幾步。估計了一下,還有一個需求今天晚上下班前應該能完成,實在不行晚上加班也搞得定。今天原計劃的任務是沒時間做了,明天再加班還債吧。
任務完成的成就感,和工作效率比較高的滿足感,讓他心情舒暢。不過身體上的疲勞是無法回避的,他只想了一下,就決定去便利店買點飲料。原本打算買咖啡,不過到了店里他還是習慣性地買了可樂。
回到座位上,看到有聊天信息。點開一看,是黎笑笑發(fā)來的,前后兩條。
第一條是在他剛離開座位不久發(fā)過來的:“看到你提測的需求了,有點問題?!?p> 第二條是在那之后兩分鐘:“沒在?那我先提bug了?!?p> 他一愣神,趕緊坐在電腦前,點開任務列表,果然有一條新提出來的bug,注釋上寫著:“實現(xiàn)與需求不符?!?p> 明明我自己驗證過,怎么會不符呢?他疑惑地打開了需求文檔,對照著這條需求,一句一句地看,又打開測試用的手機,把這個功能一步一步地驗證,試了兩次,都沒發(fā)覺有什么問題。
他有些生氣。明明一切正常,為什么黎笑笑驗證不通過?他在開發(fā)時使用的是開發(fā)環(huán)境,黎笑笑測試用的是測試環(huán)境,難道是環(huán)境或者數(shù)據(jù)的問題?可是也沒什么大的差別啊……
他一邊想著,一邊給黎笑笑發(fā)了條消息:“我看到那個bug了。怎么會出錯?我是對著需求文檔一步一步驗的,沒問題?。俊?p> 過了一會兒,黎笑笑回復了消息:“你在座位上嗎?”
“在。”劉祎峰立刻回復道。
過了一會兒,他想了想,又發(fā)了一條消息:“我來找你?”
他盯著聊天界面,等著黎笑笑回答,可是一直沒有反應。又等了一會兒,他聽到高跟鞋咯嗒咯嗒的聲音由遠而近。除了劉祎峰,還有幾個人聽到聲音,都停下了手里的工作往門口看過去。
很快,黎笑笑就抱著筆記本電腦出現(xiàn)在門口,稍微張望了一下,徑直往劉祎峰這邊走過來。
劉祎峰仰頭看著她,隨意地打了個招呼:“HI~”
“Hi?!崩栊π喍痰鼗貞艘痪?,把電腦放在劉祎峰旁邊。
看到黎笑笑低頭彎腰操作電腦的樣子,劉祎峰站起身,把椅子推給黎笑笑,說:“坐?!?p> “不用了。你看這個……”黎笑笑徑直說了下去。
劉祎峰又低頭看看黎笑笑的高跟鞋。在印象中,除了排練節(jié)目那幾次她穿了平底鞋,其它時候她總是穿著鞋跟又細又高的鞋子,看起來就很容易摔跤的那種,她倒是一直走得穩(wěn)穩(wěn)當當。劉祎峰也不聽她說話,徑自把椅子推到她身后,一直到碰到她的腿。
“……謝謝?!崩栊πσ矝]再推辭,回頭看了看就坐下了。
這一次不等她再說話,劉祎峰拿起測試手機就開始操作。
“你看啊,這里這樣……然后點這里……這樣……你再看,這是需求文檔,這里是這么寫的……”劉祎峰一邊演示,一邊指著需求文檔,對照著給黎笑笑看?!斑@個再這么操作……出來了吧……然后再……”
全部結束之后,他向黎笑笑問道:“這不是和需求文檔一模一樣嗎?你看哪里有問題,這么快就給我打回來了?”
黎笑笑抬頭看了看他,心平氣和地說:“你先別著急?!?p> 劉祎峰這時才察覺到自己有些激動,剛才的語氣很沖,而且自己無意間已經(jīng)貼黎笑笑太近了——當然只是相對正常情況來說,實際上還隔著挺遠呢。他趕緊往旁邊挪動了一小步,覺得臉有些發(fā)燒,才想起還穿著大衣,就把大衣脫掉搭在黎笑笑正坐著的椅子靠背上。
“不,倒不是著急,我是不太明白。”劉祎峰努力讓自己的語氣輕松一點。
黎笑笑微微一笑,沒急著說話,明亮的眼睛四下看了看。
劉祎峰知道她是在給自己另找一把椅子,就說道:“沒事兒,我站一會兒活動活動。你說吧?!?p> 黎笑笑也不再客氣,說道:“這里你是把原本設計者的目的搞錯了?!?p> “目的?”劉祎峰有些不明白,皺起了眉毛。
他在畢業(yè)之后的幾年里,一直做的是后臺開發(fā),從沒直接接觸過面向客戶的需求。一般來說,需求都是針對游戲界面、操作或者其它直接能看到的內(nèi)容的;以在游戲里開寶箱這個簡單的需求為例,會先經(jīng)過架構師進行分析,有設計師負責兩面和動畫效果,有前端的開發(fā)人員做功能,需要向服務器拿哪些數(shù)據(jù)、觸發(fā)哪些變化由后臺的開發(fā)人員完成。所以他一直以來看到的需求,都是非常明確和量化的:提供什么樣的數(shù)據(jù),什么樣的接口,等等。他的工作內(nèi)容,就是根據(jù)同事們提過來的要求,設計相應的結構,開發(fā)出他們所需要的服務。這是他第一次直接和需求打交道,沒想到卻碰了個釘子。黎笑笑的話讓他不由得想起高中時老師常常掛在嘴邊的話:你們要理解出題人的目的。
黎笑笑開始娓娓道來:“這里是這樣的,你看需求里面是這樣寫的……實際上,這里需要……再和這個結合起來……這里要顯示的數(shù)值是……”
講到一半,她稍微停頓了一下,坐在左邊位置上的開發(fā)卻插嘴道:“原來是這個意思。我自己做的,都沒看出來?!?p> 這個人是參與這個需求的三個開發(fā)之一,負責前端界面。劉祎峰本來聽得很專注,他突然一說話,把他嚇了一跳。他兩邊看看,發(fā)現(xiàn)有五六個開發(fā)都擠過來聽黎笑笑的講解。他心想,這幫宅男,真給美女捧場;剛想打趣嘲諷一下他們,一回頭,卻發(fā)現(xiàn)查理也站在他身后,伸長了脖子在仔細聽著,只好把到嘴邊的話再吞回去。
黎笑笑也才發(fā)覺圍了這么多人,抱歉地說:“哎呀,不好意思沒注意,打擾到大家了……”
“沒事兒,你繼續(xù)吧,我們聽聽?!辈槔碚f。
這時又有兩個人湊了過來。
黎笑笑向著查理點點頭,就繼續(xù)講了下去,只是多少有些不自在的樣子。最后,她向劉祎峰說道:“你覺得我說得對嗎?”
劉祎峰沒有說話。黎笑笑剛開始講不久,他就已經(jīng)知道自己對需求的理解從一開始就出現(xiàn)了偏差。這時,他已經(jīng)在思考如何調(diào)整,之前寫的代碼有多少可用,幾個服務間是不是需要配合……
一直到黎笑笑輕輕在他手臂上推了一下,他才反應過來,趕緊回答道:“明白了,明白了。之前是想錯了。不過……你說原本的目的,這個的產(chǎn)品經(jīng)理應該是鄭總吧?”
“對的?!崩栊πφf?!斑@個地方我是和她確認過的。不過有一段時間了,要找當時的聊天記錄得花點時間?!?p> “不用不用?!眲⒌t峰說。“我就是出于保險起見多問一句。”
黎笑笑一笑,說道:“那你這個什么時候能提測?”
“嗯……下班之前吧?!?p> “那你加油吧?!崩栊πφf著站起身,抱起電腦離開了。
“謝謝了啊?!眲⒌t峰向著黎笑笑的背影說了一句,黎笑笑略微回了下頭,擺了擺手。
聚集過來的人們也各自回到座位上,只有查理沒走。等到黎笑笑的腳步聲已經(jīng)快要聽不到了,查理才小聲對劉祎峰贊嘆道:“這小姑娘挺厲害啊?!?p> “怎么?”劉祎峰一邊把椅子背上的大衣重新搭得平整一些,一邊問道。
“像她剛才講的那些東西,一般的測試根本就不知道,更不要說講得這么明白了?!辈槔碚f?!爸坝羞^類似的需求,我們也是完全按著需求做的,測試也通過了,到產(chǎn)品確認的時候才給打回來?!?p> “確實,她想得挺深的。”劉祎峰點點頭說道,卻覺得查理好像有話想說,就反問道:“怎么了?”
“沒事兒?!辈槔頁u搖頭回去了。
“哎我說,她是不是就是年會那時候把人罵哭了的那個?”左邊那個開發(fā)探過頭來,壓低了聲音問道。
劉祎峰本不想談論這件事,不過已經(jīng)問到頭上,只好默默地點點頭。
從年會之后,劉祎峰已經(jīng)聽到了好幾個版本的傳言。有的說黎笑笑因為嫉妒李恬跳舞比她好,所以才罵了她;有的說李恬的鞋子壞了,只好換了雙鞋,黎笑笑卻不依不饒;最夸張的一個版本,是說黎笑笑打了李恬兩個耳光,就是想讓李恬沒辦法上臺表演,不過李恬還是堅持演完了。無論哪個版本,都把李恬描述成了一個受害者。
剛開始,他對這些流言都付之一笑,誰知道越傳越離譜。關系比較親密的人來問他時,他會把起因和經(jīng)過都大致講一遍;可是其它人就只能隨便他們說去,他也沒什么立場到處去幫黎笑笑說好話,只好暗自生一些悶氣。
“看不出來呀?!蹦莻€開發(fā)又說了一句,見劉祎峰不搭茬,自覺沒趣,也就不再說了。
劉祎峰努力不再想亂七八糟的事,把思路轉(zhuǎn)回到工作上來。他回想了一下剛才黎笑笑講的東西,又仔細看了一遍需求文檔,才開始修改代碼。
他正在專心工作,卻有人從后面拍了拍他的肩膀,回頭一看,原來是陳翰。他站起身,覺得肩膀有些累,看了下時間,才知道自己已經(jīng)連續(xù)寫了兩個小時的代碼了。
“什么事?”他問道。
陳翰只是沖著他招招手,示意他到外面去。劉祎峰保存了一下代碼,兩人一前一后出了門。
“之前年會上你們不是表演節(jié)目了嘛。”陳翰說。
“啊,對呀。”
“沒得什么大獎,不過有鼓勵獎三百塊。所以我想大家一起吃個飯吧。今天晚上你有空嗎?”
劉祎峰一下笑了出來:“吃飯?那個樣子,還要一起吃飯?”
“不是?!标惡惨残α?,擺擺手,說:“分兩撥。今天晚上是你和小黎。大叔和……和其它人我再另找時間?!?p> “哦,那還可以。”劉祎峰一邊在心里估計著工作的進度,一邊順口問道:“那小黎呢?”
“她能去。”
“那好,我也去?!蹦X子里還沒估計出個結果,他已經(jīng)自動回答了。
“好?;仡^我把地址發(fā)給你。我開車還你和小黎一起過去,下班時再聯(lián)系,看是你們跟我一起下去停車場還是在門口等我。”陳翰說。
“好?!?p> “行,那就這樣吧……哦對了,鄭總今天晚上也會來。她說正好沒飯轍,就過來湊個熱鬧?!?p> 劉祎峰頓時有些不想去了。吃飯時有個大領導在場,實在很受約束;但是這時又不能再推辭,只好簡單地答應了一下。
陳翰走之后,劉祎峰回到座位上回想了一下,在新員工培訓時,鄭總講了一節(jié)課,然后好像就再也沒見過她了。說起來她還是SK的產(chǎn)品經(jīng)理來著。她的長相……記憶有點模糊,可別到時候認不出來。好像她的名字還挺好玩的來著?
他搖搖頭,又加緊開始工作。晚上不能加班,后面幾天的壓力更大了。
到了下班時間,劉祎峰和陳翰、黎笑笑打了招呼,約好去地下停車場見面。電梯前有很多人在等,劉祎峰左右看看,只看到了黎笑笑,沒看到陳翰。兩人互相點點頭打了招呼。
下班時的電梯,只比高峰時的地鐵好一點,沒到人貼著人的程度而已。雖然已經(jīng)滿員,但是仍然每層都停,這讓劉祎峰又一次在心里吐槽這算法太不智能了。
到了停車場這一層,大家都走出電梯,四面八方地散開了,只剩下劉祎峰和黎笑笑。
“他的車停在哪兒,你知道嗎?”劉祎峰問道。
黎笑笑搖搖頭:“我也沒問?!?p> “那我打個電話問問?!眲⒌t峰說著拿出手機。
“再等一會兒吧?!崩栊πφf著看了一眼手表?!八麘撨€沒下來?!?p> “好吧?!眲⒌t峰又把手機塞進口袋,想了想,說:“對了,臨下班之前我提測了?!?p> “我看到了。本來我想今天晚上測的,只能明天再看了。你那還有一個需求壓著呢吧?!?p> “哎呀,你是周扒皮嗎?”劉祎峰笑著說。
“那你就是小長工嘍?”黎笑笑轉(zhuǎn)過臉來看著他,笑著回答。
沒想到黎笑笑接得這么快,劉祎峰哈哈大笑起來,過了一會兒,才說道:“明天應該能完成。不過可能還得先請教你一下,免得又像今天一樣做偏了?!?p> “請教可不敢當……不過說起來,你脾氣還真好?!?p> “嗯?什么意思?”劉祎峰仔細回想了一下,怎么也想不出“脾氣好”這個結論是從哪得出來的。
“沒什么?!崩栊πu搖頭一笑。
劉祎峰還想再問下去,正好看到陳翰從樓梯口走出來。
“不好意思,來晚了點兒?!标惡策h遠地就和兩人打招呼。
“你這是走樓梯下來的?”劉祎峰問道。
“是呀。鍛煉一下,一直在辦公室里坐著?!标惡不卮鸬?。
三個人一邊閑聊,一邊由陳翰帶路走著,很快就到了他的車旁。
“隨便坐?!标惡舱f著,自己拉開駕駛座的門坐了進去。
“那你坐前面吧?!崩栊π⒌t峰說,自己拉開后車門坐了進去。
劉祎峰看著她坐進去,順手幫她把車門關好,自己才坐進副駕駛。陳翰發(fā)動車子,提示音響個不停,劉祎峰趕緊把安全帶系好。車子慢慢駛出車庫,融入車流中。
“書快要看完了吧?”陳翰問道。
劉祎峰還不明白是怎么回事,黎笑笑已經(jīng)回答道:“已經(jīng)看完了。能再推薦幾本嗎?”
“好,回頭發(fā)給你?!标惡不卮鸬?。
“什么書?”劉祎峰終于忍不住問道。
“一些工作方面的書。”黎笑笑回答得很簡單。
劉祎峰看看陳翰,他也沒有繼續(xù)說下去的意思,也不好再問下去了。
這兩個人關系很好嗎?工作方面的書……他們之間有什么工作上的聯(lián)系?陳翰不在SK項目里吧?他們還有什么別的秘密嗎?雖然明知和自己無關——應該是無關吧,劉祎峰還是覺得心堵得厲害,過了三個紅綠燈,才覺得呼吸正常了些。
三個人有一句沒一句地聊著,多半還是關于公司的事,話題轉(zhuǎn)來轉(zhuǎn)去,轉(zhuǎn)到今天吃飯的原因,終于轉(zhuǎn)到了年會那天發(fā)生的事情上。
“現(xiàn)在各種傳言滿天飛,你知道嗎?”陳翰說。
“不知道。隨便吧?!崩栊πΦ恼Z氣十分冷淡。
劉祎峰知道她不愿意再提起那些事,趕緊轉(zhuǎn)移話題向陳翰問道:“對了,今天晚上鄭總為啥會來?”
“她呀,她說反正晚上她也是自己一個人吃飯,挺沒意思的……”
劉祎峰回頭看了看黎笑笑。飛馳而過的霓虹燈,一瞬間照亮了她的臉。她正看著窗外,臉上帶著掩飾不住的厭倦。