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