軟件開(kāi)發(fā)管理方法論之我見(jiàn)
咱們碼農(nóng)其實(shí)是很單純的,說(shuō)白了搬磚怎么搬不是搬啊對(duì)不對(duì)?所以老板讓咋搬咱們就怎么搬,大部分人也沒(méi)搞明白這些玩意兒背后到底是個(gè)什么思路。
但是兄弟我和其他碼農(nóng)不一樣,我是個(gè)愛(ài)思考的人。所以在搬磚之余,我就會(huì)去找一些書(shū)來(lái)看,比如經(jīng)濟(jì)學(xué)、心理學(xué)、業(yè)務(wù)流程管理、銷(xiāo)售管理之類(lèi)的,一來(lái)可以漲漲姿勢(shì),二來(lái)也嘗試站在老板的角度來(lái)觀察一下咱們搬磚的情況。
一開(kāi)始吧,我也看不出啥門(mén)道。各種方法論看上去都挺客觀的,據(jù)說(shuō)有的可以準(zhǔn)確控制搬磚的進(jìn)度,有的能統(tǒng)一磚塊的質(zhì)量,還有的能讓咱們搬磚的時(shí)候既高效又開(kāi)心。
這樣問(wèn)題就來(lái)了,搬磚技術(shù)到底哪家強(qiáng)呢?
哥思考了很久,后來(lái)站在老板的角度終于想明白了:之所以有各種不同的方法論,是因?yàn)閷?duì)于軟件開(kāi)發(fā)有不同的假設(shè)前提(assumption — 順帶說(shuō)一句,這個(gè)單詞厲害了,做過(guò)科研的同學(xué)們都知道,所有的科學(xué)理論都是基于一套assumption的。一般的科學(xué)家對(duì)前人的成果修修補(bǔ)補(bǔ),牛叉的科學(xué)家發(fā)現(xiàn)新的方法和領(lǐng)域,而傳奇的科學(xué)家都是推翻前人的assumption,直接顛覆或創(chuàng)立一整套理論。啊,跑題了…)。不同的假設(shè)前提意思是說(shuō),在老板眼里碼農(nóng)是個(gè)啥角色?不同角色對(duì)應(yīng)的就是不同的管理思路,就會(huì)導(dǎo)致不同的管理方法論。
歷史的輪回總是驚人的相似。其實(shí)軟件開(kāi)發(fā)是一個(gè)行業(yè),也難免經(jīng)歷其他行業(yè)的發(fā)展歷程。我們先來(lái)看看工業(yè)界:工業(yè)革命之前,日用品都是手工作坊生產(chǎn)出來(lái)的,工匠的手藝差別很大,這種差別就體現(xiàn)在產(chǎn)品和工匠的收入上,比如普通鞋匠花五天做一雙鞋賣(mài)給村民,一個(gè)月能掙3個(gè)銀幣,而頂級(jí)鞋匠花三個(gè)月給貴族訂制一雙鞋,掙30個(gè)金幣。那個(gè)時(shí)候,衡量工匠工作效率的核心指標(biāo)不是工作時(shí)間,而是手藝。
這個(gè)階段如果有管理方法的話(huà),主要也是針對(duì)學(xué)徒的。學(xué)徒一直跟著師傅學(xué)習(xí),直到手藝也達(dá)到師傅的標(biāo)準(zhǔn),可以獨(dú)當(dāng)一面。這時(shí)候的管理方法,主要是讓學(xué)徒盡可能掌握師傅的手藝,提高技術(shù)水平。
后來(lái)工業(yè)革命了,有聰明人做出了蒸汽機(jī)以及各種自動(dòng)機(jī)器,實(shí)現(xiàn)了流水線(xiàn)生產(chǎn),根據(jù)某些頂級(jí)工藝師設(shè)計(jì)好的模具進(jìn)行自動(dòng)化生產(chǎn),流水線(xiàn)上的工人只是負(fù)責(zé)某個(gè)環(huán)節(jié)的裝配和質(zhì)檢等簡(jiǎn)單工作,就不需要有太高的手藝了,只要具備基本知識(shí),經(jīng)過(guò)流水線(xiàn)操作培訓(xùn)就可以上崗。這時(shí)候,衡量工人工作效率的核心指標(biāo)就不是手藝,而是工作時(shí)間。
這是為什么呢?因?yàn)椋魉€(xiàn)的生產(chǎn)速度是固定的,質(zhì)量也是標(biāo)準(zhǔn)的,所以一個(gè)工人每天能做出多少產(chǎn)品和他站在流水線(xiàn)旁的時(shí)間長(zhǎng)短成正比。所以這個(gè)階段的管理方法也不再看重工人提高手藝,而是關(guān)注出勤情況,所以相應(yīng)的考勤打卡、病事假管理等等制度就一步步完善起來(lái)。
其實(shí)說(shuō)白了,現(xiàn)在的軟件開(kāi)發(fā)行業(yè)就正在經(jīng)歷從作坊到工廠的轉(zhuǎn)變,有些公司轉(zhuǎn)變得比較快,有的轉(zhuǎn)變得慢一些。越來(lái)越多的開(kāi)發(fā)框架、開(kāi)發(fā)工具、庫(kù)、模板就構(gòu)成了很多的自動(dòng)化流水線(xiàn),讓程序員這個(gè)職業(yè)的門(mén)檻越來(lái)越低。作為軟件工程師,在老板的眼里,也有偏工人和偏工匠的不同,所以就會(huì)有不同的管理方法出來(lái)。
再說(shuō)到管理方法論和相應(yīng)的假設(shè)前提,比如CMM是什么?就是軟件行業(yè)的富士康管理方法。在實(shí)施CMM的公司老板眼里,他關(guān)注的其實(shí)是開(kāi)發(fā)的流程。只要流程執(zhí)行好了,每個(gè)碼農(nóng)都是無(wú)差別的,就像流水線(xiàn)上的一個(gè)個(gè)工人一樣,今天走一個(gè),明天就能招來(lái)一個(gè),要求也不高,基本上會(huì)寫(xiě)if…else…就行了,對(duì)整體工作完全沒(méi)有影響。考核員工的標(biāo)準(zhǔn)也比較容易量化,比如代碼行數(shù)、出勤時(shí)間之類(lèi)。
敏捷開(kāi)發(fā)呢?老板對(duì)工程師創(chuàng)造力的期望要高很多,希望每個(gè)團(tuán)隊(duì)成員能獨(dú)當(dāng)一面,這種模式下的工程師更像一個(gè)工匠,做事的自由度也會(huì)大一些。這種管理方式下,績(jī)效考核的復(fù)雜度就要大一些了,不能簡(jiǎn)單地看寫(xiě)了多少代碼,可能是看功能點(diǎn)數(shù),或者結(jié)合其他成員的主觀評(píng)價(jià)。當(dāng)然,這種方式下對(duì)工程師水平的要求也會(huì)比較高,作坊里總不能隨便找個(gè)人就開(kāi)始干活吧?
其他種種管理方法,其實(shí)都可以從這個(gè)角度去分析。不一定要看到它的開(kāi)發(fā)方法論,從公司的外部表現(xiàn)就能大概齊看出來(lái)了。比如一家公司說(shuō)福利好管三餐,上班要打卡甚至是996模式,辦公室里還免費(fèi)提供睡袋,薪水也不高,那么你基本就是去做工人的。反之,如果某公司不用打卡不記考勤,只管午飯但很好吃,沒(méi)有老板天天盯著你寫(xiě)了多少代碼,身邊都是高手,而且薪水又很高……呃,國(guó)內(nèi)真有這樣的公司?假如有,那其他的就不用管了,趕緊去吧。
大部分公司其實(shí)都是介乎兩個(gè)極端之間的,你可以具體分析,是離工人近一點(diǎn)呢,還是離工匠近一點(diǎn)。
為啥要從這個(gè)角度去看呢?因?yàn)閷?duì)自己的成長(zhǎng)影響是不一樣的,工人講究的是熟練,工作中鉆研的方向也不是大的技術(shù)創(chuàng)新(老板不需要你鉆研這個(gè),而且你也沒(méi)有時(shí)間沒(méi)有條件去鉆研工作中用不到的東西),而是如何優(yōu)化模板等特別細(xì)節(jié)上的改進(jìn),一旦失去這個(gè)工作,你的經(jīng)驗(yàn)可能在別的地方用處不大。工廠適合踏實(shí)、肯吃苦、執(zhí)行力強(qiáng)、能干臟活累活的人,在這種人員流動(dòng)大的地方能堅(jiān)持下來(lái),其實(shí)也會(huì)有很好的職業(yè)發(fā)展機(jī)會(huì)。
如果你是那種喜歡新鮮感、愛(ài)鉆研新技術(shù)、對(duì)于重復(fù)性的勞動(dòng)興趣不大的人,最好還是盡量去那種強(qiáng)調(diào)巧干勝過(guò)苦干的地方。一般那里高人比較多,學(xué)習(xí)的條件好,提升空間比較大,但是前提是你要聰明、勤快、自學(xué)能力強(qiáng)。在這種地方呆上幾年,就能積累很多東西。
不過(guò)現(xiàn)在行業(yè)里也有讓人看不懂的公司,沒(méi)辦法用這個(gè)套路分析,或者說(shuō),它們是一種奇怪的混合變異體。比如有的互聯(lián)網(wǎng)公司強(qiáng)調(diào)以人為本,取消了一線(xiàn)管理職位,實(shí)行扁平化的管理,又實(shí)行996嚴(yán)格考勤制度下的敏捷開(kāi)發(fā),對(duì)程序員主要考核代碼量和bug數(shù)等等……
這種思路大概是想把高水平的工匠們集中到工廠里進(jìn)行流水線(xiàn)化的管理,類(lèi)似中西醫(yī)結(jié)合,先拍片子再抓方子。老碼農(nóng)在此無(wú)奈地表示,這種變異體的管理方式太有創(chuàng)意,無(wú)法評(píng)價(jià),我只能承認(rèn)搬磚技術(shù)最強(qiáng)的就是他們家了。
posted on 2014-10-15 09:51 順其自然EVO 閱讀(596) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 管理方向