軟件外包指將企業未搭建軟件開發技術團隊,下放給專門做軟件開發服務的第三方公司,原因是為了節省成本,減少試錯成本,利用軟件公司的專業服務提高工作效率。
下面講一下軟件外包項目的開發流程:
1、收到客戶意向后,第一步需要弄清楚客戶的需求,有些客戶的需求是一兩句話,有的客戶的需求是參照XXX應用,有的客戶專業一點會給出一個大概的需求說明,還有極少一些客戶會給出很詳細的需求說明文檔(有可能是從別的地方詢價拿的,或是公司本身有專業人員)。我們希望得到一個比較詳細的需求說明,但大部分的客戶給不出來,尤其是傳統行業的客戶,對軟件領域了解不多。所以第一步我們要通過各種渠道去了解清楚客戶的真實想法。
對于始終說不清楚自己想要什么,我們各種了解后也仍然搞不清楚的客戶我們一般都會拒絕。
2、通過第一步的了解,基本上會清楚客戶的背景、想做什么。這個時候我們會判斷客戶做項目的意愿有多少,有一些客戶只是隨便詢一下價,意愿并不強,另外我也會大概了解一下客戶的大概預算,對于我們判斷意愿不強的客戶,如果需求不復雜,或者有提供略詳細的需求,我會大概評估回復一個價格和工期。對于預算差別很大的客戶,我評估做不了的也會告知客戶。
另外如果判斷項目里面有一些技術點是我們沒有把握的,也會很謹慎,盡量不接。
對我們判斷有意愿而且有希望成單的客戶,根據客戶給的需求情況,如果客戶沒有比較詳細的需求我會幫整理列出來,并且附上比較詳細的評估結果,工期、價格。
3、報價單給到客戶后等待客戶回復,有意向的客戶會聯系進一步的溝通,有時候可能會有幾輪,要看客戶的需求情況,在這個過程中根據談的結果會對需求列表做一些更新。到雙方達成口頭協議后,我會擬好合同,附上需求列表,雙方簽字蓋章。
合同中需要說明雙方權利和義務,項目工期、價格、付款方式,以及雙方違約責任,處理方式等。更詳細一點會將項目的技術要求、技術標準等列出來。合同寫得越詳細越好,對雙方來說都是一個保障,避免項目后期雙方糾紛。
對接包方來說,非常害怕在開發過程中,需求方的需求不斷變動,這會導致開發團隊一直陷在里面,項目遲遲不能結項,項目本身成本提高,也影響其它項目。
需求方也害怕開發方不負責任,做的時候不用心,因為軟件這東西有特殊性,又不可能一行一行去查代碼,只能通過不斷測試來測試軟件質量。很大程度上項目的質量跟開發團隊的技術實力、項目管理 、認真程度有關。
4、合同簽訂后,我們會開始做開發準備工作,等客戶首付款到賬即啟動項目,項目開發流程大體為:需求列表細化–>制作需求原型–>原型確認–>UI設計–>UI確認–>編碼–>交付測試版本–>驗收修改–>結項。
根據項目流程有時候會略有變化,但大體上是這樣,越是復雜的項目流程要越嚴謹,前期需求分析的時間也要更長,盡量避免到開發后再來修改,越大的外包公司流程也會越嚴格,對于小一些的公司為了提高效率流程上會更敏捷一些,但在輸出物上面可能沒有大公司那么嚴格。不過不管怎么樣,最終結果是把項目按期做出來,并保證質量讓客戶可以正常使用,這是最重要的。
5、項目結項后,還會關系到后期維護的問題,我們一般會提供半年或一年的質保期,質保期對于軟件本身的BUG或功能缺失是免費修改。但對之外的維護會跟客戶協商維護費用。對于一些工作量不大的事情我們一般也會幫忙搞一下。軟件外包本身就是一個服務行業。但有時候也要適可而止,有些客戶不太懂,會覺得這個事情這么簡單搞一下就好了。我會跟他們說明會有工作量會產生費用。公司畢竟要生存。
這是一個大致的流程,在具體執行過程中,會根據項目有所變通,在各個流程中也還會有一些要注意的事項,一般項目開發過程中也都會有需求變動,雙方本著誠意合作、我們也本著認真負責的態度能幫客戶解決盡量解決。總之一切以項目為重。