在程式設計師的眼裡,使用者是這樣使用他們開發的軟體的

類別: IT

我曾經說過,程式員不是一般的人,是具有某種超能裡的人。但問題是,程式員往往意識不到自己的這種特異功能,在他們的眼裡,會認為自己很普通,跟常人一樣,所以,程式員能做到的事情,其他人——比如他們的客戶/軟體使用者——也應該很容易做到。但事實上,由於大部分人——絕大部分人(包括軟體開發公司的客戶/購買軟體的使用者)——都是電腦小白(對電腦知識/計算機知識/軟體知識知之甚少的人)。一個對於程式員來說很顯而易見的軟體操作,換成讓使用者來操作,就會出現各種各樣奇怪的事情。這讓程式員非常痛苦。

記得有一次,一個客戶打電話給我,說他電腦桌面上的大e找不到了,我沒聽懂,什麼大e找不到了?客戶解釋說:就是那個長的像大個兒的英文字母e的圖示找不到了。我倒。終於明白了他指的是桌面上的IE瀏覽器的圖示不見了。

還有一次,有個客戶提出一個需求,要求在頁面上增加一個搜尋功能,我問它,系統裡有搜尋功能,為什麼還要在這個地方新增一個搜尋功能,他說他要的不是那個搜尋,他要的是在這個頁面上搜在某個關鍵詞。經過進一步的溝通,我明白了,他要的是瀏覽器上的快捷鍵CTRL+F的功能。

因為使用者的這些特徵,導致了程式員認為完美的程式,到了客戶的手裡,卻變成極其難用的軟體,投訴電話如鄉下罵街的潑婦似的響個不停。而事後分析發現,根本原因都是應為程式員高估了使用者對軟體的掌控能力,低估了自己對軟體的創造能力,於是導致了他們看這些客戶使用他們開發的軟體時,都是那樣一種可笑的行為,如下圖:

在程式員的眼裡,使用者是這樣使用他們開發的軟體的

如果是脾氣暴躁的程式員,遇到這種情況,難免會對著客戶發一頓牢騷,而且,程式員的脾氣一般都不是很好,所以,通常跟客戶溝通時,專案經理一般都是跟著一起,以免事態激化。

使用者雖然給程式員帶來很多麻煩,但其實程式員的所有榮耀感都來自客戶,因為只有客戶用得滿意,程式員才會有成就感。比如像下面這幾個客戶在使用一個新款軟體時顯露出來的表情,足夠讓一個處在北京重度霧霾的下午的程式員也能露出笑容:

使用者在使用一款新軟體時的樣子

程式員雖然脾氣不好,但他們都是為工作著想,不帶任何個人恩怨。當開發軟體有緊急任務時,他們都是任勞任怨的加班加點,當在已經發布的軟體中出現了重大bug時,他們都會深深在自責,會連夜趕製出緊急修復bug,如果不能在第一時間讓使用者滿意,他們會茶不思、飯不想、覺不睡。即使在實在沒有短期內完整的補救措施的情況下,他們也會想出一些歪招,但也是行之有效的方案,讓使用者暫時度過難關。比如,下面就是一個緊急修復補丁:

緊急修復補丁

使用者應該體諒程式員。程式員的生活實際處在一種十分矛盾的狀態中。程式設計不像其它行業,比如泥瓦匠砌磚,砌一層磚,牆就會高一次。但程式設計不一樣,有時候一個程式員寫了一天的程式碼,急得滿頭大汗,但開發進度未必就有所進展,有時候甚至還會倒退。軟體程式設計是一個亦虛亦實的世界,有時候你搞不清一段程式碼為什麼好用,有時候也會詫異由那樣的程式碼構成的軟體也能跑起來,正如下面這張圖片中所示:

軟體中有鬼

最後,說一下跟程式員打交道的一些注意事項。程式員因為整天和程式設計邏輯打交道,所以對因果關係特別敏感。如果你的話語的因果關係不是很明確,這會讓他們感到疑惑,如果你的話語的因果關係不完整,這會讓他們辦錯事。如果你的話中有if,最好後面用then做結束,或者用else給出選擇,主語要明晰。如果不明晰,就會出現下圖中出現的事故:

程式員是這樣理解這個指示牌上的話的

如果你是一個程式員,你會理解我說的話。

在程式設計師的眼裡,使用者是這樣使用他們開發的軟體的原文請看這裡