筆者上次寫到,近年許多企業委託服務供應商代為進行數碼轉型時,經常會遇人不「熟」,即不幸遇上對技術不熟悉、欠經驗的IT公司,所託非人之下,隨時事倍功半。
但另一類陷阱,是有關的IT公司顯得「有心無力」。即使遇到一些IT承辦商在技術上有能力,但卻人手不足。他們不斷找生意,當生意接得過多,自己公司團隊人手短缺,於是就會人才外求,甚至再外判給其他公司。這樣雖然可以勉強應付,但當要負責的是一些要求比較複雜的項目,或一些客製化系統時,就往往會出現問題。
要做好一個軟件系統,有足夠人手以組成一個有開發經驗的團隊,是十分重要的。軟件開發有如建造房屋,每一個步驟要清晰和按部就班。如果你委託一家IT承辦商為你公司開發軟件系統,最初和你傾談的是一組人,但最後落手展開工作的又是另一組人,而他們對之前談過或研究過的重點與細節都沒有資料或記錄,這樣你很可能已經遇上陷阱!
可能性1:IT承辦商因人手不足,於是招聘合約軟件開發人員(Contract Developer)前來「幫拖」。問題是,要做好複雜項目,其項目經理及開發人員的團隊精神和默契是相當重要的。如果只是臨急抱彿腳找些替工來做,會出現技術參差的情況,令做出來的產品質量沒有保證,往往不能準時交貨,亦有很多不能夠完成,即所謂「爛尾」。
可能性2:IT承辦商已把你的項目外判給其他公司,甚至已「判上判」。如此情況下,項目成功率一定會大打折扣,因為外判或再判公司能收到的開發費用會肯定少了一截,於是他們不會把公司的精英分派到這類項目。此外,外判公司很多時是在開發過程中途參與,而不是從頭開始參與整個銷售及商討過程,項目的複雜性與各樣細節可能沒有妥善記錄和交接,大大影響系統開發的效率與成功率。有些承辦商更會將整個或部分項目外判到其他國家,令事情更加複雜,牽涉了不同的溝通語言、工作文化、編碼慣例、做事方式等,往往會令做出來的系統有更多問題,增加「爛尾」風險。
企業要避免跌進這種陷阱,最重要的是在進行任何IT項目時,都需要有一位具備經驗的項目經理。有些公司本身並沒有項目經理這個角色,亦未必需要長期有這個職位,我建議可以先行以合約形式聘請。項目經理的工作包括:
- 深度了解公司對系統的需求,並將其製成文檔以作為招標要求
- 與軟件承辦商溝通,避免系統開發出來後達不到公司的要求
- 負責招標管理,確保流程公平及合規
- 負責與承辦商制定合約,保障公司利益
- 管理項目進度,避免開發延誤
此外,企業要注意在相關合約上清楚列明項目要求、短/中/長期目標和限期、付款時間表,以及一旦承辦商不達目標的罰則。如果是客制化的項目,最好要求取回軟件的源代碼(Source Code),事先列明是否需要付額外費用。同時也要事先協議,是否容許承辦商就項目安排上述的合約軟件開發人員或外判。