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