我曾經說過,程式員不是一般的人,是具有某種超能力的人。
但問題是,程式員往往意識不到自己的這種特異功能,在他們的眼裡,會認為自己很普通,跟常人一樣,是以,程式員能做到的事情,其他人 —— 比如他們的客戶/軟體使用者 —— 也應該很容易做到。
但事實上,由于大部分人 —— 絕大部分人(包括軟體開發公司的客戶/購買軟體的使用者) —— 都是電腦小白(對電腦知識/計算機知識/軟體知識知之甚少的人)。一個對于程式員來說很顯而易見的軟體操作,換成讓使用者來操作,就會出現各種各樣奇怪的事情。這讓程式員非常痛苦。
記得有一次,一個客戶打電話給我,說他電腦桌面上的大e找不到了,我沒聽懂,什麼大e找不到了?客戶解釋說:就是那個長的像大個兒的英文字母e的圖示找不到了。我倒。終于明白了他指的是桌面上的IE浏覽器的圖示不見了。
還有一次,有個客戶提出一個需求,要求在頁面上增加一個搜尋功能,我問它,系統裡有搜尋功能,為什麼還要在這個地方新增一個搜尋功能,他說他要的不是那個搜尋,他要的是在這個頁面上搜在某個關鍵詞。經過進一步的溝通,我明白了,他要的是浏覽器上的快捷鍵CTRL+F的功能。
因為使用者的這些特征,導緻了程式員認為完美的程式,到了客戶的手裡,卻變成極其難用的軟體,投訴電話如鄉下罵街的潑婦似的響個不停。而事後分析發現,根本原因都是應為程式員高估了使用者對軟體的掌控能力,低估了自己對軟體的創造能力,于是導緻了他們看這些客戶使用他們開發的軟體時,都是那樣一種可笑的行為,如下圖:
在程式員的眼裡,使用者是這樣使用他們開發的軟體的
如果是脾氣暴躁的程式員,遇到這種情況,難免會對着客戶發一頓牢騷,而且,程式員的脾氣一般都不是很好,是以,通常跟客戶溝通時,項目經理一般都是跟着一起,以免事态激化。
使用者雖然給程式員帶來很多麻煩,但其實程式員的所有榮耀感都來自客戶,因為隻有客戶用得滿意,程式員才會有成就感。比如像下面這幾個客戶在使用一個新款軟體時顯露出來的表情,足夠讓一個處在北京重度霧霾的下午的程式員也能露出笑容:
使用者在使用一款新軟體時的樣子
程式員雖然脾氣不好,但他們都是為工作着想,不帶任何個人恩怨。
當開發軟體有緊急任務時,他們都是任勞任怨的加班加點,當在已經釋出的軟體中出現了重大bug時,他們都會深深在自責,會連夜趕制出緊急修複bug,如果不能在第一時間讓使用者滿意,他們會茶不思、飯不想、覺不睡。
即使在實在沒有短期内完整的補救措施的情況下,他們也會想出一些歪招,但也是行之有效的方案,讓使用者暫時度過難關。比如,下面就是一個緊急修複更新檔:
使用者應該體諒程式員。程式員的生活實際處在一種十分沖突的狀态中。
程式設計不像其它行業,比如泥瓦匠砌磚,砌一層磚,牆就會高一次。但程式設計不一樣,有時候一個程式員寫了一天的代碼,急得滿頭大汗,但開發進度未必就有所進展,有時候甚至還會倒退。
軟體程式設計是一個亦虛亦實的世界,有時候你搞不清一段代碼為什麼好用,有時候也會詫異由那樣的代碼構成的軟體也能跑起來,正如下面這張圖檔中所示:
最後,說一下跟程式員打交道的一些注意事項。
程式員因為整天和程式設計邏輯打交道,是以對因果關系特别敏感。如果你的話語的因果關系不是很明确,這會讓他們感到疑惑,如果你的話語的因果關系不完整,這會讓他們辦錯事。如果你的話中有if,最好後面用then做結束,或者用else給出選擇,主語要明晰。如果不明晰,就會出現下圖中出現的事故:
如果你是一個程式員,你會了解我說的話。讓别人也看看,以後就會少很多誤解。
上面是我收集的一些視訊資源,在這個過程中幫到了我很多。如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加入我們扣扣群【313782132 】,裡面有各種軟體測試資源和技術讨論。
更多優質文章分享:
測試人員在靈活團隊中所扮演的角色
一篇對年輕程式員很有幫助的文章
如何做好自動化測試,揭秘阿裡巴巴分層自動化實踐之路
在做自動化測試之前你需要了解
關于軟體測試!你想知道的都在這裡了,小白必看!
10年自動化測試心得
比較而言!軟體測試和測試開發薪酬待遇差别那麼大?
10年軟體測試工程師感悟 — — 寫給還在迷茫中的朋友
軟體測試真的幹到35就幹不動了嗎?
最後: 在這裡我向大家推薦一個架構學習交流群。交流學習扣扣群:313782132 裡面會分享一些資深架構師錄制的視訊錄像:有Spring,MyBatis,Netty源碼分析,高并發、高性能、分布式、微服務架構的原理,JVM性能優化、分布式架構等這些成為架構師必備的知識體系。