軟體工程師的自我修養 - 你的燈亮著嗎
上一篇文章提到,高級新手並不能真正解決問題,其根源在於高級新手很少去真正思考問題,他關心的是如何去完成手頭的任務,並不關心這個任務真正要解決的問題是什麼。突破高級新手限制的一個重要手段就是去思考問題本身,而不是僅僅專註完成任務。
講一個小故事。北歐有一個度假勝地,是歐洲人民夏天避暑度假的好去處,去度假勝地需要經過一個長長的隧道,隧道的工程師為了保證在隧道偶爾停電的情況下,隧道能安全使用,在隧道入口處立了一塊牌子,寫著:請打開車燈。
遊客們開著汽車,打開車燈,穿過隧道,到達度假勝地,快樂地去玩耍了。而等他們要回去的時候,有些人卻發現車子無法啟動——他們忘記關閉車燈,汽車電池耗盡了。小鎮的警察們只好開著自己的警車四處為遊客們充電,疲憊不堪。而沮喪的遊客們則在回去以後四處抱怨,分享他們糟糕的旅遊經驗,導致小鎮旅遊業大受影響,鎮長壓力山大。
於是人們找到隧道的工程師,要求他在隧道的盡頭再立一塊牌子,寫上:請關閉車燈。工程師照做了以後,卻發現麻煩來了:夜晚穿過隧道的遊客看著這樣一塊牌子,一臉懵逼。
這個場景是不是和工程師們日常的工作場景很相似,總有客戶、老闆、產品經理過來跟你說,這裡需要這樣一個按鈕,那裡需要這樣一個功能。你照做了以後,發現只是導致了更多的麻煩,你不是在解決問題,而是在製造問題。
回到這個故事,我們重新思考一下:這是誰的問題?誰能夠解決這個問題?如果這是鎮長的問題,那麼能不能讓鎮長在停車場修建充電樁讓遊客們充電?如果這是警察的問題,那麼能不能安排專門的警察巡視停車沒關車燈的遊客,提醒他們關閉車燈。
如果這是遊客的問題,能不能在隧道出口立一塊牌子,寫上:你的燈亮著嗎?提醒他們問題的存在,讓他們自己去解決問題。也許這是最好的方法,你不需要急著幫別人解決問題,也許你費了九牛二虎之力要解決的問題,當事人輕輕動下手指就能解決。而你要做的,僅僅是告訴他問題的存在。
所以,親愛的工程師們,你在每次解決問題的時候,是否想清楚了問題的本質究竟是什麼,這是誰的問題,誰能解決這個問題,你在為誰解決問題。
作為一個工程師,如果只是聽從別人的指令執行解決方案,那麼很多時候你是在製造問題,而不是解決問題,你加班加點辛苦工作只是在為公司製造麻煩。而對於你自己而言,日復一日重複執行解決方案,距離你成為一個專家也越來越遠。
你的燈亮著嗎?
更多內容請閱讀《你的燈亮著嗎? 發現問題的真正所在》傑拉爾德·溫伯格
推薦閱讀:
※軟體開發工程師轉行做售前工程師 ,靠譜嗎?
※小米軟體工程師面經是什麼?
※身為一個軟體工程師,你的夢想是什麼?在追逐夢想的過程中要怎樣去堅持?
※IT界有沒有實現不了的需求?