方格精選

如何向工程師說明規格

閱讀時間約 3 分鐘
有時候我們在執行專案的時候會遇到一個狀況,工程師實作的東西跟預期的不一致,因此能夠正確傳達需求是一個重要的技巧。原本我認為應該就是規格說明清楚就沒問題了,實際上事情卻沒有這麼單純。

識別角色

要能正確地說明規格,需要先了解現在我們討論的對象是怎樣的角色。像是專案經理、技術主管或者是負責實作的工程師。
之前有遇過客戶每次給我們的都是 MRD(Market Requirements Document,市場需求文件)因此讓我們的 PM(Project Manager,專案經理)需要花非常多時間了解系統上的需求,再跟工程師傳達。然而,經過這樣一連串的轉述,有非常多訊息都已經消失。
實際上,對負責實作工程師來說比較有幫助的是描述需求跟規格的 PRD(Product Requirement Document,產品需求文件)也就是說,我們卡住的原因是因為需要反覆的從客戶提供的「市場需求」反推「產品」的樣貌,然而這些資訊大部分對工程師來說可能是一種雜訊。
備註:因為客戶自己有專案經理,因此合約中我們的專案經理主要負責時程方面的控管,需求由客戶自己的專案經理處理。

定義產品規格

跟「市場需求」會描述在市場上的需要不同,「產品需求」是根據這些市場的需要,定義一個產品應該具備怎樣的規格。其中一種撰寫方式,就是先以功能面向進行大分類,然後再撰寫 User Story(使用者故事)來描述情境。
在製作的階段,我認為會需要由負責撰寫規格的產品經理或專案經理跟技術主管協作,在確認市場、技術限制跟成本的前提下去描述,這樣的文件不是去限制程式該怎麼寫,而是如同測試去動開發是什麼這篇文章中提到的 BDD(行為驅動開發)用「預期的操作行為」來去定義。
有了這樣的文件,負責實作的工程師就能清楚的依據在什麼情況(When)做了什麼事情(Given)然後得到怎樣的結果(Then)去設定測試,接下來只要將實現的功能符合這個定義即可。

減少溝通成本

假設我們沒辦法很好的提供資訊,那麼就會呈現前面所提到的狀況。需要經過不同人的彙整,然後再傳達給其他人。然而因為資訊非常多,因此會變得無法逐步地縮限範圍直到一個工程師可以理解的範圍,最後就變的需要投入大量的溝通來了解實現的方式。
以一個軟體開發團隊來看,必定會有資深跟資淺等不同程度的工程師,每個人能考量到跟處理的範圍是不同的,為了能夠讓比較不熟練的同事能夠專注在正確的小單元工作,清楚描述的文件就變得非常重要。
單純一篇文章似乎沒辦法完整的說明,我認為在專案團隊中過度溝通(Over-Communication)是一個增進團隊協作品質的方式,同時減少溝通成本也是一個重要的方向,兩者也不衝突。前者是讓團隊成員理解在做什麼,後者是減少理解的成本,因此正確傳達規格給工程師就變得非常重要。

封面圖片使用 UnsplashJoppe Spaa 的作品,有想聽的主題可以透過匿名問卷告訴我,想了解專業的技術主題可以到弦而時習之找找靈感。
為什麼會看到廣告
avatar-img
55會員
40內容數
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
蒼時弦也的沙龍 的其他內容
大多數的工程師常常會有一個疑問,就是「測試」應該要怎麼測試才是正確的?在過去,軟體測試大多還是以人工為主,在這幾年逐漸的出現自動化測試之後,實際上我們是不清楚應該要怎麼寫測試。
刷題的時候,我們應該思考的不是「如何回答」而是用科學的方式,根據情境、題目要求進行分析,最後再找出適合的演算法去解決這些問題,同時也可以反思自己是否缺少對某些知識的理解。
很多公司面試確實會去考這些題目,並不是為了知道你是否會解題,更多的是想知道你怎麼思考。在工作中,當我們遇到各種不同類型的問題時,是否能夠根據自身的知識、經驗去探索出最佳的解決方案,大多是面試工程師所看重的一環。
既然是例外,就表示出現了我們預期以外的事情,就這點而言這個用詞跟翻譯都非常的精確。假設我們認為這段程式執行的時後不應該出現這個情況,那麼它就必須是一個例外。
簡單來說,寫程式最困難的地方往往不是技術上的問題,而是如何對當下的狀況正確判斷並且建立良好協作的狀態,才會是最為困難的地方。
聽了描述之後我的直覺反應告訴他「會有這樣的問題,應該是設計時少考慮了什麼!」 大多數軟體工程師從初學者階段開始進入到能夠獨立工作的時候,大多會需要自己考慮一個功能的設計,直到一個完整的系統設計。然而,我們總是找不到正確答案。
大多數的工程師常常會有一個疑問,就是「測試」應該要怎麼測試才是正確的?在過去,軟體測試大多還是以人工為主,在這幾年逐漸的出現自動化測試之後,實際上我們是不清楚應該要怎麼寫測試。
刷題的時候,我們應該思考的不是「如何回答」而是用科學的方式,根據情境、題目要求進行分析,最後再找出適合的演算法去解決這些問題,同時也可以反思自己是否缺少對某些知識的理解。
很多公司面試確實會去考這些題目,並不是為了知道你是否會解題,更多的是想知道你怎麼思考。在工作中,當我們遇到各種不同類型的問題時,是否能夠根據自身的知識、經驗去探索出最佳的解決方案,大多是面試工程師所看重的一環。
既然是例外,就表示出現了我們預期以外的事情,就這點而言這個用詞跟翻譯都非常的精確。假設我們認為這段程式執行的時後不應該出現這個情況,那麼它就必須是一個例外。
簡單來說,寫程式最困難的地方往往不是技術上的問題,而是如何對當下的狀況正確判斷並且建立良好協作的狀態,才會是最為困難的地方。
聽了描述之後我的直覺反應告訴他「會有這樣的問題,應該是設計時少考慮了什麼!」 大多數軟體工程師從初學者階段開始進入到能夠獨立工作的時候,大多會需要自己考慮一個功能的設計,直到一個完整的系統設計。然而,我們總是找不到正確答案。
你可能也想看
Google News 追蹤
Thumbnail
對於沒有行銷背景的小品牌和沒有實權的大企業行銷部專員,本文提供了和客戶談預算的對話範例,幫助自由工作者更好地瞭解如何處理不同情境下的預算談判。
Thumbnail
工程師希望能釐清任務的輕重緩急,其中那些「看起來不錯,但目前重要性沒那麼高」的任務,就叫做 nice-to-have...
Thumbnail
業務與研發之間的溝通是職場一大挑戰,常因認知差異產生誤解,影響工作氣氛與專案進度。 透過本文提出的三點提醒,設定對應方案來打破專業壁壘,就能建立起有效的跨部門合作關係。
Thumbnail
這篇文章主要討論了行銷人與設計人溝通的重要性,並針對以商業目的為主的設計提出了一些設計風格呈現、視覺重點、露出設計的地點和閱讀者為誰等方面的建議。
Thumbnail
本文講述了設計師進行產品規劃時需要融入商業策略,並深入瞭解用戶需求和使用方式的重要性。同時,透過使用者訪談和對各種競品的研究,設計師可以建立良好的商業策略思維,以實現產品的成長和用戶滿意度。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
產品開發的成功,除了品質,更在於是否能夠在適當的時程內推出並滿足客戶需求。 身為開發、設計人員,從文中提供的三個角度來思考,以確保產品與公司的競爭力。
Thumbnail
專案經理與工程師在工作上面對的挑戰和需求截然不同。專案經理需具備溝通、督促、認知及行政等四種核心能力,以便成功轉型。文章中舉例以生動的故事來說明這四種能力的重要性,並強調從工程師升遷為專案經理並非易事,需要不斷學習與努力。
Thumbnail
在職場中,理想狀態與實際資源常常存在一定差距,如何在技術追求與商業考量之間平衡? 透過專案管理手法中的三個變項,在滿足客戶需求和保持技術創新之間找到一個平衡點。
Thumbnail
本篇討論專案經理收到任務後的基本動作,還有如何挖掘出簡報文字之下客戶真正想要的東西。
Thumbnail
對於沒有行銷背景的小品牌和沒有實權的大企業行銷部專員,本文提供了和客戶談預算的對話範例,幫助自由工作者更好地瞭解如何處理不同情境下的預算談判。
Thumbnail
工程師希望能釐清任務的輕重緩急,其中那些「看起來不錯,但目前重要性沒那麼高」的任務,就叫做 nice-to-have...
Thumbnail
業務與研發之間的溝通是職場一大挑戰,常因認知差異產生誤解,影響工作氣氛與專案進度。 透過本文提出的三點提醒,設定對應方案來打破專業壁壘,就能建立起有效的跨部門合作關係。
Thumbnail
這篇文章主要討論了行銷人與設計人溝通的重要性,並針對以商業目的為主的設計提出了一些設計風格呈現、視覺重點、露出設計的地點和閱讀者為誰等方面的建議。
Thumbnail
本文講述了設計師進行產品規劃時需要融入商業策略,並深入瞭解用戶需求和使用方式的重要性。同時,透過使用者訪談和對各種競品的研究,設計師可以建立良好的商業策略思維,以實現產品的成長和用戶滿意度。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
產品開發的成功,除了品質,更在於是否能夠在適當的時程內推出並滿足客戶需求。 身為開發、設計人員,從文中提供的三個角度來思考,以確保產品與公司的競爭力。
Thumbnail
專案經理與工程師在工作上面對的挑戰和需求截然不同。專案經理需具備溝通、督促、認知及行政等四種核心能力,以便成功轉型。文章中舉例以生動的故事來說明這四種能力的重要性,並強調從工程師升遷為專案經理並非易事,需要不斷學習與努力。
Thumbnail
在職場中,理想狀態與實際資源常常存在一定差距,如何在技術追求與商業考量之間平衡? 透過專案管理手法中的三個變項,在滿足客戶需求和保持技術創新之間找到一個平衡點。
Thumbnail
本篇討論專案經理收到任務後的基本動作,還有如何挖掘出簡報文字之下客戶真正想要的東西。