We don’t hire smart people to tell them what to do. We hire smart people so they can tell us what to do.? ? ? ? ? ? ? ? ? ? ? ? - Steve Jobs
開學第一周已經結束,直觀感覺壓力略大康辑,一周上五門課蕾额,每門課都有作業(yè),都有due(截止日期)懦鼠,一般截止日期差不多在兩三天內搜吧。才剛開學就已經感覺快要熬夜寫作業(yè)了盲赊,”My heart is in the work”的校訓真是名不虛傳伸眶。這周聊聊對我來說很有挑戰(zhàn)的一類作業(yè):案例分析(Case Study)。
開始我還真奇怪了惠勒,來到CMU赚抡,為什么不直接編碼,搞什么案例分析纠屋,今天A教授布置30多頁的閱讀文章涂臣,明天B教授再來20多頁,且都得寫一些“閱讀感想”售担。瞬間感覺自己不是來學習計算機的赁遗,倒是來學習英文閱讀和寫作的。事實上族铆,如果我剛入軟件工程這行岩四,可能滿腦子就是:這不是寫一個web app就可以解決的問題嘛,擼起袖子抓緊干哥攘,然后就是一頓coding剖煌,看著自己寫的代碼能夠運行起來,滿心成就感(典型手握錘子逝淹,看啥都是釘子)耕姊。然而事實上并不是這樣,軟件行業(yè)中栅葡,需要一個團隊共同完成一個項目茉兰,現(xiàn)在系統(tǒng)的復雜度也已經遠不是一個人能夠消化的。且大部分失敗的軟件項目都不是因為技術本身的原因欣簇,怎么協(xié)同一個團隊成功實現(xiàn)一個好的系統(tǒng)规脸?如何成為我們學院director Tony在Orientation上說的Agent of Change(變革者)?這些問題不是通過編一手好代碼能解決的熊咽。案例分析恰好是一種前車之鑒的學習方式莫鸭,把自己放入到曾經發(fā)生的場景中,如果遇到這些問題网棍,我們會怎么辦黔龟?這周剛好有機會讀了一下微軟在上個世紀80年代開發(fā)Windows Office的經歷,有趣的一點是滥玷,30年前曾經犯過的錯誤現(xiàn)在依然存在。
這個項目是微軟想要開發(fā)Windows上的Word,Bill Gates一早就定下戰(zhàn)略方向:史上最好的文本處理軟件航徙,并要求一年多能發(fā)布如贷。欽點核心團隊,一人是曾徒手擼過一版Word代碼(其他平臺),一人是心理學博士杠袱,負責UI設計尚猿,另一人曾經在業(yè)界知名的計算機公司,負責商務楣富。按理說凿掂,這是全明星團隊啊,每個人單拉出來那都是“大佬”纹蝴∽可是一年多都沒有成型的初步產品,技術大佬一直在往這個產品中增加功能塘安,設計之時相當有野心糠涛,想要做一個又大又全的現(xiàn)象級產品。
現(xiàn)在很多公司都會有這樣的哥們存在兼犯,我們把這種工程師叫做10x工程師忍捡,所有工程師都視這樣的“牛人”為偶像,都存在此人單刀幾天搞出一個大新聞的神話切黔。微軟早期也有很多這樣的人砸脊,最后發(fā)現(xiàn)這樣的“獨狼”沒辦法成為一個好的team player,就開始引入Program Manager來控制開發(fā)流程绕娘,我靠脓规,這和現(xiàn)在早期的創(chuàng)業(yè)公司一摸一樣,一開始就是幾個人寫出一個簡單版本险领,但是隨著業(yè)務量增加侨舆,發(fā)現(xiàn)管理越來越混亂,那么就開始引入更多角色绢陌,更多流程挨下。
緊接著,Bill Gates發(fā)現(xiàn)你們這核心團隊不行啊脐湾,都一年多還沒有什么動靜臭笆,緊接著臨陣換帥,重新組建團隊秤掌。新任的領導班子看了一下前任留下來的東西愁铺,搖了搖頭,沒有能夠復用的闻鉴,推倒重來茵乱。其實我不太確定是真的不能復用,還是新任領導要刷“存在感”孟岛, 現(xiàn)在一些公司的新官上任“三把火”瓶竭,如果不推導前任的東西督勺,那怎么證明我現(xiàn)任的業(yè)績呢。然而這是巨大的資源浪費斤贰。
好吧智哀,新任領導班子不得不重新組建團隊(個人猜測,老領導帶走了一幫手下)荧恍,加上本來時間已經延期瓷叫,頂著內部各種壓力,不停趕工块饺,bug就少不了赞辩。此時感覺測試沒有全面介入,測試只是在交付后才全面介入授艰,有些bug不能夠被及時發(fā)現(xiàn)辨嗽,后期發(fā)現(xiàn)后修復的成本極高,而真到了測試階段淮腾,開發(fā)就好像和測試在角力糟需,“我今天解決了X個bug!”“我今天又給你找了X+Y個bug谷朝!”洲押。這種沒完沒了的修復一直持續(xù)。這些場景我貌似在之前的工作經歷中也看到過圆凰,說白了杈帐,開發(fā)和測試沒有建立大局意識,還只是在自己的角色中掙扎专钉。如果測試早點介入開發(fā)流程挑童,如果兩方人員能夠坐下來聊聊如何共同提高代碼質量。其實一個組織里面跃须,存在很多互相扯皮的角色站叼,假設沒有形成組織共同愿景,那么這種內耗會給公司帶來極大成本菇民。好吧尽楔,我不得不說,我腦海中又浮現(xiàn)出很多場景第练。
終于終于阔馋,Windows Word發(fā)版了,雖然用了5年時間娇掏,但是獲得一致好評垦缅,可以說在商業(yè)上,這是一件成功的產品驹碍。然而微軟對于這次開發(fā)流程做了很多數(shù)據(jù)收集壁涎,深刻復盤反思了開發(fā)過程中的問題。我想微軟之所以能成為一個偉大的公司志秃,也許就是不停的反思和進步怔球,尤其在已經獲得了一個市場認可的產品的情況下。
讀完這個案例浮还,就好像是在看一場電影竟坛,可能會問自己:如果我在當時那個場景下,會做出什么樣的選擇钧舌?比如說:堅決拿掉那個10X工程師担汤,比如說合并測試和開發(fā)部門。每一個決定其實都是艱難的洼冻,并且很可能這樣的場景在我之后的職業(yè)生涯中還會上演崭歧。那么,那時候的我會做出什么不同的選擇撞牢?
小甜點
今天有幸參觀了CMU Robotics的實驗室率碾,有點像進入了一個科幻片的場景,純軟件是一直呆在邏輯世界屋彪,而Robotics可能是把邏輯世界帶到物理世界所宰。感嘆這里牛人云集,同時感謝一學弟帶我們參觀畜挥。