为啥开发的文档能力是核心竞争力之一
在開發(fā)團隊里面一般產(chǎn)品的文檔能力會比較強,很多開發(fā)的文檔能力都非常弱,在我看來文檔能力是一個程序員核心競爭力之一,文檔能力強才能實現(xiàn)能力的快速發(fā)展。為什么語文在中小學(xué)課程里面比重那么大,因為語言能力是一個人發(fā)展的基礎(chǔ),同理,文檔能力就是開發(fā)過程當(dāng)中的語言能力。
文檔能力強的優(yōu)勢
文檔能力強,則團隊之間溝通會順暢,而且不容易出現(xiàn)理解偏差。產(chǎn)品做文檔關(guān)注的是功能設(shè)計,而開發(fā)做文檔關(guān)注的是實現(xiàn)邏輯和結(jié)構(gòu),兩個團隊的側(cè)重點不同。好的開發(fā)文檔是可以準確的反應(yīng)代碼情況的,如果軟件實現(xiàn)結(jié)構(gòu)或者邏輯有問題,很容易在文檔中就發(fā)現(xiàn)問題。我一直都希望程序員在編碼之前能夠先做個設(shè)計,把自己的思路通過流程圖和其它圖表展示出來,這樣我就可以幫助他們發(fā)現(xiàn)其中設(shè)計問題以及需要關(guān)注的地方,比如哪些地方需要加入重試機制,哪些需要保證數(shù)據(jù)庫的事務(wù)特性,數(shù)據(jù)表設(shè)計的是否合理,是否以后會出現(xiàn)性能瓶頸。這個做法的最大好處是把錯誤消滅在萌芽階段,可以大大的提升開發(fā)效率,而且也可以讓時間預(yù)估變得更加準確。但就這樣一個思路,在實際操作的時候很難貫徹下去,因為程序員不知道怎么表達自己的思路。
本人感覺導(dǎo)致這種問題的原因有兩個,一個是多數(shù)程序員習(xí)慣直線思維,想一步做一步,二是國內(nèi)絕大多數(shù)公司不重視這方面能力的培養(yǎng),而且管理層喜歡頻繁施壓,造成整個團隊單純求速度。這種拔苗助長的做法往往導(dǎo)致后期軟件問題多多,真正是欲速而不達,后期浪費幾倍的時間。而且因為制度問題,出現(xiàn)劣幣驅(qū)逐良幣的情況發(fā)現(xiàn),下圖就是一個程序員講,寫了文檔導(dǎo)致容易被替換,反而容易丟掉工作。
如果前期有結(jié)構(gòu)設(shè)計文檔,則可以進行團隊的集體評審,前端后臺可以大大減少理解誤差,產(chǎn)品開發(fā)測試都可以互相多重驗證思路,盡量減少溝通理解偏差導(dǎo)致的結(jié)構(gòu)設(shè)計問題,很多錯誤在后期發(fā)現(xiàn)往往是致命的,而且是花費多倍時間來彌補的。
文檔能力對程序員自身也有巨大的好處,通過這種方式,可以理清自己的思路,讓自己的思維變得更加縝密,讓自己更加容易接受高手的指點,因為高手沒有時間去看你的代碼,你自己需要學(xué)會清晰表達自己的思路。這種文檔可以當(dāng)作一種知識積累的手段,可以時常去溫習(xí)這些文檔,避免忘記重要的知識點。我面試過很多人,有很多人在講解項目的時候,思路極為混亂,一個可能性是自己沒有真正做過,一個可能性就是自己沒有總結(jié),導(dǎo)致后來都忘記了,如果是后者,白白喪失了很多機會。
文檔能力的基礎(chǔ)條件
實現(xiàn)上面的文檔溝通能力是需要一定基礎(chǔ)條件的,而且不是一下子就能實現(xiàn)的,所以導(dǎo)致前期訓(xùn)練階段會比較耗時間,這可能也是很多團隊不愿意執(zhí)行的原因。
要實現(xiàn)這個目標,團隊需要一個優(yōu)秀的教練,就和特種部隊需要優(yōu)秀教練一樣。教練的作用就是制定團隊培訓(xùn)計劃,同時在文檔方面給予指導(dǎo),建立起團隊的文檔規(guī)范,需要在討論會中對文檔進行點評,促進文檔質(zhì)量的不斷提升。文檔能力是需要在實戰(zhàn)中逐步培養(yǎng)起來的,是不能通過幾節(jié)課就達到目標的。
團隊成員需要學(xué)會全局思考能力,需要能夠準確的表達自己的思路。在我們團隊開始做這個工作的時候,很多程序員的流程圖結(jié)構(gòu)圖和實際存在偏差,而且圖形非常不直觀,組織也非常沒有邏輯性,連我這樣資深的人員都很難理解到底是在表達什么意思。
流程圖和結(jié)構(gòu)圖需要在團隊之間建立起共識,建立起規(guī)范,讓大家交流時候使用的是相通的語言,而不是各說各的,陷入一種互相抬杠的局面。
舉例對比優(yōu)質(zhì)文檔和劣質(zhì)文檔
下面截圖是一些可讀性差的流程圖,排版不好看不清,編排組織混亂。
調(diào)整后的結(jié)構(gòu)圖,把模塊進行和概括表達,總體架構(gòu)變得簡單清晰。
這個結(jié)構(gòu)圖還有一個缺陷沒有表達出本次調(diào)整修改的部分,通過顏色就可以清晰的表達出來,比如指定某種邊框顏色。圖表表達是一門學(xué)問,我們需要用最簡的結(jié)構(gòu)表達出最多的信息。
下面截圖是團隊一個后臺的文檔,對業(yè)務(wù)邏輯表達使用了文字,沒有使用流程圖,導(dǎo)致非常不直觀,非常難閱讀,一眼看上去都是混亂。
下圖是阿里資深后臺專家的文檔,非常清晰直觀,而且很簡潔。
怎么樣鍛煉自己的文檔能力
不要把做文檔當(dāng)成一個任務(wù),需要養(yǎng)成一種習(xí)慣。在團隊討論會上,我發(fā)現(xiàn)平時做日報好的人,第一次寫文檔就非常清晰有條理,寫日報不好的人,文檔也不好。所以文檔能力展示出了一個人的工作習(xí)慣是否有條例,是否縝密。
如果文檔能力不強,不要怕花時間,學(xué)習(xí)一種本事都是需要花時間的,文檔能力不行,開始當(dāng)然是需要花時間的呀。文檔能力差的人常常托詞自己工作太忙,沒有時間來做這個,但下班以后很快就離開了公司,顯然,很多人態(tài)度上是不夠重視的。我批評他們說,文檔是給你自己做的,不是給公司做的,差的文檔能力會始終限制一個程序員思維能力的發(fā)展。
總結(jié)
重視文檔能力,就是為自己的提升打開新的一道門,文檔是開發(fā)者的語言。如果喜歡這篇文章,就請關(guān)注我,持續(xù)發(fā)送干貨,同時也幫我轉(zhuǎn)發(fā)一下啦。
總結(jié)
以上是生活随笔為你收集整理的为啥开发的文档能力是核心竞争力之一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么开好代码交流会
- 下一篇: 刚毕业的我,参与了一场大厂之间的争夺之战