[產品開發]軟體產品開發的五大支柱
軟體產品在開發時期必須要兼顧以上五個面向,才能算是一個很完整的產品方案,否則往往只會增加額外的人力負擔,以下就上述幾點分別陳述:
開發
需先探討我們是否選擇了正確的framework?選擇了.net framework或者J2EE的解決方案是否擁有足夠的資源可以support我們完成我們所需要的功能?而我們的成員是否熟悉這些工具?這些問題點是在開發層面需要被考量進去的,選錯了framework或者工具,可能都會導致後續遭遇問題時沒有足夠的資源可以協助我們解決問題,又或者開發人員本身對於該工具的熟悉度原本就不足,那就不能期望會開發出什麼了不起的東西來了。
維護
我們的設計架構是否完善,是否擁有足夠的Library?是否follow標準的Coding Style?是否將共用的功能都抽成獨立的Service或者Component,修改問題時往往可以改好一個地方就等於修正完全部錯誤,而不用一支程式一支簽出來調整;當維護團隊換了一批人,新的這群人是否可以很快的銜接起維護的責任,這都會受到產品的維護架構是否清楚、完整所影響。
版更
寫完之後沒有問題的系統幾乎是不存在的,而在專案團隊中,負責產品版更的人往往就是程式人員本身,面對這個專案,我們很清楚我們應該要版更什麼樣的內容到客戶家;但在產品維護中,由於同一套系統面對的客戶數目可能有數百家,我們很難去記錄每家客戶目前的版本狀態,加上負責版更的人員可能是服務人員而非程式人員,我們不能寄望服務人員能夠記住每個版更細節,這時候唯有提供一套完整的版更機制讓服務人員依循此SOP或者使用工具直接幫客戶端做版更,這時候有一個好的版更架構與沒有版更架構的差別就很大了。
佈署
產品開發完成我們也需要安裝到客戶端,與版更的部分遭遇的問題相同,負責安裝的人員可能也不會是產品的開發人員,而是服務人員,若我們的安裝方式太過複雜又或者需要設定的參數過多,都會造成額外的負擔,如果我們在一個JSP的Web產品中想要加入圖表的功能,這時候我們可能就不會選擇ASP.NET Chart Control做為我們的解決方案,因為為了這個圖表,我可能需要額外安裝.net framework 3.5,又或者還要多架設IIS,這對於一個以JSP為架構的產品來說都是很大的不便利,我們可能就會開始尋求其他的解決方案,一方面降低佈署的困難,另一方面也減少JSP產品的開發人員需要同時熟悉JSP跟ASP.NET的可能。
客製
一體適用的產品在市面上根本是不存在的,不管是大到OS、ERP或者小到EIP、電子表單等基本系統,一定都會有客製化的需求,當客戶數目多時,程式量化的能力可能會是一項很重要的指標,因此產品本身客製的能力是很重要的,但這邊的客製與專案系統的客製又有很大的不同,專案的客製可以專for這家客戶進行程式架構的調整與變動,但產品的客製需要follow標準規範來進行,否則前頭四個面向可能都會受到影響。
一套軟體產品在進行新技術評估時都需要將以上幾個層面考量進去,避免功能雖達成了,但卻造成其他面向的問題,產品開發的難處不在功能是否能夠實現,而在以上五個面向是否能夠兼顧。
游舒帆 (gipi) 探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。 |