PTT 鄉民大哉問:工程師該不該為「商業邏輯」負責?
PTT 鄉民大哉問:工程師該不該為「商業邏輯」負責?
工程師照 PM 要求走,最後出事卻是工程師的錯?
故事的原 PO 是一名工程師,他 自述 最近在公司遇到的一件事情,讓他感到非常疑惑。
事情是這樣的,他在公司接下了一個專案,而與他對口的 PM(專案經理)看似也非常正常,中間 PM 也都很積極的與工程師溝通,一切看似美好。
但直到產品上線之後,才發現原來 其中有許多的設計並不符合商業邏輯 ,導致運作的成果非常慘,為此這位工程師必須不斷的緊急修復,花了一個半月的時間總算是修好,但公司也因此倒賠了幾萬元。
在事後的檢討會議上,主管詢問原 PO 為什麼沒有注意到商業邏輯有誤,原 PO 表示這不是應該是 PM 要注意的事情?況且在溝通過程中一切都是按照 PM 的要求,有問題也都盡力協助排除了,自己也只是按照文件規定執行。
後來主管便語重心長的告知,「現在市場變化很快,有時候 PM 需求沒辦法開的完整」,認為 工程師應該自己要學會商業邏輯,並且主動跨一步出來協助 PM,對職業生涯也有幫助等等。
最令原 PO 心冷的是,過了兩天,部門主管寄信告知他,若是再有一樣的狀況發生,公司就只能選擇將原 PO 解聘,這讓原 PO 非常錯愕,因為認知中,這種事情是 PM 的事情,為何最後是由他「背鍋」扛下了此次事件的錯誤責任?
因此,他詢問,難道現在的工程師真的都該了解商業邏輯嗎?
什麼是商業邏輯
看到這,我覺得我應該先解釋一下,商業邏輯到底是什麼。
舉例而言,今天工程師寫一個可以留言的程式,他只會關注「讓使用者寫入資料,其後記錄下來後並呈現」的功能如何實現。
但是如果套用了商業邏輯,就必須還要考量:留言區域該如何呈現?要如何給使用者輸入?輸入頁面該有哪些資料?留言後的編號該如何編碼?如何寫入 / 讀取留言資料庫?我要如何呼叫資料庫會比較好?該不該增加驗證?……
說白了,商業邏輯要思考的並非只是「如何做出這個功能」,而是「如何呈現這個功能 / 如何實現我設計這個功能的目的」,因此這類事情在規劃時,大多是由 PM 與客戶溝通完成後,再由 PM 與工程師討論,確認執行方式。
個人心得
原PO就快要可以領畢業證書了,真讓人羨慕阿