寫代碼需要民主,更需要專政!
十月革命一聲炮響,給中國送來了馬克思列寧主義和布爾什維克主義,據(jù)說,布爾什維克的路線方針就是:“不是我們殺死他們,就是他們殺死我們,沒有中間道路。”天寒地凍造就了北極熊的兇猛好斗,也給俄國的布爾什維克披上了一層冰冷的外衣。在中國,這個(gè)有著5000年中原文明的國度里,在漫長的反封建反帝國主義的斗爭中,中國共產(chǎn)黨人實(shí)事求是,結(jié)合馬克思列寧主義,聯(lián)系中國實(shí)際,創(chuàng)立了人民民主專政的中間道路。它通過民主的方式避免了斗爭性過強(qiáng)的左傾主義,盡顯人性之溫柔,又通過專政的方式避免了妥協(xié)投降的右傾主義,彰顯了斗爭之嚴(yán)酷。這是一次偉大的創(chuàng)舉,是儒家思想中庸之道和布爾什維克的完美結(jié)合,人民民主專政制度廣而用之,可以指導(dǎo)我們生活、工作的方方面面。比如,對(duì)軟件開發(fā)來講,民主和專政都很重要。
本文引用地址:http://m.butianyuan.cn/article/201810/392927.htm團(tuán)結(jié)就是力量
俗話說,一個(gè)籬笆三個(gè)樁,一個(gè)好漢三個(gè)幫,正是有了分工,學(xué)會(huì)了合作,人類才在漫長的進(jìn)化中擊敗了其它物種,站上了整個(gè)食物鏈的最頂端。不是有一首紅色歌曲那樣唱的嗎:“團(tuán)結(jié)就是力量,這力量是鐵,這力量是鋼,比鐵還硬,比鋼還強(qiáng)。。。”
那么,在一起寫代碼的過程中,“民主”是怎么團(tuán)結(jié)碼農(nóng)從而發(fā)揮力量的呢?
從本質(zhì)上來說,寫代碼是一種創(chuàng)造性的勞動(dòng),盡管有各種架構(gòu)、設(shè)計(jì)模式、成熟方案、方法論,但具體的實(shí)現(xiàn)過程依然主觀性很強(qiáng),最終實(shí)現(xiàn)的代碼中不可避免地帶有碼農(nóng)個(gè)人的風(fēng)格和特色。據(jù)說,這世上每個(gè)人都是上帝咬過一口的蘋果,或多或少都帶有缺陷,那么,碼農(nóng)的作品-代碼-也或多或少沾染了作者的氣息,必然不可能是盡善盡美的,金無足赤人無完人嘛。
盡管碼農(nóng)們有著技術(shù)水平的高低差異,但是,萬物之靈的人類有著豐富多彩的情感,有著個(gè)性鮮活的生命,水平高的人有時(shí)也會(huì)犯下低級(jí)錯(cuò)誤,有時(shí)候產(chǎn)品遇到問題,我們查找bug的時(shí)候,會(huì)發(fā)現(xiàn)所謂的bug只是一個(gè)低級(jí)錯(cuò)誤,一個(gè)本來不該發(fā)生的低級(jí)錯(cuò)誤,比如該是“按位取反”,結(jié)果搞成了“邏輯非”,比如該是比較是否相等,結(jié)果變成了比較是否不等,諸如此類的小bug,有時(shí)就是那么鬼使神差地出現(xiàn)了,最終找出來時(shí),讓人哭笑不得,老虎畢竟還有打盹的時(shí)候吶。如果寫代碼時(shí),有一個(gè)所謂技術(shù)水平稍低一點(diǎn)的人在一邊陪寫代碼,這樣既貫徹了敏捷開發(fā)的理念,也避免了這種bug的出現(xiàn),另外,這種言傳身教,手把手地教著寫代碼,也能夠促進(jìn)菜鳥技術(shù)的飛升,更好地把團(tuán)隊(duì)帶出來,一箭雙雕,何樂而不為呢!
此外,“橫看成嶺側(cè)成峰,遠(yuǎn)近高低各不同?!泵總€(gè)人的技術(shù)水平不同,習(xí)慣秉性不同,歷史經(jīng)驗(yàn)不同,在面對(duì)同樣的問題時(shí),自然是會(huì)提出不同的解決方案,而在產(chǎn)品設(shè)計(jì)之初,反復(fù)論證解決方案是必不可少的一個(gè)步驟。人,理性和感性并存,有時(shí)好的性格、好的習(xí)慣會(huì)彌補(bǔ)技術(shù)水平上的差距,針對(duì)同樣一個(gè)問題,技術(shù)水平稍差的人卻可能會(huì)提出更好的解決方案來,當(dāng)其時(shí)也,幾個(gè)工程師湊在一起唇槍舌戰(zhàn),你來我往,好不熱鬧,在頭腦風(fēng)暴中,在思維的激蕩碰撞中,解決方案不斷打磨成型,愈加完美,豈不妙哉?!
大方向必須專政
百度上說,聰明人喜歡在一起共事,度娘上又說,聰明人在一起相處很難,這種自相矛盾的模棱兩可在一定程度上反映了人性的微妙和復(fù)雜,寫代碼做為一種高度復(fù)雜的人類活動(dòng),也不可避免地在單純的技術(shù)開發(fā)之外或多或少地平添了一些火藥氣息。
在筆者十幾年的開發(fā)生涯中,多次和同事唇槍舌戰(zhàn),有時(shí)是為了澄清對(duì)一項(xiàng)技術(shù)要求的理解,有時(shí)是為了理順程序結(jié)構(gòu),有時(shí)是為了定義清晰明確的接口,有時(shí)甚至只是為了該用tab鍵還是空格鍵進(jìn)行縮進(jìn)而爭論不休,記得美劇《硅谷》里講到寫代碼怎么縮進(jìn),根據(jù)tab鍵還是空格鍵就劃分出了兩個(gè)陣營,男主就是因?yàn)檫@個(gè)和一個(gè)快要發(fā)展為女友的女碼農(nóng)爭辯不休最終分手的。
有那么嚴(yán)重嗎?當(dāng)然!筆者是堅(jiān)決的空格鍵陣營,因?yàn)椴煌木庉嫮h(huán)境里tab鍵的含義不同,有對(duì)應(yīng)于2個(gè)空格鍵的,有對(duì)應(yīng)4個(gè)空格鍵的,還有對(duì)應(yīng)8個(gè)空格鍵的,如果某甲在編輯器A里寫代碼,用的tab鍵對(duì)應(yīng)兩個(gè)空格,某乙在編輯器B里寫代碼,用的tab鍵對(duì)應(yīng)4個(gè)空格,那么我們還怎么把某甲和某乙的代碼合在一個(gè)編輯器了呢?用tab鍵無非是省事而已?。?!
此外,盡管法律面前人人平等,公平、正義的雨露也時(shí)刻飄灑在祖國的上空,但是我們必須承認(rèn),人和人就是不平等,《人月神話》里明確指出:優(yōu)秀程序員和比較差的程序員在生產(chǎn)率上存在巨大差異,書里給出的差距是10倍,勞模雷軍也曾經(jīng)在一次活動(dòng)現(xiàn)場(chǎng)講過技術(shù)大牛和小菜存在100倍的差距。且不管比例如何,在這個(gè)主要靠人而不是靠機(jī)器寫代碼的時(shí)代,我們應(yīng)該自覺自愿地把技術(shù)上的決策權(quán)讓給水平高的人。
程序員大都心高氣傲,很少服人,但是,軟件系統(tǒng)概念的完整性必須由一人或者少數(shù)有默契的人來實(shí)現(xiàn),倘若在此讓步,必然軟件紊亂,漏洞百出,而且,大多數(shù)項(xiàng)目都有時(shí)間進(jìn)度上的嚴(yán)苛要求,而不必要的溝通和交流會(huì)影響時(shí)間成本,當(dāng)交期臨近,負(fù)責(zé)人必須乾綱獨(dú)斷,
項(xiàng)目成員也要有足夠的自我犧牲和嚴(yán)格自律精神,接受專政,貫徹負(fù)責(zé)人的意志。
后話
當(dāng)年佛陀在世,僧團(tuán)人數(shù)眾多,眾口難調(diào),佛陀提出了“六和敬”,以加強(qiáng)僧團(tuán)的團(tuán)結(jié)。六和敬即戒和同修、見和同解、利和同均、身和同住、口和無諍、意和同悅。嵌入式領(lǐng)域的碼農(nóng)團(tuán)隊(duì),一般人數(shù)少,三五人是常態(tài),很容易貫徹六和敬,大家遵守同樣的設(shè)計(jì)紀(jì)律,就是戒和同修,一起分析設(shè)計(jì)系統(tǒng),形成統(tǒng)一的意見,就是見和同解,項(xiàng)目干成了一起拿錢,干不成一起背鍋,就是利和同均,互不輕視詆毀就是身和同住,說話和氣,就是口和無諍,一起干事,看著項(xiàng)目越來越完善,內(nèi)心充滿喜悅,就是意和同悅。
其實(shí),果真能貫徹了六和敬,可能比實(shí)施人民民主專政還要奏效,只是,據(jù)說現(xiàn)在想找一個(gè)六和敬的清凈僧團(tuán)也不好找了,所以,還是有事好商量(民主)、大事負(fù)責(zé)人做主(專政)更符合實(shí)際。
我黨靠人民民主專政推翻了三座大山,建設(shè)了新中國,取得了舉世矚目的成就,用它來寫個(gè)代碼,還不是小菜一碟?
評(píng)論