《敏捷中國十八年目睹之怪現狀》 摘抄

原文鏈接:https://www.infoq.cn/article/c20EtWZh3qHtIdMR9Idc?utm_source=7d_hot&utm_medium=article

 

  • 需求管理 - 不能“全靠本能工作”
  • 項目管理 - 不是賣白菜似的討價還價
  • 配置管理 - 不能有太多分支,應該做到持續集成
  • 質量管理 - 必須先寫測試,再寫實現(測試驅動開發[TDD])。因爲實現必須要能滿足所有測試場景,先寫測試,這時你已經知道哪裏可能會被測到,哪裏可能會出問題,然後再寫實現能夠保證實現的時候儘量滿足所有測試場景。

最後決定開發的質量和效率的是什麼? 是持續集成,保證持續集成的是什麼?是測試驅動開發(TDD)

 

 

玩到最後你都會面臨同樣的一個問題:我今天在這兒改一行代碼,我怎麼知道改完以後整個系統到底是不是好的?怎麼回答這個問題,是決定性的分水嶺。

 

 

沒有基本功,什麼花哨套路都白搭

軟件做不好,就是因爲不知道怎麼開發。沒有基本功,什麼花哨的套路都玩不了,玩到最後你都會面臨同樣的一個問題:我今天在這兒改一行代碼,我怎麼知道改完以後整個系統到底是不是好的?怎麼回答這個問題,是決定性的分水嶺。如果你沒有一套完備、可靠、快速的測試集,那麼回答這個問題唯一的辦法就是改完這行代碼然後叫測試部的小姑娘來回歸測試。但是測試部的小姑娘她會很反感老是這麼人肉迴歸,她就會打我。她打了我之後,我下一次不敢隨便找她了,於是我就多攢一堆修改再去找她:“姐姐,給我一起迴歸一下唄。”現實就是這樣的,軟件開發的週期就是這麼被拖長的。沒有 TDD,你就解決不了這個問題。所以軟件開發的核心問題,不管講 DevOps 也好,講持續交付也好,最終都得回到極限編程這裏來。

 

基本功的提升辦法只有一個:刻意練習

刻意練習有三個要素。

第一是大量的重複練習。你在書上看到一個東西,不等於你就會了這個技能。看完書以後你可能可以跟領導去白活兩句,面試的時候可以吹一吹,但是你肯定不會。這個技能,你在工作中用不出來,這個就是不會。要掌握一個技能,就必須要練,必須要大量重複的練習。

第二,要在學習區去練習。那就需要有人來設計練習的節奏,設計每天該練什麼。大家可以去看 Kent Beck 的《測試驅動開發》那本書,非常好的一本書,由淺入深循序漸進的。但是很多人看那本書,一上來就被打懵,根本看不下去。爲什麼?我做了這些培訓之後才知道,很多人自己的電腦上開發環境沒有準備好,JUnit 測試怎麼寫、怎麼運行都不知道。所以一定要有人給你設置每天練習的目標,給你拆解每天該練什麼、掌握什麼技能,才能一步步練下去。

第三是要有及時的反饋。有人告訴你今天練得對不對。在這些練功房的培訓裏面,我看到跑偏的太多了,跑偏的方式千奇百怪。所以必須有人看到,這個同學今天這個練習是跑偏了,然後要告訴他正確的練習方法是什麼樣子的,他纔會有所進步。

 

 

 

做了這些練功房的培訓以後,我最近開始反思另外一個問題:我們這個行業裏面的培訓、知識付費,這些東西到底在幹嘛?我前兩天跟另外一個知識付費的平臺談合作,他說他們的課程是以音頻爲主,要給學員聽聲音。我就好奇了,什麼場景下大家需要一個音頻爲主的學習方式呢?他說,比如說我們學員早上開車的時候就可以聽這個課,晚上睡覺之前可以抱着手機聽一節課。你早上開車的時候聽一節課可以學到什麼有效的知識?你什麼都學不到。你只能獲得一種幻覺,這個幻覺叫做“我今天早上開車的時候學到知識了”。

所以我突然之間發現,這個行業裏面大量的知識付費都是騙子,因爲他根本沒有讓你掌握一個技能。比如說我舉個例子,吳恩達的機器學習的課,你如果不去做他的練習,你就看一遍他的視頻,甚至於更糟糕的,你聽一遍他的音頻,你可以學會機器學習嗎?不可能的。你一定要反覆練習,要有人告訴你練習的效果,你纔會學到東西。那這些知識付費到底在幹嘛?這個問題非常的困擾。

包括線下的培訓也一樣。線上培訓的採購是這麼一個邏輯:學員給老師打分,然後採購培訓的這個人根據學員的評分來看老師的水平怎麼樣。那學員怎麼給老師評分?如果老師拿一個教鞭逼着學員好好練,練不好一鞭子打下去,你覺得學員會給老師打高分嗎?不會的。學員打高分就是這個老師講得很好,講得很風趣,老師穿插了很多的遊戲,寓教於樂,我就給老師打高分。結果我們看到現在的企業培訓是一個什麼場景?老師恨不得在臺上表演:“培訓是一門語言的藝術,講究說學逗唱……”這不是在學本事,這是小劇場聽相聲呢。那我們這個行業到底變成了一個什麼行業?是一個傳授人技能的行業還是說相聲的行業?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章