與領(lǐng)導(dǎo)相處:你直言百句不如讓他犯錯(cuò)一次
當(dāng)你與領(lǐng)導(dǎo)就某一問題發(fā)生分歧時(shí),你跟他直言你心中的看法,有時(shí)既使你再有道理,領(lǐng)導(dǎo)也未必會(huì)接受,哪怕他指不出你的問題在哪,他的好在哪,畢竟領(lǐng)導(dǎo)就是領(lǐng)導(dǎo);這時(shí)候還不如充不懂,索性按領(lǐng)導(dǎo)的來,哪怕明知道是錯(cuò)的,有些彎路還是要走的,有些學(xué)費(fèi)還是交的,這樣印象才深刻。 以上是我從公司年初時(shí)開始做的一個(gè)產(chǎn)品,到七月底已成無底洞,最后不得不叫停的經(jīng)歷中得到的心得體會(huì)。 今年年初2月份,落到小組的身上開發(fā)任務(wù)有兩個(gè)公司的產(chǎn)品,其中一個(gè)比較小,估計(jì)1個(gè)半月左右可以完成,而另一個(gè)則相對(duì)難一些(關(guān)于生產(chǎn)制造方面的),估計(jì)要4個(gè)月(單單開發(fā),不含測(cè)試);當(dāng)時(shí)小組共有人員5人,這是我初步對(duì)開發(fā)時(shí)間的估算。
在開發(fā)前的討論會(huì)上,負(fù)責(zé)開發(fā)部的頭頭倒是沒什么意見,畢竟大家都是搞開發(fā)的,都知根知底;可是負(fù)責(zé)市場(chǎng)的一位領(lǐng)導(dǎo)(下文稱市場(chǎng)老A,比較牛的意思)明確表示反對(duì),他最主要是覺得我估算的時(shí)間過長(zhǎng),而我當(dāng)然是不太服氣羅,又是擺數(shù)據(jù),又是說事實(shí)。把我們組前一年開發(fā)進(jìn)度數(shù)據(jù),現(xiàn)在要開發(fā)的產(chǎn)品有哪些業(yè)務(wù)難點(diǎn),哪些地方采用了新技術(shù),一一分析給他聽;可人家就是不買單。那人家心里的時(shí)間是多少呀?1,2個(gè)月搞定,聽得我頭都大。
照理說我估算的時(shí)間還是有那么點(diǎn)道理可依的,可人家為什么就是不接受呢,是沒有說服力,還是?我百思不得其解,在跟好朋友聊天時(shí)說起這個(gè)事,結(jié)論就是:軟件公司中也是講政治的,得罪領(lǐng)導(dǎo)了!那好吧,下面我作一下檢草,希望大家不要再犯,免得吃悶聲虧。
1,領(lǐng)導(dǎo)的光輝事跡要表示崇拜,不要持懷疑態(tài)度。 想當(dāng)年市場(chǎng)老A也是做開發(fā)的,聽說還是帶隊(duì)的;有一次,他跟大伙吹噓當(dāng)年帶領(lǐng)一支鐵打的開發(fā)團(tuán)隊(duì),能夠上刀山、下火海、干活干到人吐血(這是原話,我沒多加一字),最猛時(shí)他小組一連通宵加班一周多,兩人直接送醫(yī)院,三個(gè)月里面做一套很牛的系統(tǒng)。聽到這里,我就暗罵,NND,無數(shù)開發(fā)人員就是被這樣玩殘的,丫的還把這當(dāng)成光輝事跡了。再說了晚上弄通宵,明天怎么也得休息一個(gè)上午或下午吧,算一算時(shí)間,不是差不多的嗎,小學(xué)數(shù)學(xué)有問題?再說做的系統(tǒng)那么牛,大家當(dāng)然要領(lǐng)教下羅,一看VB做的,50來個(gè)數(shù)據(jù)庫(kù)表,千篇一律的添加、刪除、修改,搜索條;一個(gè)函數(shù)一寫就是一大段,老長(zhǎng)老長(zhǎng)的,模塊復(fù)用少,隨處可見SQL語(yǔ)句,雖說在四五年前還過得去,但也不至于說的那么牛吧!當(dāng)時(shí)我也老實(shí),實(shí)話實(shí)說,說很一般,不怎么樣!“正確做法”:當(dāng)時(shí)我應(yīng)該表現(xiàn)為握緊雙手,仰視市場(chǎng)老A,表示崇拜,并后悔不能早生幾年參加他的團(tuán)隊(duì)而抱憾終生。
2,做事要按照領(lǐng)導(dǎo)的喜好來。 市場(chǎng)老A在工作上的喜好招數(shù)精神勝利法+打雞血,具體表現(xiàn)為不管三七二十一,訂個(gè)很牛的目標(biāo)且要去做到,在銷售上行得通,畢竟銷售要忽悠客戶,要敢于把話說大點(diǎn),讓人覺得你有料(銷售這方面我是外行,沒發(fā)言權(quán));但他把這招強(qiáng)加給開發(fā)組,那就讓人受不了了。具體表現(xiàn)在開發(fā)時(shí)間的估算上,在他眼里再難的系統(tǒng)上限也就一個(gè)月,你說破嘴皮,他頂多給你打針雞血,抓抓緊,加加班!在開發(fā)延時(shí)則是繼續(xù)打雞血,延長(zhǎng)時(shí)間最多為一周,不過最好延長(zhǎng)一天。這樣豈不是把開發(fā)的都玩殘了,還好他有個(gè)毛病,你可以無限次延,但你一下跟他說清楚要延長(zhǎng)N周,他就要開罵了。這被很多組開發(fā)的人把握了,接他的需求做產(chǎn)品,他說多長(zhǎng)就多長(zhǎng),后面不行就延時(shí),曾經(jīng)有個(gè)小組的開發(fā)延了3次3天,2次一天,4個(gè)一周才脫離苦海;有次跟他算開發(fā)時(shí)間,他照例給我一個(gè)月,我沒吱聲,當(dāng)著大伙的面算時(shí)間,一天按24小時(shí)算,一個(gè)月都做不完;還有次開發(fā)延時(shí),我申請(qǐng)15天,被他狂罵,無耐又是當(dāng)著大家的面算,最后領(lǐng)導(dǎo)都覺得15天少了,他才同意(我笨呀,不會(huì)延時(shí)兩次一周嗎?豬)。“正確做法”:做事要按照領(lǐng)導(dǎo)的喜好來,錯(cuò)的也是對(duì)的,反之,對(duì)的也是錯(cuò)的。 3,領(lǐng)導(dǎo)說的都是對(duì)的,不要反駁。 記得有一次大家一起吃飯,市場(chǎng)老A聊起他為什么從開發(fā)轉(zhuǎn)向做銷售、做市場(chǎng);原因是做開發(fā)沒前途,做不過30歲......末了他還提起網(wǎng)上《程序員與妓女區(qū)別》那遍文章,并強(qiáng)調(diào)說什么現(xiàn)在看來程序員還不如妓女,妓女都能做過30歲。當(dāng)時(shí)我一聽火就不打一處來,會(huì)不會(huì)尊重人呀?,真想上去抽他,當(dāng)即反唇相譏,“在那支鐵一樣的團(tuán)隊(duì),我搞兩年就頂不住了,工資不夠進(jìn)醫(yī)院。”他一聽一下就無語(yǔ)了,而且臉色難看,當(dāng)時(shí)我還暗爽,現(xiàn)在想想,我又錯(cuò)了,“正確做法”:吃飯的時(shí)候應(yīng)該多吃飯,多吃菜,多喝湯;你說什么話呀,不務(wù)正業(yè)。
不過看來我是很難做到了,做人太直很難改的,不過盡量改吧。下面回到開發(fā)的正題上來。
在軟件公司一般平級(jí)的市場(chǎng)與開發(fā)人員,市場(chǎng)的要高出開發(fā)的半級(jí)(誰讓錢都是從人家那里進(jìn)來的呀),即然市場(chǎng)頭頭表示反對(duì),我的頭頭也不好說什么了,當(dāng)時(shí)<市場(chǎng)老A>表示能否把小組分成兩小波人,我?guī)渲?波做那個(gè)小產(chǎn)品,另外一波人做大的那個(gè)產(chǎn)品;做大產(chǎn)品那波人反映比較有難度,市場(chǎng)老A當(dāng)即表示,推薦幾個(gè)實(shí)習(xí)生來,突擊培訓(xùn)兩三天,快速上手,加入小組快速開發(fā),(我差點(diǎn)雷倒,還真把我們當(dāng)民工了,隨便拉兩個(gè)人加進(jìn)來,就能快速開發(fā),你還以為是搬石頭呢??。┳詈螅瑥奈倚〗M中抽三個(gè)人+兩個(gè)實(shí)習(xí)生組成一組開發(fā)新產(chǎn)品,其中一人任組長(zhǎng),由他負(fù)責(zé),我和另外一人做那個(gè)小產(chǎn)品(差點(diǎn)成光桿40);
雖然是開發(fā)不同的產(chǎn)品,但名義上還是一個(gè)組,日常在同一個(gè)地方工作,每周還是照樣坐到一起開個(gè)總結(jié)的例會(huì)。當(dāng)時(shí)自己也沒想那么多,還對(duì)他們的開發(fā)存在的問題提了一些意見,一個(gè)項(xiàng)目做壞了,是有因可找的,下面是我的分析。
1,設(shè)計(jì)沒有做好,過早地開始編碼就是做負(fù)功。 一般情況下市場(chǎng)老A只給一個(gè)月的時(shí)間,可這次卻破天荒給了兩個(gè)月,讓我的組其中一個(gè)組員充當(dāng)臨時(shí)的組長(zhǎng)進(jìn)行設(shè)計(jì),說這個(gè)系統(tǒng)比較難,其中一部分就是業(yè)務(wù)比較繞,花了一周多熟悉業(yè)務(wù),一周來設(shè)計(jì)數(shù)據(jù)庫(kù),業(yè)務(wù)沒有熟透的情況下就開始設(shè)計(jì)數(shù)據(jù)庫(kù),自然設(shè)計(jì)不完,有些核心的功能沒弄,加上時(shí)間緊,他們就決定開始編碼了;當(dāng)時(shí)我表示反對(duì),理由如上;臨時(shí)的組長(zhǎng)的理由是系統(tǒng)是基于模塊設(shè)計(jì)的,核心功能屬于其中一個(gè)模塊,可以先把其它的模塊做好,然后再做這個(gè)模塊(這個(gè)模塊比較難),模塊化設(shè)計(jì)是這樣理解的么?當(dāng)時(shí)市場(chǎng)老A沒出聲,意思就是贊同,所以設(shè)計(jì)就這樣算完成了。
2,驗(yàn)證設(shè)計(jì)要嚴(yán)謹(jǐn) 做完設(shè)計(jì)之后,要檢查一下設(shè)計(jì)是否合理,因?yàn)樽龅氖荁/S的信息系統(tǒng),設(shè)計(jì)完了之后形成數(shù)據(jù)庫(kù),個(gè)人比較喜歡的方法就是模擬填一遍數(shù)據(jù),自己想像一下界面,心里考慮數(shù)據(jù)在程序中的流轉(zhuǎn)處理,一步步地填入數(shù)據(jù)庫(kù),有沒有少業(yè)務(wù)字段,要不要加輔助程序設(shè)計(jì)的字段,設(shè)計(jì)一目了解。當(dāng)時(shí)我也是這樣建議,可人家認(rèn)為這樣很費(fèi)事,我也承認(rèn)這樣是費(fèi)事,且看上去大伙都是在那想,偶爾錄錄數(shù)據(jù);遠(yuǎn)不如狂敲代碼來得爽,可這是狂敲代碼的基礎(chǔ)呀;因?yàn)闆]做這一步,后面的開發(fā)出現(xiàn)了不少的問題,寫著寫著代碼,居然發(fā)現(xiàn)數(shù)據(jù)庫(kù)里面少字段,或者編程時(shí)才發(fā)現(xiàn)設(shè)計(jì)不合理,那也就只有回去改了,這樣反復(fù)修改的所費(fèi)的時(shí)間會(huì)更多,所以說古語(yǔ)“磨刀不誤砍柴功還是很有道理”的。
3,邊設(shè)計(jì)邊開發(fā)要不得 前面要做的是基礎(chǔ)功能模塊,就算再怎么設(shè)計(jì)不做好,多改改,多花點(diǎn)時(shí)間還算做得差不多了;這時(shí)候已經(jīng)超出原定時(shí)間了,可是核心的模塊還沒做設(shè)計(jì)呢,好了,現(xiàn)在就動(dòng)手,在設(shè)計(jì)的時(shí)候才發(fā)現(xiàn)前面做的基礎(chǔ)模塊有些地方跟核心模塊接不上,滿足不了要求,那只好改羅;注意了,這是初步設(shè)計(jì)核心模塊是發(fā)現(xiàn)對(duì)不上,一句話改;隨著對(duì)核心模塊設(shè)計(jì)的深入,發(fā)現(xiàn)前面做的東西很多地方滿足不了要求,改了的還要改,那頭才大呢。 當(dāng)時(shí)我的想法是,停止編碼的開發(fā),只做設(shè)計(jì),把設(shè)計(jì)完全做好了之后,要改的再改。剛開始市場(chǎng)老A覺得會(huì)浪費(fèi)人手,因?yàn)橥V咕幋a工作,也就是說有人暫時(shí)沒事做,看起來挺可惜的。于是還是堅(jiān)持了一段時(shí)間邊設(shè)計(jì)邊開發(fā)的搞法。
最后連負(fù)責(zé)開發(fā)的人自己得覺得搞不下去了,前面設(shè)計(jì)的東西沒有考慮好,后面設(shè)計(jì)時(shí)發(fā)現(xiàn)已經(jīng)做好的東西要改,而且這要改東西不是一般的多;再加上后面邊設(shè)計(jì)邊開發(fā),說得嚴(yán)重一點(diǎn)就是早上改了,明天設(shè)計(jì)時(shí)居然發(fā)現(xiàn)不行,還要改,這不是要人命嗎?在七月底的時(shí)候,公司看不到產(chǎn)品成功的希望,將開發(fā)叫停。
在后來的失敗總結(jié)會(huì)上也頗有趣味 1,領(lǐng)導(dǎo)是對(duì)的。 照理來說團(tuán)隊(duì)開發(fā)軟件失敗,負(fù)責(zé)人怎么都應(yīng)該是第一責(zé)任人吧,可這次人家壓根不是搞實(shí)際開發(fā),是鍛煉新人去了,當(dāng)成練兵項(xiàng)目了! 2,領(lǐng)導(dǎo)栽你贓,你要認(rèn)。 幾個(gè)月白做功,怎么也要有人被批評(píng)處罰吧,直接帶隊(duì)開發(fā)的組長(zhǎng)(我組一個(gè)組員)讓領(lǐng)導(dǎo)比較失望(他也冤呀,沒帶隊(duì)經(jīng)驗(yàn),硬拉著搞這塊硬骨頭,而且外行人負(fù)責(zé)指揮)......然后我也被小點(diǎn)了下名,原因是實(shí)習(xí)生沒事做,你這個(gè)組長(zhǎng)怎么不分配點(diǎn)事?(邊設(shè)計(jì)邊開發(fā)階段,沒有抄代碼的任務(wù),實(shí)習(xí)生只能在那無所事事,我當(dāng)時(shí)和另一組員在開發(fā)小產(chǎn)品,我能跨組拉人干活嗎?),不過這次我總算有點(diǎn)進(jìn)步了,不出聲,默認(rèn)了。
不過經(jīng)過這次之后,市場(chǎng)老A對(duì)開發(fā)的干涉就少很多了,這也算是一個(gè)好的結(jié)果吧!
補(bǔ)充:
前段時(shí)間剛把今年的第二個(gè)任務(wù)完成了(也是公司的一個(gè)產(chǎn)品),所以才有空寫寫心得,早上起來發(fā)現(xiàn)有人留言說我發(fā)牢騷,其實(shí)不是,是有點(diǎn)氣憤,程序員素有把程序當(dāng)成自己的孩子之稱,試問因?yàn)閯e人的原因把自己的孩子弄?dú)埩?,你能不氣憤嗎?不過話又說回來,這其實(shí)不是我的孩子,當(dāng)時(shí)我小組已經(jīng)分成兩組,我只負(fù)責(zé)小產(chǎn)品,另外一波人弄大產(chǎn)品,我的小產(chǎn)品于60天后完成(還是延時(shí)了一段時(shí)間),可是大產(chǎn)品最終失敗,我從未參加里面的開發(fā)。但是在小組例會(huì)中(名義上還是一個(gè)組),我每次都給出了自己的意見,上面說的那幾點(diǎn)我都是在開發(fā)過程中就提出來了,可未被采納,最終大產(chǎn)品完全失敗。我也不是那種事后說風(fēng)涼話的人。
項(xiàng)目失敗后,小組再次合并成一個(gè),我們下一個(gè)任務(wù)就是接手上面的爛尾項(xiàng)目的開發(fā),或者幾個(gè)月之后我可以寫一篇如何接手爛尾項(xiàng)目的隨筆了,呵呵!
還有我文章中還想表達(dá)是現(xiàn)在國(guó)內(nèi)開發(fā)時(shí),外行人員(銷售、市場(chǎng))對(duì)開發(fā)中的本應(yīng)由開發(fā)負(fù)責(zé)人拍板決定的問題橫加干涉(比如開發(fā)時(shí)間的估算,人員的使用、配置),這是開發(fā)過程中經(jīng)常遇到的問題,給開發(fā)添加了很多不必要的麻煩,有時(shí)甚至直接倒至開發(fā)失敗。
|