從程式設計師到專案經理(7)程式設計師加油站 - 完美主義也是一種錯
1.兩極分化的程式設計師
相信在很多人眼裡,程式設計師都是工作一絲不苟、對程式碼精雕細琢、精益求精的人。瞧,他們在電腦前面一坐就是大半天,如果不是追求完美之人,誰能這樣坐得住板凳?
可是依我所見,在“追求完美”這個問題上,程式設計師其實是嚴重的兩極分化。有一部分程式設計師確實對自己的程式碼要求很高,他們在程式設計時,非常注意邏輯是否嚴謹、執行效率高不高、程式碼是不是優雅,經常進行程式碼重構與優化。他們就像有潔癖農村老太,整天掃把不離手,在哪裡看到不順眼的程式碼,就要改到哪裡,如果讓他來維護一個系統,多半最後會讓他把整個系統的程式碼全部重構或者重寫了一遍。他們是真正的完美主義者。
還有一部分人,他們寫程式碼似乎只是為了完成任務。他們對自己負責的功能,缺乏計劃和設計的過程,想到哪裡就寫到哪裡,最後按下F5,編譯通過,歐耶!他們甚至不願意多點一下自己建立的按鈕,更加不會在一個身份證號碼文字框中輸入一個電話號碼來測試一下,最關鍵的是終於可以向經理交差了,至於程式碼中多少隱藏的問題,以後再說吧。這讓我想起了程式設計師部落酋長Joel所說的,他們編寫的程式“看上去像是給狗吃的早餐,只要狗能吃飽就行了,何必再花錢讓食物變得色香味俱全呢?”我們甚至可以想象一下,他們的電腦螢幕上是不是鋪滿了灰塵,鍵盤縫裡是不是塞滿了頭髮和食物碎屑,電腦桌面的圖示是不是如七彩拼圖一般,讓人眼花繚亂。
後一類程式設計師,在數量上似乎佔據絕對的優勢,對於一個不擅於控制專案質量的專案經理來說,他們的程式碼最終會成為專案的噩夢。系統一旦投入執行,蟲子就會像美國恐怖片中的外星生物一樣,源源不斷的從鼻孔、嘴巴和耳朵縫裡冒出來。
第二種程式設計師這種低標準低要求、隨隨便便的做法,很容易被識別出來是一種不好的傾向,而完美主義不是這樣,因為我們從小就被教導要追求完美,完美主義一般被認為是一種優秀的品格,是每個人應追求的目標。
然而完美主義雖然聽上去不錯,卻並不適合於專案,因為專案的目標是用最少的成本來完成專案,讓各方滿意,而不是製造一個完美無瑕的產品,以證明個人或公司的能力。顯然,完美主義更適合於個人能力的修煉,或者一項沒有限期出成果的科學研究,在專案中,完美主義也是一種錯,雖然是一種“美麗的錯誤”。
完美主義者和隨隨便便的人,這兩種程式設計師都不是專案的最佳人選,他們是恰好是兩個相反的極端,如果讓他們負責專案,估計就像玩蹺蹺板一樣,要麼壓到地底下,要麼翹到天空上。但是專案經不起這樣的折騰,專案中需要有平衡能力的人,他們很好的把握追求完美的“度”,使得軟體功能既能滿足客戶的應用需求,又不至於要花費過多的精力。可惜的是,這種程式設計師實在是不多,因為度的把握對程式設計師而言,確實不是一件容易的事情。
2.完美不等於質量100分
程式設計師心中的完美和專案經理心中的完美並不是一回事,因為兩者關注中心不一樣。程式設計師關注的是自己的軟體功能本身,力爭將軟體產品質量做到最好,因此程式設計師的完美實際上是質量的完美。
而專案經理眼中,看到的是整個專案,包括質量、進度、成本、範圍、風險等方方面面,需要進行平衡,花最少的成本、用最少的時間、達到各方滿意、實現專案驗收,這就是完美。單純產品質量一流,而進度拖延、成本超支,這顯然不是什麼完美的專案。
其實現代質量管理理論普遍認為,質量並不是越高越好。事實上,市場已經對此無數次給出了證明。很多人罵過微軟公司的產品爛,據說賈伯斯也曾經大罵windows是坨屎,但微軟公司後來卻成了軟體行業的霸主。
ISO9000對質量的權威定義是:一組固有特性滿足要求的程度。看到了吧,是滿足,而不是超出,這非常重要。不要少,少了通不過;但也不用多,多了便是浪費。我們需要的不是100分的質量,甚至也不是一流的質量,而只是滿足要求的質量。
在專案管理中有一個名詞叫“鍍金”,也就是在產品達到客戶要求後,再多做一些額外的工作,讓產品更加完美,以進一步提升客戶滿意度,這在PMBok中是一種被明確禁止的行為。軟體質量100分,在專案中不但是一種巨大的浪費,而且幾乎是一個不可達到的目標, 只會讓專案不堪重負,最後陷入災難的境地。
3.合格就是完美
追求完美本身並沒有錯,但如果上升到完美主義,時時處處要做到最好,卻不一定符合當時當地的條件限制。一個“最”字會害死人,因為“沒有最好,只有更好”,如果一味追求更好,其結果可能就如陷入焦油坑的怪獸一般,無法自拔。在這樣一個講求效率的時代,完美主義更是可能會造成機會的喪失。因此,要保持追求完美的心,但又要懂得權衡,不要陷入極端的完美主義的陷阱。
要完美不要完美主義,本質上是一個度的問題,專案應講求平衡,避免極端。學過專案管理理論的人都知道,專案管理中有一個“鐵三角”,也就是在一定的專案範圍的約束下,成本、進度和質量構成三角形的三個端點,為了讓三角形面積保持不變,任何一個端點的變動,都會引起其他一個或兩個端點的同步變動。這個鐵三角本質上就是一種平衡和制約的關係,而完美主義,則只單純的強調質量,而忽略了其它方面的因素,這顯然是一種極端的行為。
那專案中質量的“度”倒底是什麼呢?其實就“合格”二字。合格意味著被認可,卻不需要達到優秀的代價。客戶認可、領導高興、員工輕鬆,這不就是完美嗎?可以說專案中沒有最好,只有合格,合格就是完美。
4.“70分主義”
從小老師和書本就教育我們要追求完美,考試要考100分,90分都嫌太低,那70分還拿得出手嗎?
其實70分不低了,要知道現在大學生的口號是“60分萬歲,多一分浪費,少一分作廢”。當然這種口號容易被批評為不思進取,但萬物存在就有其合理的一面,“60分萬歲”也是事出有因。
在學習方面,我是主張完美主義的,前提是學的是個人感興趣、有用的、切合實際的東西,可以我們大學的大部分課程,基本上是背道而馳。上課、考試,無非是為了不掛科,順利拿到畢業證和學位證。這種情況下,60分萬歲也就容易理解了。何必要考100分,節省下來的時間,完全可以用來學習自己更感興趣東西。
從某種程度來說,做專案也是一種考試:有考試內容(專案範圍)、考試時間(進度要求),還有及格線(質量要求和驗收標準)。專案的及格線如果用分數來表示,也是60分,既然60分就夠了,為什麼還果提出“70分主義”呢?其實很簡單,因為要想剛好考60分,實在太不容易了,搞不好就會弄個不及格。所以我提出“70分主義”,一種超越完美主義的新主義,力求在及格和完美之間達到平衡。
專案如果以70分為目標,適當留出緩衝,就可以做到遊刃有餘,更容易把控。70分意味著已經達到客戶的驗收要求,已經能投入正常使用,但可能存在一些影響較小的Bug,個別頁面效率有待提升,個別操作不是很順手,系統擴充套件性一般,程式碼組織有等進一步優化……這些不完美的地方,就讓他們在那裡待著吧,畢竟客戶已經覺得已經達到目標,何苦自己跟自己較勁,非要達到100分呢?早驗收、早收錢,這才是王道!吃飯只用7分飽,專案也是隻要70分,“70分萬歲”!
從程式設計師到專案經理(一) 從程式設計師到專案經理(二) 從程式設計師到專案經理(三) 從程式設計師到專案經理(四) 從程式設計師到專案經理(五) 從程式設計師到專案經理(六) 從程式設計師到專案經理(七) 從程式設計師到專案經理(八) 從程式設計師到專案經理(九) 從程式設計師到專案經理(十) 從程式設計師到專案經理(十一) 從程式設計師到專案經理(十二)
相關文章
- 一個理想主義的程式設計師程式設計師
- 從2012到2021,從土木到程式設計師程式設計師
- 膨脹、驕傲,程式設計師轉專案經理的原罪程式設計師
- 《程式設計師的修煉之道:從小工到專家》程式設計師
- 程式設計師修煉之道——從小工到專家讀書筆記7程式設計師筆記
- 從零到專業,程式設計師快速入門Python的3種方法!程式設計師Python
- 程式設計師何苦為難程式設計師?程式設計師
- 從程式設計師到架構師,有捷徑嗎?程式設計師架構
- 如何從初級程式設計師變成高階程式設計師?程式設計師
- php程式設計師應具有的7種能力PHP程式設計師
- 從Java程式設計師到架構師,從工程師到技術專家,迷茫之路如何點亮Java程式設計師架構工程師
- 程式設計師是最好的產品經理程式設計師
- 讀《程式設計師修煉之道:從小工到專家》有感程式設計師
- 程式設計師程式設計入門一定知道!程式設計師需要學什麼?程式設計師
- 程式設計師修煉之道7程式設計師
- 一個程式設計師經歷的7小時全身麻醉程式設計師
- 《程式設計師修煉之道:從小工到專家》之程式碼質量程式設計師
- 又一名倒下的程式設計師! - 程式設計師健康指南程式設計師
- 如何從一個程式設計師走向成功?程式設計師
- 如何從初級程式設計師順利晉升到高階程式設計師?程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 程式設計師的管理經驗程式設計師
- 程式設計師面試經驗程式設計師面試
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試
- 以前的程式設計師,現在的程式設計師程式設計師
- 《程式設計師修煉之道——從小工到專家》筆記1程式設計師筆記
- <<程式設計師修煉之道-從小工到專家>> -2024/10/28程式設計師
- 宿命之戰:程式設計師 VS 產品經理程式設計師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- Java從程式設計師到架構師其實並不難Java程式設計師架構
- 返回主頁 程式設計師自由之路程式設計師
- 程式設計師自黑的梗!產品經理:功能實現起來很簡單!—程式設計師:*&%程式設計師
- 從前端到“錢”端,前端程式設計師的出路前端程式設計師
- 不會填坑的程式設計師不是一個好程式設計師!程式設計師
- 長沙IT培訓:程式設計師面試專案經驗分享程式設計師面試
- 普通程式設計師和厲害程式設計師的差距!程式設計師
- 程式設計師,請你不要在坑程式設計師了?程式設計師
- 【1024程式設計師節】程式設計師,你學程式設計的初衷是什麼?程式設計師
- 一個程式設計師如何轉型做產品經理呢?程式設計師