# 開發問題討論 03 摘要重點: 1. 文件問題: • 文件設計不夠針對 RD 團隊,需求條件過於籠統。 • 文件更新未通知 RD,導致拿到錯誤資訊開發,並在後期交付時發現不符合需求。 2. 溝通橋樑不足: • 串接文件規格及測試資料常需 RD 自行取得,導致資訊不足或誤解情況。 • RD 因需要不斷向窗口詢問資料,影響開發進度與思路連貫性。 3. 架構設計變動: • 原本規劃好的架構因為非同步需求的變更,導致邏輯影響超過五成。 • 對方出錯問題未獲解釋清楚,非同步功能測試過程長時間拖延。 4. 工作分配不均: • 其他同事忙於其他專案,開發中的任務突然轉交給我,增加理解和負荷成本。 • 我完成的程式被修改後出現問題,責任常落在我身上。 5. PR 檢查機制缺失: • 團隊未形成共識,PR 未檢查即合併,出現問題後我常遭到指責。 6. 團隊情緒化溝通: • 我試圖保持低姿態道歉,卻常遭遇情緒化反應,讓我困擾。 • 非同步 bug 修復工作在新專案開會議當天仍持續,增加開發的壓力同時還被責怪沒有看文件,但明明就沒有給足夠的時間看文件 (文件至今是不齊全的)。 7. 要求不平等: • 要求RD開發要在沒有齊全的文件及並沒有更新的文件之下完成開發,且不提供足夠的時間測試 • 專案工作拆分時,專案的需求文件還缺漏很重要的部分,這卻是可以被接受的,這樣會不會造成要求的不平等?撇除這樣的感受度很差,也嚴重影響開發的方向及進度,提出來說:就來不及完成,這樣是可以的嗎? • RD 曾幾何時可以說來不及完成? 這需求不合理不能做? 不是做不完都得加班完成,文件卻可以來不及完成就來不及完成? 反正覺得我們不會看這麼快? 都要拿那份文件開發了這句話合理嗎? • 尊敬的主管,您好, 近期我在專案開發過程中遇到一些挑戰,想向您反映,並希望能進一步改善團隊的工作流程,以提高整體效率。 首先,在文件的設計和更新方面,文件的需求條件有時過於籠統,對 RD 團隊不夠友好,導致我們難以掌握具體需求。此外,文件的更新未能及時通知 RD 團隊,常常在開發後期發現不符合需求,這樣的情況讓我們需要重新調整,增加了不必要的工作量。 在溝通方面,RD 因需要不斷自行去取得資料,反覆向窗口詢問資料,會打斷開發的連續性。我建議是否可以有更專門的溝通橋樑來協助 RD 與窗口之間的資訊傳遞,這樣 RD 能更專注於開發本身,減少溝通的中斷。 再者,關於架構設計的變動,之前我們已經針對架構進行了規劃,但因應非同步需求的加入,對系統的邏輯產生了較大的影響,這部分佔據了許多開發與測試的時間。另外,對方系統出錯的情況有時未能得到清楚解釋,影響到我們的開發進度。 工作分配方面,由於每個 RD 擅長的地方不同,有時其他同事因忙於其他專案,開發中的任務會突然轉交給我,這樣我需要花時間去理解和接手,增加了理解和開發的成本。為了提高效率,是否可以在工作分配上進行更清晰的安排,讓每個 RD 能夠專注於自己擅長的部分? 檢查的制度,以確保每個人的程式碼都能夠經過檢驗後再合併,減少不必要的錯誤。 最後,團隊內部的溝通有時會較為情緒化。我一直嘗試保持低姿態,對每個問題都會先道歉,但有時這些問題並非程式的錯誤,而是認知的差異。希望能在未來的專案中,透過更和諧的溝通環境,減少情緒化反應,讓每個 RD 都能專注於開發,順利完成專案。 感謝您聆聽這些問題,期待我們能在下個專案中有更順暢的合作。 --- # 開發上實際上遇到的問題列出項目: * 在開發期間被修改的文件以及規格不正確的文件: ![image](https://hackmd.io/_uploads/rky3NWaJJe.png) ![image](https://hackmd.io/_uploads/BJcT4Z6ykg.png) ![image](https://hackmd.io/_uploads/rk8CE-aJJg.png) * 到開發後期才更新文件及添加重要文件: ![image](https://hackmd.io/_uploads/HypZBZp1kg.png) * SPS 的文件 ![image](https://hackmd.io/_uploads/SJcBSZTy1e.png) 開會當天提供的文件還沒寫完,為什麼開發被要求要在時間內完成開發,沒完成被視為能力不足,且加班完成,但明明要開拆分任務會議時,一來講解文件的時候文件不齊全,二來文件都不完整了還能拆分任務,尤其缺乏的欄位是 PI 串接時需要比對的重要欄位,在此時開發時間沒有是可以被接受的嗎? * PI 提供什麼文件就無條件直接放上來也沒有添加說明 ![image](https://hackmd.io/_uploads/SkQ1Lbakyg.png) * 且應該在上次開發的教訓中得知應該要有測試資料先測過再來看規格, 為什麼到現在還沒有測試資料? 問了卻說自己去取得 ![image](https://hackmd.io/_uploads/HkfmIW6Jyx.png) * 然後文件說自己很認真寫別人都沒有看,明明就是因為看不懂才問,但是卻說不看文件不要讓她在說第二遍,讓我很困擾到底規格是什麼? ![image](https://hackmd.io/_uploads/HJndLbTy1l.png) ![image](https://hackmd.io/_uploads/HyhKU-aJ1x.png) 這兩張圖怎樣都對不太起來? 看得出來是哪個功能嗎? 其他畫面的功能每個欄位或是所需要的資料授權呢? 就算解釋這個表格能夠代表所有的權限,但是覺得這樣的寫法有讓人好理解嗎? 不覺得很讓人看不懂很讓人誤會嗎? --- # 在團隊溝通上遇到的溝通語氣: ## 近期遇到的事情: ### 我使用了以下語氣去詢問: 抱歉,我有點不確定,想問一下喔,這些做了單表格的資料權限該怎麼看,有那裡可以參考嗎? ### 對方回應: (主管在會議的時候): 你可以參考...EXCEL (主管暫離會議的時候):你不會自己看文件嗎?我辛苦寫的文件不然我寫幹嘛,這種問題不要讓我在說第二次! ![image](https://hackmd.io/_uploads/rJ9qLbp1yg.png) 如圖所示,我只看到 ITOP 角色可以維護 SPS 上的主檔資料,但是所以其他角色呢? 如果不需要有沒有寫只有 ITOP 有這權限? 頁面權限? 資料授權? > 因為被罵,所以我根本不敢問也不敢確認,只能先做做看,錯了在說? 但是如果不如預期是不是又會說是RD能力不足連這種功能都會寫錯? ### 被罵完我立刻回到: 真的很抱歉,最近在忙著修bug,真的沒時間讀文件,那我會在自己讀文件的,抱歉打擾了 (但是其實我有看,而且根本沒有給 RD 足夠的時間看文件,才會導致為什麼會議上又講了第二遍) 因為當她講解文件的時候覺得自己講得很清楚,但是很多問題都回答不出來,例如 新版 Menu 授權若無法做到橫向授權時怎麼辦? (說不管一定要想辦法做出來,這是需求,對這是需求,但是怎麼沒有先了解這件事情的可行性就接下了這個需求?) --- * 再來流程圖 ![image](https://hackmd.io/_uploads/BJGmuZT1kl.png) 這真的能讓人很好理解嗎? 正常不是應該把每一條獨立畫出來才對嗎? 這樣混再一起 誰串誰 是那些地方是我們需要提供 API,那些地方我們打對方 API,同時打的 API是哪一支,完全看不出來不是嗎? * 透過剛剛流程圖再回來看到接下來她寫的需求 ![image](https://hackmd.io/_uploads/S1KdubTJJe.png) 我並不覺得我很理解這邊想要表達什麼,尤其 Delete 代表的意思有明確說明不同,但是文件也沒特別標示 * 然後畫的預覽圖,真的不能做得至少像樣一點嗎? 這樣要開發怎麼做? 先做一版不滿意再改,改完又說不符合她的凍結文件? 這樣不是前後矛盾,我要如何才能知道怎樣的文件怎樣的規格是正確的? ![image](https://hackmd.io/_uploads/Hy1CuWpy1x.png) * 這種文件是要RD自己先幻想功能可能長怎麼樣,一樣會遇到 先做一版不滿意再改,改完又說不符合她的凍結文件? 被說為什麼都不看文件,為什麼開發能力這麼差都不能理解她的意思? 而且尤其是凍結文件就是凍結不應該被改動,沒有寫完這算是凍結文件嗎? 說文件是給 User 看的可以理解,所以RD是 User嗎? 開發不是都要知道很明確的資訊才能開發嗎? 這樣的開發是把RD當成什麼了,RD不需要一份RD能看懂的文件? ![image](https://hackmd.io/_uploads/B1uXtbp1ye.png) * Margin Formula 只提供這樣 ![image](https://hackmd.io/_uploads/HJAtoWaJJe.png) 我能夠知道查詢畫面要漲怎樣嗎? * 然後再來現在 RSPS 的文件到現在都沒補齊 整個流程的邏輯都是透過突然開會通知就說要改,說不符合規格,就算有說過, 但是到底文件在哪裡,沒有文件我怎麼能確定她哪一次又改了卻沒通知說我沒有按照規格做? 現在的規格都是從開會時溝通的時候說的,並沒有一份文件明確制定了流程的規範 資料要怎麼送,也可能因為她自己根本不知道當初叫RD自己去找窗口對,所以RD按照窗口的說法做 但不符合她的需求,又要求要改,這個問題持續的發生,到現在修改 Bug 還是遇到一樣的問題 這樣我要怎麼相信她口中的規格是正確的,明天又不會被改? 而且連開會講過的事情都說她沒聽說過她不記得,她也不寫下來,我在程式裡面都註記了卻還說沒有這樣的規格,讓我很困惑,我以後到底要依照怎樣的規格開發? 難道在開發前這些流程講解的人不用先知道嗎? 然後不符合她心中的規格再說開發的能力很差有問題這樣對嗎? 所以我要怎樣做才能達到在不知道正確流程的情況之下,又不被稱開發能力很差有問題? * 當初畫的流程架構,管理的人連看都沒看,當初架構寫得清清楚楚會怎麼做,甚至在 Demo 會議都有報過,為什麼還會到修 Bug的時候跟我說規格不符? 難道當初討論出來畫出來的架構甚至都 Demo 的是錯的嗎? 那為什麼在這麼重要的時間沒有提出來? 要到都開發完了才說? 這樣 RD 要怎樣做才能滿足需求? ![image](https://hackmd.io/_uploads/HJ6MnZRy1l.png) ![image](https://hackmd.io/_uploads/rkNVhbA1Jx.png) * 而且建立 PR 不是說應該要做起來嗎? * 明明有人直接合併到 Develop 出錯因為他不是新人所以不會被怪罪,但是現在因為需求明明就不明確卻提出要修改,然後再要求要開 PR 給其他人來審核是在懲罰我自己嗎? 雖然可以說多一些人看是好事,但是別人寫錯的地方都不用看只看我的,這樣的信任度跟團隊合作是理想的嗎? * 所以之前因為有人沒上 secret 沒有成功推版到 qas 環境造成的錯誤都可以一筆勾修當作沒事, * 但是我程式邏輯沒錯只是不符合她的需求就當作很嚴重的錯誤,這樣是不是在欺負新人? * 我按照了最高規格的方式在寫程式,其他人都沒有, 最後檢討的都是我,改的也是我,如果這專案其實其他人只是因為要趕工時所以分配進去根本沒有思考過這樣的組合在寫程式上會遇到很多不同寫法或是不同步的問題的話,要不要乾算直接分配給一個人做就好了,其實現在跟一個人做差不多壓,別人改的地方其實我還是得重看甚至要重改,因為會有問題,例如我的狀態控制並不採用A機制,採用了B機制,這些都在架構圖上有寫,每個階段的狀態集應該長怎樣,這樣的工作分配真的沒問題嗎? --- # 別人改壞上 Develop 沒有開 PR 的案例 1. SHIH 修改了打 PI 的方式,修改了我的 Method,推到 QAS時,沒有添加 secret,導致怎麼打 PI 都會失敗,查了6個小時在這上面,bug單開在我身上,說是我的問題,還說為什麼都沒有驗證就上線,我明明都有測試過才上線,這樣被冤枉我覺得很委屈 2. 突然要把表單改非同步開發我可以理解很急,但是安排6小時合理嗎? 她說合理覺得不需要這麼多時間,其他人也說不需要這麼多時間,但是其他人知道要改多少東西嗎? 改了4-5成的程式,因為邏輯都在 worker 裡面,你突然全部都要抽換到 api 不是什麼程式碼複製貼上就結束的事情耶,還有各種檢查關卡,狀態更新,正流程,逆流程要驗證,這麼多事情居然跟我說很簡單,到底不是開發的人有什麼評判能力可以判斷這樣的開發需要多少時間, 以及當時已經 UAT 了,為什麼要動? root case 是因為表單生成太慢,不是我們的問題, 卻要我們來解決,不是請表單去優化他的程式, 我也努力配合了,卻被指責說如果遇到問題應該提早提出來,但這問題的來源就是因為測試時才知道表單生成這麼慢,會遇到 timeout,表單不是一個新的專案耶,這些資訊不是應該就算 TFS上面沒有也應該要事先問到嗎? 怎麼可以等開發遇到錯誤再來怪開發自己思考不周全? 尤其是明明每次都有提出問題都被當作沒問題,出問題了才開始找人怪罪讓我覺得非常難過 這題會發生就是因為在開發前有人沒有將資料準備齊全,使用者有多少,每小時的流量是多少,每天的流量是多少,我該做怎樣的壓測,我該怎麼去判斷這是一個大系統還是小系統,根本沒有辦法判斷,當初開發申請資源申請了一個月以上 Queue 還申請不下來,逼得不得不改程式邏輯,完全不是按照當初規劃的事情做耶,更過分的是如果規格改了文件也不會寫,就保持舊的,有時候說為什麼你不看文件,看了文件做又說開會討論過規格為什麼不按照討論的規格做? 既然花時間討論了,規格為什麼沒有文件? 難道規格也是RD做? RD比其他腳色的人更了解規格跟架構? 連這個系統居然分成三個模組,有些共用有些沒有,名稱不一樣,資料源不再我們可以觸及的系統上還要開發自己想辦法,那專案管理的腳色到底在做什麼? 只是把需求談進開發就好嗎? 反正一定要滿足需求儘管不合理抑或者開發上會遇到巨大的困難也不需要管嗎? 只會抓時程安排有考慮到架構嗎? 知道背後是怎麼運行的嗎? 為什麼我也有寫文件一直問我一樣的問題,而且既然在 Demo Day 已經展示過流程了,不就代表認同這樣的流程嗎? 怎麼事後說不認同? 這樣我到底要怎麼樣開發? 3. 非同步開發因為我不再ED改了一版驗證了正流程是通過的,但漏了逆流程,結果逆流程是錯的,改的是我耶,Bug 也是我耶,開發有問題也怪在我身上耶,合理嗎? 4. 我理解不是每間公司都採用最好的軟體開發準則去實踐,去跑真的 Scrum,說真的 Scrum 甚至有證照要考,我們這邊有嗎? 我理解這邊的相異性之後也同意了去學習這邊的方法,已經按照現在Scrum的方式開發了,但是不代表可以隨便估時隨便增加改掉別人的工作項目耶 5. 而且舉例單表格的關聯性要先完成權限配置,資料權限配置,才能完整配置完單表格,這種事情是在其他分享會議中,單表格的擁有者說的 這些事情應該由 PM或SA 做而不是 RD,為什麼會做成這麼簡潔有介面操作,就是因為讓不懂程式的人也能操作,不是RD 該做的事情耶,就算幫忙也應該要很了解流程才對,不懂應該要去學怎麼會是要RD自己搞清楚然後PM不清楚跑來問為什麼會長這樣? 這樣浪費了RD很多時間在解釋,二來還要讓RD花時間熟悉單表格配置,三來還要猜測PM要求的單表格權限是長怎樣,因為PM 根本不清楚,四來浪費RD花時間在操作一個介面上的東西,這明明就可以直接改DB資料就好的,還要為了符合規範,在單表格上操作,就算估了工時,但這樣的工作內容安排合理嗎? ---