如何成為一名合格的主R

前言

我們做程序員的有時候總會想著是不是有一些捷徑能夠快速成長,希望自己突然某一天就得到了九陽神功之類的東西,突然頓悟就成為技術(shù)大牛了,我以前也經(jīng)常這樣想,但是不幸的是,過了這么多年,我仍然沒有找到這個捷徑-_-(小說果然都特么是騙人的)。不過摸爬滾打這么久,捷徑?jīng)]找到,倒是讓我找到了一條笨路,所以我這里想告訴大家的是一種笨方法去成長。

什么是主R

大家其實都知道,在做項目的時候,是成長最快的時候,那么如何在項目中將這個成長發(fā)展到淋漓盡致,這個是我想說的一個核心點。
我們一般稱呼一個項目的整個負責人為主R,那么我就如何做好主R說一下我的理解。 簡單來說,項目分為如下幾個階段:
需求分析 -> 方案設(shè)計 -> 開發(fā) -> 聯(lián)調(diào) -> 測試 -> 上線 -> 后評估
成為一名合格的主R,其實就是要把整個項目生命周期的每件事兒都做好就行了,有一定經(jīng)驗的小朋友肯定會吐槽了,你妹的說著簡單,做起來可沒這么清晰了。所以這里我針對每個階段要做的事兒都做一下說明,其實總結(jié)起來核心就一句話:在不同的時間點,滿足不同的人對不同的事兒的訴求。

需求分析階段

需求分析階段,我們要搞定的人是誰?是業(yè)務(wù)方和pm,這個階段我們需要弄清楚業(yè)務(wù)方的真正訴求的來龍去脈(即做這個事兒的背景),要搞清楚pm的產(chǎn)品是否真的能滿足業(yè)務(wù)方的訴求,同時我們還要多問一句,做完這個事兒, 我們?nèi)绾卧u估做這個事兒的效果,這個事兒是不是真的有意義或者有做的價值。這個階段我們一定要把需求揉碎了看,想清楚每個細節(jié)點,跟pm和業(yè)務(wù)方確認清楚這個是不是真正是他們想要的,只有大方向理解一致了,最后的結(jié)果才不會出現(xiàn)太大偏差。我見過很多在需求分析階段沒有做好(rd理解的和pm理解的完全不是一個東西)而導(dǎo)致做出來一個四不像東西最終返工的例子,所以在這個階段一定要多溝通,把要做的事兒確定好。有的程序員會覺得,我就是一個需求實現(xiàn)人員,我有必要了解那么深的業(yè)務(wù)么?我有必要去關(guān)心產(chǎn)品出的方案是不是合理么?這里我想多說兩句的是,你有這個必要,并且非常有必要,我們是程序員,但是我們并不僅僅是一個代碼翻譯器,如果連你的業(yè)務(wù)都不理透了,你何談架構(gòu),如何能拍著胸脯說我設(shè)計的就是朝著未來更正確的方向去走呢。我一直以為,程序員其實是應(yīng)該比pm更了解業(yè)務(wù)的,并且應(yīng)該不斷的能協(xié)助pm提出一些更有價值的東西的。

方案設(shè)計階段

方案設(shè)計階段,這個階段我們要搞定的人是和我們配合的前端,后端人員,我們需要對比現(xiàn)有系統(tǒng),一步步想出實現(xiàn)需求的各個要素,過程中可能會不斷的找pm確認一些細節(jié)點,直到整個方案出來為止, 如果覺得方案不太盡如人意,或者思路不太清晰,可以找你的leader協(xié)助給你一些指導(dǎo)性的建議。 確認好方案之后,我們需要搞定幾個時間點,前端,后端開發(fā)何時開始,何時聯(lián)調(diào),何時提測,qa的排期及上線時間,提前要出這幾個時間點是很重要的,避免出現(xiàn)多方開發(fā)完了,結(jié)果有某一方說還沒排期的尷尬情況發(fā)生。

開發(fā)階段

開發(fā)階段,這個階段每個開發(fā)都很熟悉,那么這個階段我們要搞定的人是誰呢,是我們自己以及配合我們做項目的各個業(yè)務(wù)方開發(fā)。我們需要在幾個時間點去確認項目各個業(yè)務(wù)方的開發(fā)是否按部就班的進行著,一般是項目三分之一的時間點,需要跟進一下各個業(yè)務(wù)方進度是否如期進行,項目一半時間的時候再次溝通是否正常,項目聯(lián)調(diào)前一天再次確認是否能如期進入下個階段。如果在這個過程中哪個環(huán)節(jié)進度不佳,要及時溝通原因,這個時候就需要自己多去了解一下對方的一些實現(xiàn)方式之類的,一起協(xié)商一下解決方案以保證項目如期進行(這個溝通過程很重要,是自己不斷成長的最主要因素,因為不斷跟各方溝通,你會不斷了解對方的一些思維方式及實現(xiàn)方式,不要怕因為自己不會就不去溝通,不去問,我們要做的是只要自己不懂的 ,就要多問,直到搞懂了。慢慢的你就會發(fā)現(xiàn)你懂的越來越多,自己的認知邊界也越來越廣,跟各方配合起來也越來越得心應(yīng)手)。這個時候會有人問,如果我很多時間都耗費在了協(xié)助其他人解決問題上,那我自己的時間是不是有可能delay呢?對于這個問題我是這么看的,每個人的成長都是由不會到會的過程的,在你初次跟別人配合的時候,可能確實很難,并且想搞清楚問題在哪,如何解決確實會花費大量的時間,那么我們要做的就是在前期時間預(yù)估上給自己多預(yù)留一些buffer,一般我會讓經(jīng)驗不足的人預(yù)留出20%的時間buffer以應(yīng)對這樣的事兒發(fā)生,雖然前期會很難,但是當你每次都這么協(xié)助別人處理好各種問題的時候,你對各個不同環(huán)節(jié)的理解就越來越深(前端,其他業(yè)務(wù)方的業(yè)務(wù)等等),并且很有意思的一件事兒是,在協(xié)助別人處理問題的時候,有時候你會發(fā)現(xiàn)別人的設(shè)計或者代碼風格很nice,這個時候你會能從他們身上學(xué)到很多不一樣的思路,這就相當于變相的學(xué)習了其他人的優(yōu)秀代碼一樣,這對自己的代碼能力的提升也是巨大的。所以我是很希望大家能把這個過程做到極致,多參與一些優(yōu)秀的設(shè)計等,為自己未來能做出更好的系統(tǒng)打下堅實的基礎(chǔ)。慢慢的,自己的能力提升之后,你的效率都是隨之會提升很快的。這個過程中還有一個問題是開發(fā)人員比較困惑的,在做一個需求的時候,要不要把改這塊代碼涉及到的主線邏輯,以及所有其他支線細節(jié)都摳一遍,因為也是一個比較花時間的操作。我的看法和剛才說的答案一樣,還是有這個必要的,每個需求做的時候,把所有主線及支線邏輯都梳理一遍,會進一步加深自己對自己系統(tǒng)的理解,同時有時候會突然發(fā)現(xiàn)系統(tǒng)里哪個地方是不是有什么問題,能剛好在梳理的時候及時發(fā)現(xiàn)并處理。其實改bug也是如此,我們常說,改bug是理解系統(tǒng)最快的方式,就是因為改bug的時候我們應(yīng)該把調(diào)用方的整個主線支線都梳理清楚,而不是簡單的改完這一行代碼就完事,那對自己的成長并沒有任何益處。

聯(lián)調(diào)階段

聯(lián)調(diào)階段,這個階段要搞定的是聯(lián)調(diào)的前端后端人員,當聯(lián)調(diào)出現(xiàn)問題的時候,一定要主動協(xié)調(diào)各方解決問題,從協(xié)調(diào)的過程中,你會了解到不同人的做事兒方式,也會了解到你自己系統(tǒng)的邊界能力以及可能以后會出現(xiàn)的問題,這些都是比較寶貴的經(jīng)驗,長久積累下去,會形成質(zhì)變的。在這個過程中,有時候會碰到一些邊界不太清晰的問題,會出現(xiàn)一些你做或者我做都兩可的事兒,這個時候,溝通的雙方最好將利害關(guān)系講清楚,首先以肯定的態(tài)度認可這個事兒是雙方都可以做的,然后看對方做的話代價及成本多高,綜合考量之后,再協(xié)商出一個合理的結(jié)果,有時候適當?shù)臓奚约旱囊恍r間去承擔這個事兒得到的可能是長遠的一個收獲。 在這個階段我們重點關(guān)注的時間點是聯(lián)調(diào)的進度是否符合預(yù)期,必要時候需要采用每日站會的形式花五分鐘讓大家都知道現(xiàn)在的問題以及需要解決的問題。那么這個階段要搞定的幾個時間點就是聯(lián)調(diào)過半及提測前一天。

測試階段

測試階段,我們需要提前將測試用例進行評審,指出測試用例中不滿足要求的地方,以保證測試的覆蓋程度,這同樣是對自己的一個考驗,需要你考慮清楚整個系統(tǒng)做完之后,哪些地方是邊界,哪些是重點要測試幫你把關(guān)的地方,哪些細枝末節(jié)測試可能沒有考慮到。在這個階段,需要我們更主動的跟QA同學(xué)做配合,以保證項目的一個質(zhì)量。同時這個階段需要我們卡的一個時間點就是上線前一天,因為可能需要我們在上線前將上線前要做的事兒提前做了。

上線階段

上線階段,我們需要按照我們的上線步驟(不僅僅是自己的,是相關(guān)所有前后端的上線步驟),一步步發(fā)布上線,同時觀察線上服務(wù)日志看是否有問題,上線之后,可以在隔離的環(huán)境對結(jié)果進行一些正確性校驗,以保證上線的功能是沒問題的。

上線后評估階段

上線后評估階段,這個階段需要我們看到上線前的一個效果,同時也要觀察上線后的效果對比,不斷的跟進,看是否達到我們做這個事兒的預(yù)期,如果沒有,那么就需要反思是什么原因?qū)е聸]有按預(yù)期出發(fā)。這個過程是對我們做的事兒的一個檢驗過程,以及是一個對自己肯定的過程,在不斷做正確的事兒的前提下,也能極大的提升自己的信心以及對自己所做的系統(tǒng)的信心。

總結(jié)

總的來說,在上面所列出的這些步驟里,每一個步驟都做到極致的人,他的見識,對系統(tǒng)的理解,對邊界的判斷,對時間的預(yù)估,對人的理解都會處于一個一直上升的過程,那么當積累到一定程度之后,質(zhì)變只是一個必然的結(jié)果了,成長為一個合格的程序員也是一個水到渠成的過程了。
上面啰嗦了這么多,最后我這里給總結(jié)一個比較便于大家實施的表格,由于本身是一個順序的過程,所以不會出現(xiàn)并發(fā)的問題,一個個階段屢著走就行。


image.png

最后預(yù)祝大家都能“快速”成長為大俠~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容