Truth vs Expect
研發人員,通常都要依照他人的需求或者是設計文件,撰寫出相關的功能,但提出需求的人,通常都是不瞭解軟體的限制 (這很合理,因此需要有專門的人替這種事情解套)。
舉個最近工作上所碰到的例子,使用者在使用Oracle資料庫的時候,提出了一個疑問,[為何新增的資料沒有照者順序排列?],湊巧的是,Oracle本身的特性就是如此,新增的資料不一定會照者順序排列
http://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns008.htm
If you delete a row, then Oracle may reassign its rowid to a new row inserted later.
但使用者並不知道這點,因此就會不斷跟研發人員盧。於是研發人員就要不斷的解釋技術上的問題給對方聽,但對方又不接受此事實,於是衝突就會逐漸升高。
就以產品面而言,這件事情並無對錯之分,只有立場不同之分,研發人員是站在技術面的角度敘述Oracle的特性。而使用者只是想要資料照者順序排列,因此如何讓這樣事情有[共識]就顯得很重要,但若可以輕易取得共識的話,那這篇文章就沒有必要存在了(笑)。
就依照Oracle的例子來看,可以把劃分成幾種角色 1.客戶, 2.技術人員。客戶是不管技術,只管好不好用跟有沒有支援。而技術人員則是依照個人能力/技術限制去判斷能否達成。由上述兩點可以得知,兩邊的權責上是有極大的落差,因此需要其他角色(註二)處理/協調這樣的[落差],至於最後是哪邊會和平落幕(?),就要看協調人員本身的功力了。
註一:若一定要讓資料照者順序排序,並無不可,只要利用新增FID流水欄位即可,但此點做法會有討論空間,因為客戶不一定會希望軟體端自己去動到Oracle的欄位。 註二:其他角色泛指PM,主管,業務,支援人員..etc。