客戶應(yīng)該知道的軟件開發(fā)八個(gè)原則

2012-03-04 17:11:42來源:OSChina編譯作者:

在IT領(lǐng)域做自由職業(yè)者是很合適的。有很多開發(fā)者都有過做自由職業(yè)者的經(jīng)歷。有很多書籍和文章將了如何讓客戶滿意以及如何及時(shí)的交付正確的軟件。但是很少文章講述客戶在項(xiàng)目過程中應(yīng)該如何做。雖然客戶付了錢,但這并

在IT領(lǐng)域做自由職業(yè)者是很合適的。有很多開發(fā)者都有過做自由職業(yè)者的經(jīng)歷。有很多書籍和文章將了如何讓客戶滿意以及如何及時(shí)的交付正確的軟件。但是很少文章講述客戶在項(xiàng)目過程中應(yīng)該如何做。雖然客戶付了錢,但這并不意味著我們要容忍他們非常粗魯?shù)膽B(tài)度和錯(cuò)誤的習(xí)慣。

1. 好的軟件一定不便宜

我常常遇到的一個(gè)問題是,客戶想要花不到500歐元建立一個(gè)全功能的企業(yè)網(wǎng)站。這個(gè)價(jià)錢你可以找我隔壁的12歲小男孩,用Joomla幫你搭一個(gè),但是專業(yè)的軟件開發(fā)者,懂得軟件架構(gòu),懂得如何開發(fā)安全,穩(wěn)定,能良好運(yùn)行的軟件的一點(diǎn)比這個(gè)價(jià)格要貴很多。軟件開發(fā)和別的職業(yè)是一樣的,需要花大量的時(shí)間學(xué)習(xí)。

除此以外,很多客戶往往在合同以外要求添加一些功能,免費(fèi)的。你的醫(yī)生不會(huì)免費(fèi)工作,你的掃地阿姨不會(huì)免費(fèi)工作,你也不會(huì)免費(fèi),為什么要求軟件工程師免費(fèi)工作?

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

2. 需求要明確

我們知道一開始就能列出所有詳細(xì)的需求是很困難的。這也是為什么我們發(fā)明了敏捷開發(fā)這樣的技術(shù)。但是如果你給我們錯(cuò)誤的需求,我們也只能交付錯(cuò)誤的軟件。你可以因?yàn)檐浖缓糜枚?zé)怪我們,但是你給了我們不對(duì)的需求在先。最終浪費(fèi)了雙方大量的時(shí)間,也浪費(fèi)了很多錢。軟件開發(fā)者也許很聰明,但是只有你了解你的業(yè)務(wù)需求!

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

為了交付一個(gè)好的軟件,開發(fā)者應(yīng)該在項(xiàng)目中全力以赴。但是客戶也不能坐在一邊對(duì)這個(gè)項(xiàng)目不聞不問。如果你想要你的軟件按時(shí)、正確的交付,你應(yīng)該和開發(fā)者保持聯(lián)系,所以我們能及時(shí)發(fā)現(xiàn)問題并修正。這并不需要你無時(shí)無刻的盯著我們工作,你只要及時(shí)的回復(fù)我們的email就可以了,比如說24個(gè)小時(shí)之內(nèi)。我有遇到過一些客戶,在合同簽完以后徹底消失,然后到軟件交付的時(shí)候,跟我講為什么沒有開發(fā)完成?你說呢?!

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

沒有絢麗的界面和大量的新功能并不意味著我們沒有努力工作。事實(shí)上,大量的工作都是和前臺(tái)無關(guān)的。這也是為什么我們應(yīng)該投入資源來改進(jìn)后臺(tái)的代碼。根據(jù) Pareto Principle http://en.wikipedia.org/wiki/Pareto_principle ,20% 的代碼 解決了80% 的問題。這些問題有可能是服務(wù)器性能瓶頸或者數(shù)據(jù)損壞。雖然你花錢在這些方面你看不到軟件的界面變化,但是它是值得的。

5. 提前給出準(zhǔn)確的時(shí)間預(yù)測(cè)很困難

在任何一個(gè)領(lǐng)域,給出項(xiàng)目的時(shí)間預(yù)測(cè)是一件困難的事情。在IT領(lǐng)域更是如此,因?yàn)榭蛻敉恢浪麄兊降紫胍裁础8嬖V我們你的想法,我們會(huì)給你一個(gè)時(shí)間估算,僅僅是估算。需求往往在開發(fā)過程中變化,所以不要老拿預(yù)估的時(shí)間來說事。

6. 程序員也是人

我們也許工作起來,思維方式像是機(jī)器人,我們也許長(zhǎng)時(shí)間在辦公室里不出來,但這并不意味著我們不是人類。當(dāng)你在餐館吃晚飯,或者做飛機(jī)安全著陸的時(shí)候,你會(huì)對(duì)廚師和飛行員表示感激,當(dāng)你的家人在醫(yī)院治愈的時(shí)候,你會(huì)對(duì)醫(yī)生表示感激。那么請(qǐng)也把這份感激、尊重帶給我們。

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

你描述你的問題,讓專業(yè)的人來提出解決方案。請(qǐng)讓開發(fā)者做他擅長(zhǎng)的事情:解決你的問題。在IT領(lǐng)域,開發(fā)者懂的往往遠(yuǎn)遠(yuǎn)比客戶多。也就是說開發(fā)者知道不同的方案的優(yōu)點(diǎn)與缺點(diǎn),他會(huì)選擇正確的解決方案。請(qǐng)不要把簡(jiǎn)單的問題復(fù)雜化,不要告訴我們?nèi)绾谓鉀Q問題,專業(yè)的問題由專業(yè)的人來解決,可以節(jié)省你的很多時(shí)間和金錢。

8. 聽聽我們的建議

正如上一段提到的那樣,開發(fā)者在技術(shù)領(lǐng)域也許比你(客戶)懂的多。如果你想要在你的網(wǎng)站放一個(gè)自動(dòng)播放的視頻,而開發(fā)者建議你不要這么做,那么聽他的。因?yàn)樗呀?jīng)做過類似的案例,并且知道自動(dòng)播放讓很多人很厭煩。你喜歡這個(gè)視頻,但是其他人不一定。如果你的開發(fā)者建議你不要使用Flash,那么相信他。他知道使用Flash的不好的地方,也許你不知道。

結(jié)論

軟件開發(fā)者需要做所有的努力來完成一個(gè)好的軟件。有很多書籍講述了關(guān)于如果控制軟件質(zhì)量,怎么做需求分析,敏捷開發(fā)等等。但是作為客戶,你也應(yīng)該遵循一些基本的原則。最大的問題往往是客戶希望項(xiàng)目的預(yù)算越低越好,卻不斷的更改需求,還沒有很好的溝通。

關(guān)鍵詞:客戶軟件開發(fā)

贊助商鏈接: