客戶應該知道的軟件開發八個原則

在IT領域做自由職業者是很合適的。有很多開發者都有過做自由職業者的經歷。有很多書籍和文章將瞭如何讓客戶滿意以及如何及時的交付正確的軟件。但是很少文章講述客戶在項目過程中應該如何做。雖然客戶付了錢,但這並不意味着我們要容忍他們非常粗魯的態度和錯誤的習慣。




1. 好的軟件一定不便宜
我常常遇到的一個問題是,客戶想要花不到500歐元建立一個全功能的企業網站。這個價錢你可以找我隔壁的12歲小男孩,用Joomla幫你搭一個,但是專業的軟件開發者,懂得軟件架構,懂得如何開發安全,穩定,能良好運行的軟件的一點比這個價格要貴很多。軟件開發和別的職業是一樣的,需要花大量的時間學習。

除此以外,很多客戶往往在合同以外要求添加一些功能,免費的。你的醫生不會免費工作,你的掃地阿姨不會免費工作,你也不會免費,爲什麼要求軟件工程師免費工作?

我有見到很多客戶僱傭了一些便宜的、自稱專業的開發者,或者外包開發到印度,越南,結果往往很失望。這些渠道看上去是便宜了一些,但是後期的軟件維護成本非常昂貴。所以很多客戶嘗試了一次以後,還是回頭來找我開發。

2. 需求要明確
我們知道一開始就能列出所有詳細的需求是很困難的。這也是爲什麼我們發明了敏捷開發這樣的技術。但是如果你給我們錯誤的需求,我們也只能交付錯誤的軟件。你可以因爲軟件不好用而責怪我們,但是你給了我們不對的需求在先。最終浪費了雙方大量的時間,也浪費了很多錢。軟件開發者也許很聰明,但是隻有你瞭解你的業務需求!

3. 好的軟件需要配合完成
爲了交付一個好的軟件,開發者應該在項目中全力以赴。但是客戶也不能坐在一邊對這個項目不聞不問。如果你想要你的軟件按時、正確的交付,你應該和開發者保持聯繫,所以我們能及時發現問題並修正。這並不需要你無時無刻的盯着我們工作,你只要及時的回覆我們的email就可以了,比如說24個小時之內。我有遇到過一些客戶,在合同簽完以後徹底消失,然後到軟件交付的時候,跟我講爲什麼沒有開發完成?你說呢?!

4. 並不是所有的功能都是可見的
沒有絢麗的界面和大量的新功能並不意味着我們沒有努力工作。事實上,大量的工作都是和前臺無關的。這也是爲什麼我們應該投入資源來改進後臺的代碼。根據 Pareto Principle http://en.wikipedia.org/wiki/Pareto_principle ,20% 的代碼 解決了80% 的問題。這些問題有可能是服務器性能瓶頸或者數據損壞。雖然你花錢在這些方面你看不到軟件的界面變化,但是它是值得的。

5. 提前給出準確的時間預測很困難
在任何一個領域,給出項目的時間預測是一件困難的事情。在IT領域更是如此,因爲客戶往往不知道他們到底想要什麼。告訴我們你的想法,我們會給你一個時間估算,僅僅是估算。需求往往在開發過程中變化,所以不要老拿預估的時間來說事。

6. 程序員也是人
我們也許工作起來,思維方式像是機器人,我們也許長時間在辦公室裏不出來,但這並不意味着我們不是人類。當你在餐館喫晚飯,或者做飛機安全着陸的時候,你會對廚師和飛行員表示感激,當你的家人在醫院治癒的時候,你會對醫生表示感激。那麼請也把這份感激、尊重帶給我們。

7. 告訴我要做什麼,不要指揮我怎麼做
你描述你的問題,讓專業的人來提出解決方案。請讓開發者做他擅長的事情:解決你的問題。在IT領域,開發者懂的往往遠遠比客戶多。也就是說開發者知道不同的方案的優點與缺點,他會選擇正確的解決方案。請不要把簡單的問題複雜化,不要告訴我們如何解決問題,專業的問題由專業的人來解決,可以節省你的很多時間和金錢。

8. 聽聽我們的建議
正如上一段提到的那樣,開發者在技術領域也許比你(客戶)懂的多。如果你想要在你的網站放一個自動播放的視頻,而開發者建議你不要這麼做,那麼聽他的。因爲他已經做過類似的案例,並且知道自動播放讓很多人很厭煩。你喜歡這個視頻,但是其他人不一定。如果你的開發者建議你不要使用Flash,那麼相信他。他知道使用Flash的不好的地方,也許你不知道。

結論
軟件開發者需要做所有的努力來完成一個好的軟件。有很多書籍講述了關於如果控制軟件質量,怎麼做需求分析,敏捷開發等等。但是作爲客戶,你也應該遵循一些基本的原則。最大的問題往往是客戶希望項目的預算越低越好,卻不斷的更改需求,還沒有很好的溝通。


摘自:http://www.oschina.net/news/26347/8-rules-your-customer-should-know?from=20120311


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