[產品開發]談定位,什麼該做?什麼不做?

[產品開發]談定位,什麼該做?什麼不做?

在一項產品中,我們可能會認為功能愈多愈好,最好多到超乎想像,讓客戶有無限多的選擇,讓開發人員有無限多的component可以reuse,原則上這個概念並沒有什麼錯,就是在幾個點上需要多加留意:

1.功能需求上百個,哪些先作效益最大?要做有沒有人力?有沒有能力?
2.這個功能對產品定位對不對?會不會跟另一個產品線打對台?
3.功能愈多代表顧問需投入輔導的能另愈高,架構愈複雜代表進入門檻也會墊高,以產品定位來說,恰當嗎?

我們在開發產品時習慣會幫產品架構framework,而framework一般分為三大類:
1.Basic Framework:
我們常見的.net framework、J2EE等就可以稱之為Basic Framework,幫我們處理掉最底層的Memory、OS Coordination,並提供開發IDE與其他工具讓我們可以發展我們的系統。

2.Technical Framewrk:
例如以.net framework為基礎,向上發展出基礎的Library、UI Pattern、Control、Base Flow,這個Framework的目的是減少產品開發的重工,讓多項系統可以使用這樣的Technical Framework來發展各自的應用程式,因此這個等級的Framework的特性是公用、標準,可以跨越不同的產品線Domain。

3.Application Framework:
以Technical Framework為基礎向上發展,Technical Framework已經做過了這邊就可以省略不進行了,而這個等級的Framework要做的就是發展Application-Specific的Framework,例如ERP,就可以發展自己的財務、進貨、銷貨等等功能,而這些功能在該系統中是可以被重複使用的;又例如電子表單,就可以發展自己的Flow-Engine,這個Engine就是電子表單這個Application Framework的核心,而ERP與電子表單所共通的基礎功能就交給Technical Framework來完成了。

然而在三者之間大多存在一些模糊地帶,而這些模糊地帶就容易引起一些紛爭,例如一個Log的功能該由哪個等級的Framework來提供?在Basic做好像不錯,在Technical作也行,但如果Application覺得Basic跟Technical提供的都不夠好,想要自己弄行不行?這類的問題沒有什麼標準答案,完全要看定位才能決定。

舉例來說,.net framework本身屬於Basic Framework,如果為了自己產品的方便,加入了一堆其他系統用不到的功能,恰當嗎?可能不恰當,因為如果是定位在標準、開放,那這些功能並無法被再用;也可能恰當,如果.net framework本來就是用來輔助微軟其他產品發展,那我們也只能摸摸鼻子當成沒看到這些用不上的功能,所幸目前.net framework仍然是很標準的一個Framework,定位上也夠清楚,它做了該做的,雖然偶爾會做了一些不該做的,但仍然會做些補救。

再舉一個例子,今天我是做汽車零件、引擎、輪圈的廠商,我的定位很清楚,我就是要做不同小型車供應商的零組件供應商,而跟我訂貨的包含TOYOTA、BMW、VOLVO、福斯、賓士等大公司,如果今天BMW希望我多裝一個表面是核桃木車頂以增加質感,而這個改變將會幫他們的車子增加10萬的售價,如果我做了,那TOYOTA、VOLVO這兩家客戶可能不會使用,因為售價提高太多了;又或者TOYOTA希望拿掉一些預設零件,以降低車體重量,讓車子更省油,但BMW卻認為這些功能是必備的,不能拿掉,遇到這樣的問題時,你只能從定位來解釋了(當然擴充產品線會是另一種方式,但這是另闢產線,而不是在本來的範疇內解決)。這無關乎做的到做不到,而是該不該做的問題與做了的效益問題。

回到主題,我們可能都有機會發展到Technical Framework,發展初期一定要好好的幫它做定位,如果定位是支援廣泛性的系統開發,那就要做得夠標準,跟產品Domain有關的內容,或者單一產品的需求就不適合做進來,但為了保留架構的彈性,應該要可以允許Application Framework自行擴充功能;而如果定位在支援特定兩項產品開發,那就可將兩個產品共通性的需求納進來,簡化Application Framework發展的困難。

這邊切記一點,該做或者不該做不應該依個人喜好決定,而是該回到定位,以免你的Framework發展到最後成了四不像,從專業的角度決定什麼該做,什麼不該做,才不會讓自己後續維護產生一大堆問題。

我自己在維護Technical Framework時最常遇到的狀況就是A產品來找我說,為什麼B產品提的功能你都納進去,我提的你都不納入?有偏心的嫌疑,我的回答還是以定位做考量,只針對提的需求內容來做衡量,而不是以對方跟我的熟悉度決定。不過即便我不做,我還是會提供解決方案給對方,讓他能快點向下進行。

在定位上,先定清楚,發展時才能更加順利。

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。