給前端的進階之路:如何高質(zhì)量完成產(chǎn)品需求開發(fā)

2 評論 16908 瀏覽 53 收藏 14 分鐘

作為一個互聯(lián)網(wǎng)前端老鳥,這么些年下來,做過的項目也不少。從最初的我的QQ中心、QQ圈子,到后面的QQ群項目、騰訊課堂。從幾個人的項目,到近百號人的項目都經(jīng)歷過。

這期間,實現(xiàn)了很多的產(chǎn)品需求,也積累了一些經(jīng)驗。這里稍作總結(jié),希望能給新入行的前端小伙伴們一些參考。

做好需求的關(guān)鍵點

要說如何做好一個需求,展開來講,可以寫好幾篇文章,這里只挑重點來講。

最基本的,就是把握好3W:what、when、how。

  • what:做什么?
  • when:完成時間?
  • how:如何完成?

需求場景假設(shè)

為了下文不至于太過枯燥,這里進行需求場景的模擬,下文主要圍繞這個“需求”,從what、when、how 三個點展開來講。

假設(shè)現(xiàn)在有個論壇的項目,產(chǎn)品經(jīng)理小C提了個需求 “給論壇增加評論功能” 。作為 前端工程師 的小A接到需求后,該如何高質(zhì)量的完成這個需求。

項目名稱:興趣論壇。

項目組主要成員:前端工程師小A,后臺工程師小B,產(chǎn)品經(jīng)理小C。

產(chǎn)品需求:給論壇增加評論功能。

備注:此時我們腦海里浮現(xiàn)的應(yīng)該是下面這張圖。

uisdc-web-20170201-1

What:做什么?

可能有同學(xué)要拍案而起了:Are you kidding me?不就加個評論功能嗎,我還能不知道該做啥?

答案很殘酷:是的。

根據(jù)過往經(jīng)驗,不少前端同學(xué),包括一些前端老司機,做需求的時候,的確不知道自己究竟要做什么。導(dǎo)致這種情況發(fā)生的原因有哪些呢?

  1. 產(chǎn)品經(jīng)理:提的需求不明確。
  2. 前端工程師:沒做好需求確認。

情況1:產(chǎn)品需求不明確

說到產(chǎn)品需求不明確,前端的兄弟們估計可以坐一起開個訴苦大會,因為實在太常見了。典型的有“拍腦門需求”、“一句話需求”、“貼個圖求照抄需求”。

回到之前的例子:給論壇增加個評論功能。

別看連原型圖都貼出來了,其實這就是個典型的“需求不明確”。比如:

  • 是否需要支持富文本輸入?
  • 是否需要支持社會化分享?
  • 發(fā)表評論后,評論怎么展示?

也許經(jīng)過一番確認,最終的需求會是下圖所示。遇到這種情況,一定要做好需求確認,避免后期無意義的返工和延期。

uisdc-web-20170201-hb

情況2:未做好需求確認

再次強調(diào)一下,無論何時,一定要做好需求確認。再有經(jīng)驗、再負責(zé)的產(chǎn)品經(jīng)理,也幾乎不可能提出“100%明確”的需求。

同樣,回到上面的需求。

現(xiàn)在已經(jīng)確認了,需要支持富文本輸入、需要展示評論,這就夠了嗎?其實不夠,還有很多需求細節(jié)需要進一步確認。比如:

  • 評論最大支持輸入多少個字?(非常重要,關(guān)乎后臺存儲方案的設(shè)計)
  • 1個中文算1個字,多少個英文字母算1個字?(產(chǎn)品語言、技術(shù)語言 之間的溝通轉(zhuǎn)換)
  • 輸入內(nèi)容過長,如何進行錯誤提示?(交互細節(jié))
  • 輸入內(nèi)容過長,是否允許提交評論?如允許,是對評論內(nèi)容進行截斷后提交?(容錯)
  • 用戶未輸入內(nèi)容的情況下,評論框內(nèi)默認提示文案是什么?(交互細節(jié))

……

可以、需要確認的內(nèi)容太多,這里就不贅述。

 

看到這里,讀者朋友們應(yīng)該明白,為什么前面會說,幾乎不存在“100%明確”的需求。

很多需求細節(jié),同時也跟技術(shù)實現(xiàn)細節(jié)強相關(guān),不能苛求產(chǎn)品經(jīng)理都考慮到。這種情況下,作為開發(fā)者的我們應(yīng)該主動找出問題,并與產(chǎn)品經(jīng)理一起將細節(jié)敲定下來。

uisdc-web-20170201-3

When:完成時間?

一個同時有前端、后端參與的需求,精簡后的需求生命周期,大概是這樣的:

需求提出–>開發(fā)–>聯(lián)調(diào)–>提交測試->需求發(fā)布

一個需求的實際發(fā)布時間,大部分時候取決于實際的開發(fā)工作量。如何評估開發(fā)工作量呢?最基本的,就是明確“做什么”,這也就是上一小節(jié)強調(diào)的內(nèi)容。

這里我們假設(shè):

  1. 需求已經(jīng)明確,小A的開發(fā)工作量是3天,小B的開發(fā)工作量是3天。
  2. 假設(shè)小A9月1號投入開發(fā)

那么,是不是9月3號下班前需求就可以發(fā)布了?

答案顯然是:不能。

要得出一個靠譜的完成時間,至少需要明確以下內(nèi)容:

  • 前端、后臺 各自的工作量。
  • 前端、后臺 投入研發(fā)的時間點。
  • 前端、后臺 聯(lián)調(diào)的工作量、時間點。
  • 需求提交測試的時間。
  • 需求測試的工作量。

最終,需求的完成時間點可能如下:(跟預(yù)期的出入很大)

uisdc-web-20170201-5

對于需求完成時間的評估,實際情況遠比上面說的要更復(fù)雜。比如需要考慮節(jié)假日、成員休假、多個需求并行開發(fā)、需求存在外部依賴項等。以后有機會再展開來講。

How:如何完成?

完成需求容易,如果要高質(zhì)量完成,那就需要費點功夫了。同樣的,只挑一些重要的來講

  • 明確需求、關(guān)鍵時間點
  • 嚴控開發(fā)、自測、提測質(zhì)量
  • 及時暴露風(fēng)險
  • 推動解決問題
  • 關(guān)注線上質(zhì)量

明確需求/關(guān)鍵時間點

這塊的重要性,再怎么強調(diào)也不為過。前面已經(jīng)講過了,這里不再贅述。

嚴控開發(fā)、自測、提測質(zhì)量

作為一名合格的前端工程師,對自己的開發(fā)質(zhì)量負責(zé),這是最基本的要求。

要時常問自己:

  • 開發(fā):是否嚴格按照需求文檔完成功能的開發(fā)。
  • 聯(lián)調(diào):在與后臺同學(xué)聯(lián)調(diào)前,是否已經(jīng)對照測試用例,對自己的模塊進行了嚴格的自測。
  • 提測:提測前,是否已自測、聯(lián)調(diào)通過;測試正式介入前,產(chǎn)品是否提前部署到測試環(huán)境,并進行初步的驗證。

嚴格把控開發(fā)、自測、提測質(zhì)量,這不但是能力,更是一種負責(zé)任的態(tài)度。如果能做到這點,不單節(jié)省大家的時間,還可以讓其他人覺得自己比較“靠譜”。

備注:以下截圖,是筆者之前一個需求的自測用例(非完整版)。同樣是評論功能,自測用例將近50個。

uisdc-web-20170201-4

及時暴露風(fēng)險

風(fēng)險意識非常重要。在需求完成的過程中,經(jīng)常會有各種意外的小插曲出現(xiàn)。對于前端同學(xué),常見的有:

  • 視覺稿/交互稿未按時提供。
  • 需求變更。
  • 工作量評估不足。
  • 后臺接口未按時、按質(zhì)完成。
  • bug有好多,但修改不及時。

上面列舉的項,都可能導(dǎo)致需求發(fā)布delay,要時刻要保持警惕。一旦出現(xiàn)可能可能導(dǎo)致delay的風(fēng)險,要及時做好同步,準備好應(yīng)對措施。

打個比方:

前面說到,小A 評估了3天的開發(fā)工作量。等到開發(fā)的第2天,發(fā)現(xiàn)之前工作量評估少了,至少需要4天才能完成。

這個時候,該怎么辦呢?

相信不少同學(xué)都是這樣處理的:咬咬牙,加加班,4天的活3天干,實在完不成了再說。

這樣處理潛在的問題不?。?/p>

  1. 給自己增加了過重的負擔(dān)。
  2. 沒能讓問題及早的暴露解決。
  3. 可能打亂項目的整體節(jié)奏。

更好的處理方式是:及時跟項目組成員同步風(fēng)險,并落實確認相應(yīng)解決方案。比如適當(dāng)調(diào)整排期、砍掉部分優(yōu)先級不高的功能等。

推動解決問題

對于一個職場人能力的評判,“解決問題”的能力,是很重要的一個評估標準。解決問題的能力如何體現(xiàn)呢?

舉個例子,提測過程中,出現(xiàn)了不少bug,對于小A來說,該怎么辦呢?這里分兩種情況:

  • bug主要是小A的。
  • bug主要是小B的。

第一種情況很簡單,自己的坑自己填,抓緊時間改bug,并做好事總結(jié),降低后續(xù)需求的bug率。

第二種情況呢?如果小B比較配合,主動快速修復(fù)bug,那沒什么好說的。但萬一不是呢?

遇到這種情況,小A可能會想:“又不是我的bug,干嘛操那份閑心,需求如果delay的話,那也是小B的問題,跟我無關(guān)?!?/p>

可能不少同學(xué)的想法跟小A一樣,這在筆者看來,略顯消極,處理方式顯得不夠“職業(yè)化”。

為什么呢?

同在一個項目組,得要有團隊意識、整體意識。需求延期,首先是所有需求相關(guān)人的責(zé)任,是要一起打板子的。然后,才會對具體的責(zé)任人進行問責(zé)。

回到前面的場景,小A更好的處理方式是:做好溝通工作,主動推進問題解決。

  1. 了解小B沒有及時改bug的原因:有可能太忙、bug不好改、沒有意識到那是自己的bug。
  2. 如可能,提供必要幫助:比如跟項目經(jīng)理申請,這段時間小B集中精力改bug,暫不開發(fā)新需求
  3. 風(fēng)險同步:如果小B真的不稱職,盡快知會項目負責(zé)人,對小B進行批評教育,實在不行就換人。

關(guān)注線上質(zhì)量

這一點非常重要,但又是容易被忽略的一點。需求發(fā)布上線,是個重要的里程碑,但并不意味著需求的終點,還得時刻關(guān)注以下事項:

  • 功能是否正常運行?
  • 各項指標是否正常?比如產(chǎn)品上報數(shù)據(jù)、性能監(jiān)控數(shù)據(jù)、錯誤監(jiān)控數(shù)據(jù)等。
  • 有哪些可以優(yōu)化的點?優(yōu)先級多高?

……

只管功能開發(fā),一旦需求上線,立刻做甩手掌柜,同樣是缺乏責(zé)任意識的表現(xiàn)。試想一下,如果你是團隊的老大,你會放心把重要的需求交給一個“甩手掌柜”嗎。

寫在后面

本文中,筆者主要從一個前端工程師的角度出發(fā),談了一些“高質(zhì)量完成需求”的經(jīng)驗。里面提到的不少內(nèi)容,放到其他崗位也是適用的。鑒于篇幅原因,很多細節(jié)都是點到為止,并沒有深入展開。

方法論再多,最終還是需要人去落實。作為一名前端工程師,加強責(zé)任意識,主動承擔(dān),勤于總結(jié),做社會主義合格的接班人。

 

作者:陳映平,程序猿小卡,前騰訊IMWEB團隊成員,云棲社區(qū)專家博主。

原文地址:https://zhuanlan.zhihu.com/p/23080914

本文由 @陳映平 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 這樣的前端非常負責(zé)任、專業(yè),棒。上線前自測的測試用例都自己來啊,可以找測試工程師提供冒煙測試用例? ??

    來自廣東 回復(fù)
  2. 非常贊,內(nèi)容真是點點到位。 看完之后感覺收獲非常的大,支持好文章。 :mrgreen: :mrgreen:

    來自北京 回復(fù)