吃自己的狗食——eat your own dog food 原 薦

吃自己的狗食eat your own dog food)是一種比喻的說法。對於軟件開發公司而言,意思就是自己要儘量多用自己開發的軟件。

唯有這樣,才能知道它是不是存在問題;而唯有重度的使用,我們才知道它到底方不方便使用。

現實情況

而令人遺憾的是,軟件開發人員常常不是自己開發軟件的用戶。有很多情況下,可能就是上司交給我們一個任務,需求往往也是客戶擬好的。作爲一名開發人員,我們只是把開發當作一項任務,一項“工作”而已。

經常的情況是我們對軟件的使用場景不熟悉,也不知道軟件爲什麼設計成這樣,我們常常只是機械地完成客戶交給我們的任務。

如果某個特性客戶提到了,那它纔會出現在最終的產品中;如果很不幸的客戶沒有提到,又或者我們與客戶之間存在溝通不良(這種情況太普遍),那麼這個特性就在我們的產品中消失了!而這個對最終的用戶來說可能是很重要的,而我們之所以對這樣一個特性的遺漏毫無感覺,一個很重要的原因就是我們並不吃自己的狗食!

一個壞的事例

我曾經用過 XX 詞典,它有個單詞本,能讓你加入在閱讀過程中加入的新詞,然後它會安排你複習,但是它總是按照你加入這些單詞的順序來呈現它們

那麼這會有什麼問題呢?我相信很多經常使用背單詞功能的人是不難注意到這樣一個事實,那就是一個固定的順序會強化你的記憶,使你很容易在這種順序的呈現過程中回憶起某個單詞的意思,然後你會覺得自己記住了這個單詞,但實際上並沒有!

但一旦脫離這種順序呈現的環境,比如你在另一篇文章中再次看到這個單詞,你很可能想不起來它是什麼意思。

所以,複習過程中的好的做法應該是打亂順序,每次都使用隨機的順序。

另外一個問題是,你只能加入單詞,卻不能自行添加一個與之相關的例句,它會在它的例句庫中找一個句子與其配對。很多情況下,我在閱讀中,碰到一個句子有一個生詞我不能理解,查了這個生詞後,對我而言,其實最好的例句也許就是這個句子本身,但它卻不能讓我加入這個例句。

而一個單詞常常有很多意思,它配的句子往往不是我原來看到的意思。我經常看一些技術的文章,我也許只關心某個單詞在技術領域的狹隘意思,對於它的其它意思我可能並不關心。

所以有些時候,當我複習時,我都想不起來我爲啥要加入這樣一個奇怪意思的單詞,它配的例句與我原來看的差別很大。但我在另一篇技術文章中看到這個單詞時,我可能還是想不起來它在技術領域的意思,儘管我可能對它複習了很多次!

事實上,就這個兩個問題,我還給軟件的開發方發過 email 去反映,因爲很多的軟件總是說歡迎你給它們提意見,所以我就去提了。

然後我就收到一個熱情洋溢的回信(當然也很可能是機器自動回覆的),說:“非常感謝你的來信,我們會積極考慮你的提議”之類云云。

其實我給蠻多的軟件提過建議,都會收到類似的回信,是不是真的採納了我就不知道了。

過了一段時間以後,我再去看它們的新版本,沒有發現任何改進;再後來,我也沒有去關注了,而且我也很少用到它了,因爲的確感到不好用。

當然了,我估計他們還是看了我的建議,但是並沒有引起他們的共鳴,或許在他們的眼中這些建議是無足輕重的,那麼原因是什麼呢?我想到的最大可能的原因就是:團隊本身很可能就不怎麼重度使用這個產品,他們並不吃自己的狗食。

當然,也可能是我以小人之心度君子之腹,又或者我的需求確實比較奇葩,沒有代表性。

在他們眼中,或許產品已經是足夠好了,不需要再改進了。而如果他們真的是積極地使用自身的產品呢?我想或許都不需要我去提什麼建議,這些特性也許就已經在產品中有了。

一個好的事例

必須說,很多時候很多軟件都不那麼令人稱心如意。如果有那麼些軟件讓人用上去感覺很驚喜,作爲一名程序員來說,那 IDE(集成開發環境) 可以算一個。

而原因自然也不難明白,因爲這程序員開發給自己用的工具!

事實上,很多新的 IDE 版本就是在老版本的 IDE 中開發的,然後這個過程不斷迭代。所以這其實或許是一個吃自己狗食的最好例子。

沒有比程序員本身更明白自己對 IDE 需求的人了。他們不斷在使用這個產品,也最清楚自己還需要什麼、產品還有什麼不足,而且他們也有這個能力去改進它!

儘管由於複雜性的原因,使用過程還是可能遇到 bug 或不穩定等現象,但必須承認,在 IDE 運行良好的時候,它的確是一個很貼心的工具!

啓示

那麼,從以上一些事例中我們能得到什麼啓示呢?

假如你要開發一個比如說炒股的軟件吧,你想招聘一個人來負責。有一個人技術很牛逼,基本明白股票的業務,但本身對炒股不太感冒;而另一個人技術也還可以,而同時是一個資深股民,使用過很多類似的軟件,甚至能說出許多它們的痛點來。

而你作爲負責人,你會招聘誰呢?如果你選擇那位技術牛逼的,很大可能你會得到一款很穩定但與此同時也很平庸的產品!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章