PTT 鄉民大哉問:工程師該不該為「商業邏輯」負責?

PTT 鄉民大哉問:工程師該不該為「商業邏輯」負責?

PTT 鄉民大哉問:工程師該不該為「商業邏輯」負責?

 

資料來源: https://buzzorange.com/techorange/2018/04/26/ptt-ask-should-engineer-responsible-for-business-logic/?utm_source=TOLINEIMG_0426_PTT

工程師照 PM 要求走,最後出事卻是工程師的錯?
    故事的原 PO 是一名工程師,他 自述 最近在公司遇到的一件事情,讓他感到非常疑惑。

    事情是這樣的,他在公司接下了一個專案,而與他對口的 PM(專案經理)看似也非常正常,中間 PM 也都很積極的與工程師溝通,一切看似美好。

    但直到產品上線之後,才發現原來 其中有許多的設計並不符合商業邏輯 ,導致運作的成果非常慘,為此這位工程師必須不斷的緊急修復,花了一個半月的時間總算是修好,但公司也因此倒賠了幾萬元。

    在事後的檢討會議上,主管詢問原 PO 為什麼沒有注意到商業邏輯有誤,原 PO 表示這不是應該是 PM 要注意的事情?況且在溝通過程中一切都是按照 PM 的要求,有問題也都盡力協助排除了,自己也只是按照文件規定執行。

    後來主管便語重心長的告知,「現在市場變化很快,有時候 PM 需求沒辦法開的完整」,認為 工程師應該自己要學會商業邏輯,並且主動跨一步出來協助 PM,對職業生涯也有幫助等等。

    最令原 PO 心冷的是,過了兩天,部門主管寄信告知他,若是再有一樣的狀況發生,公司就只能選擇將原 PO 解聘,這讓原 PO 非常錯愕,因為認知中,這種事情是 PM 的事情,為何最後是由他「背鍋」扛下了此次事件的錯誤責任?

    因此,他詢問,難道現在的工程師真的都該了解商業邏輯嗎?

 

什麼是商業邏輯
    看到這,我覺得我應該先解釋一下,商業邏輯到底是什麼。

    舉例而言,今天工程師寫一個可以留言的程式,他只會關注「讓使用者寫入資料,其後記錄下來後並呈現」的功能如何實現。

    但是如果套用了商業邏輯,就必須還要考量:留言區域該如何呈現?要如何給使用者輸入?輸入頁面該有哪些資料?留言後的編號該如何編碼?如何寫入 / 讀取留言資料庫?我要如何呼叫資料庫會比較好?該不該增加驗證?……

    說白了,商業邏輯要思考的並非只是「如何做出這個功能」,而是「如何呈現這個功能 / 如何實現我設計這個功能的目的」,因此這類事情在規劃時,大多是由 PM 與客戶溝通完成後,再由 PM 與工程師討論,確認執行方式。
    
個人心得
    原PO就快要可以領畢業證書了,真讓人羨慕阿

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *