程序員如何承接軟件外包項目

現在外包的軟件項目不斷增長,但隨之而來的,承接外包的軟件公司、軟件團隊也越來越多,包括很多個人SOHO一族也加入到承接軟件的競爭行列中來了,因此現在對於軟件項目的爭奪也很激烈。有很多人不知道上哪裏去爭取項目,總是抱怨沒有項目做;也有的人雖然編程技術不錯,但是對於與客戶談項目卻是一竅不通,結果應該拿到的項目也拿不到手;也有的雖然已經接到了項目,卻發現在實施開發的時候遇到好多從來沒有遇到過的問題。作爲一個多年從事外包項目接單的軟件開發人士,我想從以下幾方面談談我的經驗,希望對大家會有所幫助。

第一點, 到哪裏接項目

軟件團隊或SOHO最爲關心的一點是在哪裏可以找到項目做,也就是到哪裏可以找到有外包需求的客戶。對於一般人來說,廣交朋友然後通過熟人介紹還是接項目的第一途徑,但這要求你的朋友或熟人要在企業或公司裏有比效重要的管理位置,對於像那些每天只能是埋頭寫代碼的程序員這顯然是不太現實的。所以大家不能等着項目來找你,而是要主動的出擊去找項目。

現在網上有很多軟件外包網站,在這裏你可以找到不少的軟件外包信息。比如GAF (即Get A Freelancer - 是目前國外最流行的外包站點)上就有大量的軟件外包信息。不過這裏每天外包的項目雖然很多,但競爭也很激烈。一般一個外包信息發出後一天內就會有無數個競爭者(很多印度阿三在和你拼報價),所以能第一時間與客戶取得聯繫是非常關鍵的。因爲客戶一般都是先入爲主的,一般來說,如果第一個談項目的人他覺得滿意了,就會對其他的競爭者不再予以考慮,所以你要經常上網站上看看有什麼最新的項目,並立即與項目的發包方取得直接的聯繫。其他比如ElanceGetACoderScriptLance上也有很多外包的信息,大家可以自己上去看看。

是不是第一個聯繫了客戶就高枕無憂了呢?也不完全是這樣的。前面說過了,一個項目總是有很多人去競爭,就算是你搶先聯繫了客戶,但可能後來又有不少人也同樣聯繫了他,而客戶在這種情況下一般是處在比較猶豫的情形之中,這時,你就要經常不斷地聯繫客戶,不斷地徵詢客戶的意見,詢問客戶的項目需求,把你對項目的理解也經常與客戶交流。這樣,客戶會覺得你比較有誠意來接這個項目,就會比較傾向於把項目交給你來完成。有時,與客戶拉拉家常,也會拉近你與客戶之間的距離。說不定你會意外發現客戶原來還是你的老鄉,那就更好談了。總之,如果你想要想爭取到項目,就要經常不斷地與客戶保持聯繫,直到最終達成意向。

第二點, 如何與客戶談需求

接項目最重要的一步是與客戶談需求。客戶對軟件的需求是項目規劃和實施的根本,所以在與客戶談需求時,一定要讓用戶將所有的想法儘可能的闡述清楚,並把所有的要求羅列出來。這時候不應該害怕“勾引”起客戶的潛在需求而增加設計開發的工作量。而應該直接明白地要客戶把項目的要求一條條地列出來。這時先把條理、歸納、分析先都扔到一邊去,用紙筆將用戶最原始、最完整的要求準確地記錄下來。假如項目在你對客戶的需求沒有完全瞭解清楚的情況下就匆匆上馬,那麼就會隨時發生意想不到的變更,輕則使項目延期或超出預算,重則使得原來已經做好的軟件要徹底推倒重來。

所以我們在實施項目之前應該深入瞭解和挖掘客戶需求,對某些不明確的需求要與發包方反覆進行討論,對於項目實施過程中的需求變更要規定處理辦法,並形成項目的最終需求。在需求分析階段,接包方首先對發包方的需求認真分析,然後通過業務建模、會談、問卷、需求會議等方式收集客戶完整需求,形成文檔,然後經過客戶討論、客戶審查、文檔修訂等多次反覆的過程。有一點需要注意,即使雙方談的很投緣,在討論需求時也一定要詳細周到,精確到每一條不能再劃分的軟件功能爲止。

要消除客戶的疑慮 - 作爲客戶,他對於項目的承接者總是存在各種疑慮。比如,這個項目究竟承接方有沒有能力開發啊?項目組人員是否有這方面的經驗?是否作過類似的產品,是否有這方面的技術能力?會不會只是騙了預付款就開溜啊?最後完成的項目能不能達到自己的要求啊?我們作爲承接者,就是要千方百計打消客戶的這種疑慮。比如,你要經常準備好一些成功的案例和以前的項目的DEMO,就是把你以前成功完成過的項目,做成一個DEMO給客戶看,讓他覺得你是有能力完成類似的項目的。俗話說,事實勝於雄辯,把你以前做過的類似的項目DEMO給他看,好過你一遍遍空口的承諾。因爲軟件開發的過程中誰也不能保證一點問題不出,相比較而言,一個有經驗的開發人員會更容易得到客戶的信任。因爲你已經有和客戶的項目功能接近的案例,無疑會縮短開發週期,技術上有更好的保障,因此客戶也更樂於把項目交給你。所以,程序員平常必須多花點時間和精力,蒐集整理以前自己做過的項目案例,並把它們分門別類地整理出來,遇到同類項目的客戶,就可以給客戶進行演示,這樣客戶就會放心把項目交給你了。另外,把團隊組成人員、技術能力、經驗等客戶看重的東西整理出來並給客戶看,也能夠對爭取到項目起很大的作用。

第三點, 如何合理地報價

在完全瞭解客戶的需求後,下一步就是要確定一個合理的報價。接包方要從跟客戶的交談中儘量地瞭解出客戶的準確意思,思考客戶想要的是怎樣的一個軟件,項目複雜的程度多大,客戶的要求有多高,客戶的性格如何,能夠接受的價格範圍等等,這些因素對於軟件項目的報價都是密切相關的。如果客戶要的是一個小型的軟件系統,不太苛求有多全面的功能,只要滿足某一方面的需要,並且客戶又是一個比較隨和的人,那麼項目可以報一個接近成本的價格;相反如果客戶要求的是一個面面俱到的管理系統,需要有各方面的功能,缺一不可,並且客戶又是那種對項目要求嚴格苛刻,絕不變通的人,那就要充分考慮各種不穩定的因素,報一個比較高的價格。

在很多的情況下,客戶在跟接包方談項目之前,心理都已經有一個價格底線。如果要投入的費用超過了客戶的預算範圍,客戶將不再與你談該項目,他會轉而找其它軟件團隊商談。所以跟客戶談項目的過程中要迅速地思考客戶需求的真正含義,能夠通過某種轉換和變通,把客戶對於技術的要求與自己團隊的技術力量可以接受的價格相對比,從而得出一個雙方都能接受的報價。在與客戶的談判當中,靈活變通是成功的關鍵之一。當然並不是所有的客戶都可以通過變通而滿足,遇到客戶不認同項目費用的情況一定要處之泰然,真誠地爲客戶解釋,把客戶的需求細化爲技術上的要求給他分析,讓他同意你的報價的合理性。即使客戶對編程技術不是很瞭解,但經過你的細緻的分析後也會對你的報價表示認同的。

軟件外包如何正確定價

隨着行業競爭激烈,越來越多的公司對信息化存在很大的需求,因而軟件外包業務近年來始終保持了較快增長速度。從這幾年的統計數據來看,軟件技術服務始終以高於行業平均增長速度增長,軟件外包的市場也相應地在不斷地擴大。但現實中很多人卻感嘆軟件外包難做,其中最難的就是外包的定價,這也是由於軟件商品的特殊性所決定的。軟件不同於其他有形的物質產品,比如電腦,由於製造電腦需要原材料,還需要加工。把這兩部分的成本加起來再加上利潤就可以得出一臺電腦的銷售價格。而軟件不需要有形的物質,完全是程序員的腦力勞動的結果,因而在很多普通人看來,似乎是不需要任何成本的。軟件業者常感嘆,企業客戶都願意花錢購買昂貴的經營設備,卻在軟件上斤斤計較,同樣是生財工具,爲什麼花錢的意願相差這麼大?這樣的想法也反映在個人客戶身上,大多數的人願意花錢購買價格昂貴的CPU和顯卡,但對於軟件,只想到如何省錢,甚至使用盜版。

本人在軟件外包領域工作了很長的時間,經常接觸到軟件外包的雙方,因此經常聽到項目雙方的心聲。外包方經常抱怨接包方漫天要價,價格貴得離譜;而接包方同樣怨聲載道,認爲自己的收入還不如一個民工來的多,感慨現在的軟件比白菜賣得還便宜。這其實就是因爲雙方對軟件外包如何計價沒有一個統一的標準,因而造成雙方在軟件外包的價格上爭執不下,甚至導致項目的談判完全破裂。反映在現實外包中,項目的發包方和承接方在價格這個問題上經常存在巨大的差距。我就見過一個客戶外包一個類似QQ這樣的及時通訊軟件,外包方認爲正常的費用只要5千元,而承接方卻咬定要5萬元才能完成。

那麼對於外包的價格有沒有一個統一的標準呢?當然有的。學過經濟學的都知道,商品的價格由商品的價值來決定,而商品的價值又由生產商品的社會必要勞動時間決定。有形的物質產品是這樣定價,無形的軟件產品也同樣是這樣來定價的。軟件外包也有一個統一的計價標準,具體來說,外包費用=每位程序員每天的工資×項目所需要的工期(天數)×人數。這裏的每位程序員每天的工資是由當地的程序員的工資水平來決定的,比如在上海,程序員的平均工資是6000元/月,那麼每天就是200元。項目所需要的工期是指按正常的每天八小時工作制估算,該項目所需要的平均一般工作時間。注意,有些兼職者只能用業餘時間來做項目,因而工期就長,但真正的計算工期是以平均的社會必要勞動時間來決定的,所以計算工期只能以正常的每天八小時工作制所需的時間爲準。至於人數,因爲有的項目不是一個人就可以完成的,比如一個網站項目,就需要有後臺程序員、前臺設計師以及美工共同配合完成。所以需要的人數至少是3人。舉例來說吧,比如一個軟件項目,要求設計方在1個月內完成,大概需要4人的協作,地點是在上海,那麼項目的費用就是:200(元/天)x 30(天)x 4=24000元。所以該項目的合理定價應該是2萬4千元。

實際外包時,外包的定價應該是在需求確定之後。接項目最重要的一步是外包的雙方在一起談需求,客戶在談需求時應該把對軟件的所有要求都提出來,而接包方就依據客戶的需求來確定項目所需要的工期以及人數,再套用前面的公式就可以得出外包的費用是多少。接包方應該把計算出的價格詳細解釋給客戶聽,如果雙方有爭議還可以進一步討論。這樣訂出來的價格雙方都會覺得滿意,也有利於項目的順利實施。

當然在實際的軟件外包中,實際的價格還要受到供求關係的影響。因爲商品價格雖然是以其價值爲基礎,但在供求關係的影響下會圍繞價值上下波動。建議外包方在發佈項目時,選擇那些軟件外包公司和團隊比較集中的網站,比如(http://www.php168.com)等,由於在這些網站的軟件外包公司和團隊比較多,發佈項目後一是可以馬上得到回覆,因而可以儘快找到項目接包方;二是由於競爭者衆多,可以貨比三家,選擇一個相對比較便宜的價格來外包項目。當然從承接方來說,也要儘量避免惡性競爭,以免搞亂軟件外包市場的正常價格秩序,否則到頭來受害的還是你自己。

總之,軟件作爲特殊的商品,雖然定價相對比起有形的商品來說要複雜一些,但只要掌握了統一的價格標準,還是可以得出一個比較準確的報價來的。只要外包的雙方能心平氣和地坐在一起認真計算一番,就能得出一個雙方都能滿意的價格,外包的意向才能真正達成。也只有外包的雙方按照按照統一的計價標準,遵循公平交易的原則,軟件外包這個市場才能不斷髮展壯大。

第四點, 如何組織團隊

由於客戶的需求是不同的,因而項目也是各種各樣的。有網站設計項目、也有軟件設計項目,要求使用的編程語言也是多種多樣的。即使是在一個項目中,比如說網站製作的項目中,也有着前臺的美工設計和後臺程序的編寫的分工。這些工作如果全部交給一個人去作那是絕對完成不了的。即使是一個小的團隊,也不能保證所有的人才都齊備。因此最好就是自己把項目初步設計好,然後找合作伙伴共同開發,自己總體掌握整個項目的全部進度。如果在身邊沒有好的合作伙伴的話,網上也能找到不少可以合作的夥伴。

第五點, 如何能收到項目款

這是整個項目中最後也是最難的一個環節。即使你的項目做得再好,如果沒有收到款,那你前面的一切努力都等於是零。要想項目能順利地收到款項,那麼從項目未開始之前的談判階段就要對這一點加以注意。首先要判斷對方是否是真心外包項目。這裏有幾點經驗拿來給大家分享一下:如果你看到項目中說 “請提供完整的解決方案和成功案例發到某某郵箱”,這應該只是想套取設計方案而已,發幾張你們公司或團隊的推介廣告和報價單給他即可。還有的客戶張口就要源碼要設計文檔設計方案的,這種人目的性太強了,如果你真給了他就再也不理你啦。還有的外包方死活不肯介紹自己,不肯告訴自己是誰、怎麼稱呼、怎麼聯繫、是什麼公司、做什麼業務的,與這種連最基本的誠信都沒有的客戶就根本沒有必要談下去。其次是判斷對方是否有充足的資金和實力,項目要求是否合理(技術、週期等各方面)。這個可以在需求的談判中可以有意識地來加以探明,如果對方的項目很大卻老是強調項目非常簡單,這應該是不想付足項目款;有的發包方堅持不肯給預付款,老是要求項目完成後再交全部款項,這應該是沒有誠心付款。還有的項目要30天才能完成卻只給幾天的開發時間,這種項目外包方也是很值得懷疑的。

對於軟件團隊或個人SOHO族來說,由於不是公司,對方對於我們的信任度不會很高,所以對於大的項目一定要採用合同方式,這樣出現問題纔好解決。在合同中,最好訂清楚分階段來付款,這樣有利於分散風險。比如,一般要求合同訂好後先交30%的定金,項目進行到一半後待客戶驗證後交50%的項目款,全部項目完成並交付後再交清全部款項。這樣做對於客戶來說也比較好控制項目的進度,因此對方也比較容易認同並接受。

以上談了軟件團隊或個人在承接軟件項目時應該注意的幾個關鍵問題,其實還有很多問題由於文章的篇幅所限沒有涉及。比如對於項目的選擇,有的人大的項目做不來,小的項目又不願做。結果到頭來什麼項目都承接不到。因此一開始要把自己的期望值放低一些,先從一些幾百元的小項目做起,有了一定經驗後再接一些大項目,這樣循序見進才能不斷進步。

本文來自:http://www.freelancer-life.cn/basic-knowledge/coder-project.html

發佈了26 篇原創文章 · 獲贊 12 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章