你的程式碼完成了嗎?(之一)——可用性和易用性

來源:互聯網
上載者:User

日前,在InfoQ上發布了一篇名為《完成宣言》的新聞,其中探討了什麼樣的代碼才可以算是“完成”了的代碼。文中列出了一些標準,大家可以在這裡查看相關的內容。

對於此,我不由地開始反思自己曾經做過的代碼,自己是否真的完成了所有的代碼呢?自己的代碼是否已經滿足了一定的標準,真的可以提交給使用者使用了呢?其實,現在回顧這些問題有些亡羊補牢的意味,每個人在提交自己的代碼之前都應該先問自己一聲,這份代碼真的完成了嗎?

文中主要是從代碼的各種特性來界定代碼是否完成的標準的:

1、代碼的可用性和易用性

2、可維護性和規範性

3、可測試性和健壯性

4、從總體上對系統的影響。

接下來,我想根據自己的一些經驗對其再分析一下,同時反思自己。

 

一. 代碼的可用性和易用性


首先,對於代碼(或者說程式)的可用性

和易用性,這應該是最基本的要求。我們的代碼開發出來是做什麼的呢?不是用來孤芳自賞的,而是要放在業務環境中由業務人員來使用的,也可以說是來檢驗的。這樣的話,可能就有下面的一些要求:

a) 完全實現了業務上的要求,準確地完成了相關的任務。

b) 在效能上表現良好,應該是節省了使用者的時間,而不是浪費他們的時間。提高工作效率,他們的感受會很好。

c)沒有太過複雜的操作,即使沒有相關的培訓,業務人員一眼看上去,大概的功能也就基本瞭解,並能夠很快上手使用。

這些問題看似比較簡單,但是實現起來卻需要不少細節上的工作,不信你看下面的情境:

情境一:業務人員開始抱怨:你開發的東西根本就不是我要的,我一直是這麼做的,為什麼要讓我改變工作的方式?

這可能會有兩種可能,一種是我們在開發的系統中使用了比較先進的管理學理論,改變後的工作方式更有利於業務人員高質高效地完成工作任務,對於此,我們需要和他們耐心的溝通,並勸說他們實驗一下,感受一下看看是否能夠真正對他們的工作加以改善,一旦他們習慣了,就好了。

而另一種可能就是,沒有達到業務上所需要的,業務上用系統根本就無法工作。這種情況也是非常可能出現的,特別是在國內的項目開發過程中,需求分析和概要設計都沒有做好,就匆匆開始編碼了。或者說,在看到實際的程式之前,業務人員根本就不知道他們想要的是什麼,直到你做出來之後,他們才告訴你那不是他們想要的東西。

對於這種情況,或者說對於這種項目,都比較麻煩。但是想要改善的話,我有幾點建議,一是要加強與客戶的溝通。此時XP編程中的一條原則“現場客戶”就非常適用。如果我們能夠經常地和他們溝通,聽取他們的意見,而且在開發的過程中按照“瞄準-射擊-調整”的方式,能夠少走不少的彎路,也比較容易得到使用者的認可。(但在這個過程中就要注意與客戶之間溝通的技巧,建議閱讀我翻譯過的《與客戶調情》)。其次是放下程式員的架子,把自己放在和業務人員同樣甚至是低一些的位置上,虛心向他們學習,從客戶的角度去理解商務程序,想方設法讓他們的工作更簡單,效率更高,而不是一味地強迫他們按照我們的思維模式去做,畢竟最終的東西不是我們使用。

在這裡一定會涉及到的問題就是變更管理,這也是Team Dev和客戶之間經常需要“打架”的地方。其實有些時候,如果能夠相互理解,不一味地糾纏在錢的問題上,反而更容易解決。試想一下,如果對於每個小的變更都糾纏得非常清楚地話,那麼很多時候就會造成之間關係的僵化,從而客戶不願意把相關的業務知識告訴Team Dev,那對於我們來說絕對是不可彌補的損失,而且不是能夠用Money來衡量的。

情境二:你這東西也太慢了,本來我做這件事兒需要1個小時,用了你的系統之後需要2個小時,我不得不加班!

這個沒說的,必須要調整了。很多人都收到學校中的一種思想的蠱惑;先把功能實現了再說,效能那個東西可以用硬體來彌補,以後再調整也沒事兒。其實,對效能的考慮不僅僅是從開發程式之前就應該開始,而且是應該在整個系統開始之前就開始考慮,包括資料庫伺服器、應用伺服器的設計,資料庫中的資料的儲存方式、空間的分配等等,都應該在系統開始之前就做了充分的工作,否則等牆快要倒了的時候,再去補,為時晚矣!

效能應該最佳化到什麼程度呢?我覺得最基本的原則就是,比客戶要求的標準稍稍好那麼一點兒就可以了,這樣他們會覺得你對他們的反饋很重視,並且已經超出了他們的預期,一定會滿意的。

情境三:你這程式介面上的東西太多了,我根本不知道怎麼做。而且操作也太麻煩了,要很多步才能完成一項工作。

在沒有完整的資訊化系統之前,業務上很多的工作都是使用Excel之類的東西完成的,那是非常方便的工具。但是使用了開發的軟體之後,就必須改變原有的工作習慣,比方說斷行符號和Tab的使用,比方說增加新紀錄的方式等等;此時就應該儘可能少地把操作的控制暴露給使用者,而應該儘可能多地由系統在後台完成工作。如果看到滿螢幕都是各種各樣奇怪的控制項,使用者肯定會暈倒的。

所以說,想要開發出來的程式對於使用者來說真的可用、易用,要做大量的工作。並且,隨著時間的推移,後期肯定還需要大量的調整工作。

 

待續……

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.