客戶應該知道的8個軟體開發原則

發表於2012-03-04

英文原文:leoncullens.nl,編譯:oschina

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

1. 好的軟體一定不便宜

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

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

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

客戶應該知道的8個軟體開發原則2. 需求要明確

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

3. 好的軟體需要配合完成

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

4. 並不是所有的功能都是可見的

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

5. 提前給出準確的時間預測很困難

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

6. 程式設計師也是人

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

7. 告訴我要做什麼,不要指揮我怎麼做

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

8. 聽聽我們的建議

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

結論

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

 

相關文章