關于軟件職業(yè)生涯的個人修煉的幾個小故事
張靖笙
我們會在職場中渡過長達40多年的漫長光陰,而如何渡過這段漫長職場生涯的態(tài)度和方法,毫無疑問將很大程度上影響人一生的命運和成就,下面和大家分享幾個小故事,希望對于職場中的軟件從業(yè)朋友有一定的啟發(fā):
推銷員的故事:
有一個推銷員,剛剛開始進入行業(yè),他是一個推銷吸塵器的推銷員,他在一開始的時候,非常不成功,為什么?他去拜訪客戶的時候敲門就說:張?zhí)?,你應該買吸塵器,我這個東西非常棒,獲得過國際金獎的,你應該買。但是沒有人聽他的。開始的時候他覺得自己不夠努力,他就更努力,從早上六點鐘開始推銷到晚上十點鐘,他找各種各樣的推銷指南來學習閱讀,包括尋找很多的銷售工具例如印刷品小冊子等來幫助他的銷售。過了一階段之后,他逐步開始發(fā)現(xiàn)一些門道,他推銷前會去分析最有消費能力的小區(qū)是在北京的哪些小區(qū),然后針對這些小區(qū)進行推銷。推銷時候也更有針對性,例如他發(fā)現(xiàn)這家人家可能養(yǎng)狗,他可能跟太太聊家常說,你這條狗很可愛,不過我看到它可能會掉毛,張?zhí)脖г拐f狗會掉毛,經常把沙發(fā)弄的非常臟,這個時候推銷員會說我這有一個工具可以幫助你做清潔,您看要不要。這樣他的成功率提高了很多,也就是說他會逐步花時間分析客戶的需求來針對客戶需求的服務。很多年后,他成為行業(yè)里面的銷售大師,那時發(fā)生了什么事情呢?哪怕那個時候他不再推銷吸塵器,他只是在推銷其他產品,其他品牌,例如微波爐,他看到張?zhí)珪r候,就跟張?zhí)f我有一個微波爐特別適合你,你應該買一個微波爐,張?zhí)赡苓B什么品牌什么功能都沒有問,就直接購買了,為什么?因為和整個推銷員認識很長時間以后,這個推銷員非常清楚張?zhí)枰裁?,張?zhí)珜λ呀浻辛碎L期的信任,知道這個推銷員每次都會替她著想,他每次給她帶來的東西都應該她需要的東西。
這是一個推銷員的成長過程,總結一下他的成長,在第一階段他通過個人修煉來成長。到了第二階段他開始關注客戶,他不再把整個視野放在自己的身上,而是關注用戶。另外很多事情,例如作市場分析,客戶行為分析等等,他必須依靠集體和團隊的力量來一起做。第三階段,他開始以用戶作為核心,總去考慮什么是客戶需要的核心價值。最關鍵是他開始關注長期的和客戶之間的信任,而不是做一票就走。
因此和客戶長期的信任關系是提升自身價值的關鍵。
考試的故事:
接下來,我講一個故事來,從前張三和李四去考試,張三花了40分鐘把自己的試卷做完以后,一遍都沒有檢查,直接交卷了;李四做完考卷后來來回回檢查了20遍,直到考試結束的最后一分鐘才交卷。張三和李四在平時學習態(tài)度不一樣:張三同學每天在都一絲不茍的完成作業(yè),將需要學習的知識點平時就很好的掌握,而李四同學經常不上課,作業(yè)抄抄了事,他也從來不花時間復習??荚嚱Y果,顯而易見,張三的成績毫無疑問比李四的成績好很多,哪怕一遍都沒有檢查,試卷里面可能有粗心大意的錯誤,不會改變試卷的總體水平。而李四本來就很多的題目不會做,哪怕全部填滿了,檢查了20遍,照樣是很差的成績。
這個故事想說明了什么呢?在軟件行業(yè)內部,做軟件開發(fā)的人都有這樣的傾向:首先把整個軟件框架搭起來,把程序盡快的走通,以后再做測試。編碼的時候,總覺得將來會專門有時間來做測試的,所以對于細節(jié)就沒有那么關注。不知不覺之間,軟件的低質量已經被構建在內部了。這個就好像一個平時不好好學習的學生,寄托希望在考試時候,對于試卷多檢查幾遍一樣最后拿一個好分數(shù),這樣做不會改變軟件的根本質量。請記住,測試是不能幫助軟件項目來提高質量的!
酒店服務生的故事
接下來,和大家分享關于酒店服務生的故事,星級酒店服務員每天拿客戶的臟衣服去洗,有天發(fā)現(xiàn)客戶的襯衫上的某個紐扣快掉了,讓我們看看下面三個酒店服務生的做法。
第一種做法:三星酒店的服務員根本沒有在意這個細節(jié),她直接拿了衣服去洗好燙好放回來,紐扣已經掉了,客戶問她,她說不知道或者和客戶爭執(zhí)。
第二種做法:四星酒店服務員碰到這個情況就更進一步,她會仔細檢查你的襯衫是否有紐扣松動了,如果有,她會讓你簽字確認說,將來這個紐扣掉下來不關她的事情。
第三種做法:五星酒店服務員在拿走衣服去洗之前,會仔細檢查紐扣是否會掉下來,如果是的,會把紐扣取下來,洗好衣服后,讓裁縫把紐扣在再釘上去。
而作為軟件從業(yè)人員,當下軟件作為企業(yè)戰(zhàn)略落地和業(yè)務升級的粘合劑,面對和大量的客戶群體的互動和融合,技術的輸出方式已經成為徹頭徹尾的服務。試想一下,當你作為酒店的顧客,您更喜歡那個酒店的服務員?想想我們的技術團隊又該是怎么一個定位呢,是三星級的IT團隊還是五星級別的技術團隊?
所以,技術人員必須以用戶心為心,才能讓自己的技術真正發(fā)揮出高的價值。
對于軟件工程師來說,用戶他并不知道也不關心所面對的軟件系統(tǒng)后臺用什么樣的語言、中間件、開發(fā)平臺、軟件開發(fā)流程。對于用戶來說,他只知道電腦一按有一個程序出來;或者手機上可以發(fā)一個短消息出去。對用戶宣傳你的技術多先進,用戶其實不關心。用戶關心的是用戶體驗。
舉一個例子來說,用戶在使用網上相冊的時候,希望能夠共享照片、下載照片,能夠做數(shù)碼照片的打印。而對于程序員要實現(xiàn)這個網上相冊網站來說,他們面對的是一段一段的代碼。所以盡管程序員想為最終用戶構建一個非常完美的世界,但是程序員生活的世界里面,多數(shù)時間是面向代碼、面向機器的,他們并不是真正的面向用戶體驗,他們的關注點更多在更底層的實現(xiàn)。
做軟件項目的時候,我們交付給用戶一個幾百頁需求說明書,密密麻麻的文字,讓用戶簽名,這是就是用戶所想要的嗎。用戶可以簽字,但是他真的能確認這幾百頁需求就是真的他需要的東西嗎?文字很困難做到精確地傳遞信息。例如在需求文檔里有一行字寫到:“界面要求大方美觀”,程序員理解的大方美觀跟用戶所理解的大方美觀一定不同,通過這樣方式的溝通如果不出錯才怪呢。
所以我們要以用戶體驗作為核心,站在用戶的角度、根據(jù)用戶的理解(而不是程序員的理解)來進行軟件開發(fā),不斷根據(jù)用戶的反饋進行修正。
關于軟件職業(yè)生涯個人修煉的升華
通過上面三個小故事的分享,最后想總結如何將個人的努力提升成團隊的修煉。個人修煉對于個人的成長的確有幫助,但是提高速度和程度是有限的。因為你在孤軍奮戰(zhàn)。這里給大家如何FixBug(修復缺陷)的例子,有三重境界。
第一重境界,如果發(fā)現(xiàn)程序里面有一個bug,一位工程師一定要修復完這個Bug同時檢查過之后才離開公司,這樣做好像已經很有責任心了。但是我們說他做到了FixBug的第一層境界,只是做到最基本的。
第二重境界,這個程序員在修bug的時候,應該想到程序里面有沒有類似的場景,有沒有因為以前拷貝粘貼在軟件的其他地方也可能有類似的狀況,甚至是其他工程師可能在類似場景里面也可能出現(xiàn)這個問題,這個工程師會花時間研究這個Bug,會提醒可能犯同樣錯誤的隊友,讓他也對這個問題引起注意。這樣的話,同樣的Bug在被發(fā)現(xiàn)出來之后,同類型的 Bug都可以被捉出來。
第三重境界,項目經理這個層次至少要有這個素質:如果發(fā)現(xiàn)同樣類型的錯誤或者bug連續(xù)出現(xiàn)三、四次的時候,需要分析一下根本原因是什么,比如說因為寫這段代碼的人編程水平不夠,或者客戶對這個功能的需求定義就是不明確。通過根本原因的分析,才有可能去解決真正問題。如果是那個程序員沒有足夠的編程水平,那他未來寫的程序會繼續(xù)出現(xiàn)這些問題,應該安排一個資深的程序員來教他、來幫他進行代碼檢查;如果是客戶的需求不明確,不管程序員的水平再高,寫的東西可能不是客戶想要的,需要和客戶進行確認。
關于Bug fix的三重境界,如果公司里面只有一個人或者幾個人才有這樣的態(tài)度,對于整個軟件開發(fā)的水平提升有多大的幫助?這個必須成為整個團隊的修煉,變成每個人都遵循的一種職業(yè)習慣,才可能對軟件的開發(fā)質量有較大的提高。
最后,我們都只是職場上匆匆的過客。我相信,每一位軟件從業(yè)者,在年少都有用技術改變世界的壯志和夢想。歲月流逝,夢想變色,豪情褪去,可誰的內心不想當回顧自己的職場歲月的時候,能感覺不枉走過一場?!?/p>
(2013年1月6日初稿)