當前位置: 妍妍網 > 碼農

我覺得 「砍需求」 是程式設計師最牛逼的本領

2024-05-28碼農

大家好,我是程式設計師魚皮。

在下認為,不會 「砍需求」 的程式設計師不是好程式設計師,工作經驗越豐富的程式設計師,砍需求的本領一般就越高。即使現在我多了一個身份 —— 管理團隊,我也會幫開發同學去跟產品砍需求。

沒錯,從管理者的角度,我希望我團隊的同學都能學會砍需求,而不是像個需求機器一樣,產品經理或者老板說什麽,就去做什麽。

為什麽?說說我的看法。

為什麽要學會砍需求?

1、砍需求的本質

註意,砍需求不是砍產品經理,也不是單純地 「拽」 —— 勞資是大爺、勞資說不做就不做!

這樣肯定是不行滴,你這樣東哥都不願意跟你做兄弟。

砍需求的並不是為了推卸責任,而是為了讓自己舒服、讓團隊舒服,確保計畫能夠按時、按質、按量地完成。

砍需求的前提是對需求有深刻的理解,這就包括理解需求的背景、需求的目標、分析需求的優先級、可行性、以及對使用者和業務的影響等等。

雖然需求很多時候是產品經理或者老板提出的,但畢竟他們也只是 「個體」,他們也會犯錯、也會出現亂甩需求的情況。作為一名專業的開發,我們有義務理解需求、並且拒絕無意義的需求。畢竟誰也不希望自己做的需求沒有任何意義對吧?

比如老板昨天喝高了,臨時起意說:「我想讓網站炫酷一點」,然後開發二話不說,回去花了一周時間,搞了一堆狂拽炫酷吊炸天的網頁動效,什麽 WebGL 都給你整上。結果驗收的時候,老板說:「我們特麽做的是一個資訊查詢網站,你整那麽華麗呼哨幹嘛!」

你本想辯解,可辯解又有什麽用呢?還不是默默承受。

如果再給你一次機會,問問這幾個問題:

  1. 為什麽要把網站做的炫酷?有什麽意義?

  2. 炫酷一點具體是指什麽,有沒有理想的效果?

  3. 實作復雜度高不高,如果較為復雜,是不是可以排期到以後再做?

前期多嘴,是為了後期不悔啊!

所以理解需求、跟需求提出方保持統一是很重要的,之前我們團隊的開發同學,在需求評審會上 「大放豪言」,產品經理說完需求,他就說:「這個簡單!好做!」

結果後期驗收需求的時候,發現做出來的效果和我們想象的完全不一樣,錯把一個讓使用者自主上傳內容的頁面做成了一個給管理員上傳內容的頁面。究其原因,就是對需求的背景理解錯誤了,搞錯了需求的目的是為了讓使用者參與共建,而不是只給使用者看管理員釋出的內容。

2、砍需求不是亂砍

砍需求不是亂砍,而是要有理有據,有章法。

我發現自己團隊的同學不太會砍需求,有時產品經理說完需求後,開發同學要麽就默默接受了,結果到後面開發階段才跟產品 「訴苦」;要麽就是一通回懟,典型的就是 「這周時間來不及」、「這個需求我覺得沒用」 等等。

換位思考一下,這種理由其實很難說服對方。

怎麽砍需求?

第一式、共同目標

表明目前做這個需求對達成目標的幫助不大,可以投入時間做價效比更高、更好實作目標的工作。將個人的意見和想法進行上升,證明砍需求不是因為我不想做,而是確實沒啥用。

第二式、數據支持

用客觀的數據和事實來證明需求的價值,而不是 「我覺得、我猜測、我認為」。舉個例子,現在我們要最佳化編程導航的搜尋功能。技術同學一聽,老開心了:「我終於有機會用 Elasticsearch 啦!終於不是擰螺絲啦!」

「拜托,看看您那搜尋功能,每天 不到 10 個使用者 在用,最佳化個龜龜哦?!」

後面的才是正解,透過已有數據來證明需求的意義。技術是為業務服務的,業務都沒必要做,又何必要用更復雜的技術呢?

第三式、階段性叠代

通俗一點,就是需求拆解。

很多時候,如果一個需求較為復雜,或者需求方要的比較急,與其直接拒絕(反正後面也得做),不妨思考下能否 「小砍一刀」?比如將復雜的需求拆解為一期、二期、三期,如果非要這周上線,那可以先做一期,後面再最佳化。

這也是大廠員工的 「慣用伎倆」。為什麽這麽說呢?在下認為,大廠一般都是各司其職,專業的事情有專業的人去做,通常都會有產品經理來整需求,需求往往會更復雜、更體系化。如果你不會拆解,非要把整個需求一起實作,哪怕時間拖得很長,也會覺得需求很復雜、很難實作,壓力山大。而如果你 「砍」 得合適,說不定做完一期之後,效果不好,後面也都不用做了。

畢竟很多時候,後面再最佳化 == 後面不做了。

第四式、金蟬脫殼

這是一種更高級的砍需求方法,需要開發同學有足夠的業務經驗積累。說人話就是給當前的需求找到更合適的替代方案。

我覺個自己團隊的例子,前段時間我們想統計下老魚簡歷的數據,比如註冊率和註冊來源等,按照正常的方式,可能是需要開發統計分析的能力,我們開發同學也欣然接受了。

但由於自己之前的經驗,我知道可以透過系統已經接入的第三方統計分析平台提供的 「上下遊分析」 的能力來推測出其中的部份指標,只需要產品在平台上配置即可,就不用什麽都開發了。

就是這樣,我成功幫開發同學砍掉了部份開發需求,將一個技術問題轉變成了業務問題。

3、上級為什麽希望開發學會砍需求?

換位思考一下就能理解了,無論你的上級是什麽級別,他都有自己的 KPI(目標)要完成。人力和時間都有限的情況下,只要手下的開發同學花時間做了亂七八糟的、無意義的需求,就會影響目標的完成情況。所以上級喜歡的,是能夠幫他完成目標的開發,砍不砍需求只是一些小的操作,哪怕你不會砍需求,多花點時間加班完成工作倒也不是不行;但如果有更好的方式達成目標,砍一砍需求,何樂而不為呢?

回歸到我自己身上,為什麽我希望團隊同學都會砍需求,因為每一天都是從我的帳戶上扣錢啊!!!我當然也是希望人力花在刀刃上。



之前也有不少同學問我程式設計師怎麽在職場進階,除了技術之外,對業務的理解能力、砍需求的能力都是決定你工作效率和成長的關鍵因素,希望這篇文章能對大家有點啟發,共勉!

對了,今天晚上 19 : 30 我會繼續在 直播帶大家開發新計畫【AI 智慧答題套用平台】,今天是本計畫最後一期,講一些系統最佳化和技術亮點,記得來看~



編程導航已有數十套原創計畫,保姆級教程,歡迎 點選下方閱讀原文 加入學習~

加入學習:https://yupi.icu

往期推薦