產品敏捷開發:千金難買早失敗
我們不應該忘記任何經驗,即使是最痛苦的經歷。– Dag Hammarldskj?
一、前車之鑒
我們從項目管理的一個經典案例談起。
這個項目是美國的A-12 Avenger II隱形攻擊機。此款機型是冷戰時期由美國海軍主導開發的攻擊機,它可以躲避雷達的偵測,一旦研發成功,不但海軍會用,空軍也會采用。
但是隨著項目的開展和時間的推移,A-12的研發遇到了很多的問題,其中一個最大的障礙是隱形技術的問題。
對軍事有所研究的同學知道,飛機要對雷達波隱形,有兩種方式:
- 第一種,利用飛機外形設計,在不同的方向散射電磁波,使得接收到的電磁波信號大幅度減弱,無法偵測飛機的位置;
- 第二種,利用特殊的涂料,透波材料和鍍膜來減弱機體結構對雷達的散射。各國的隱形飛機,例如殲-20, F-25, F30都是利用這兩種技術手段來達到隱形的目的。
事實上,給A-12的開發帶來致命一擊的是冷戰的結束。1991 年 1 月 7 日,該項目在成本嚴重超支,時間嚴重拖后的情況下,國防部長Cheney下決心全面終止項目,并否決了美國海軍提出的修改戰技要求繼續研制的方案。
A-12研發項目終止時,美國已經投入了2億美金的成本,而此項目唯一的產出物是一個用木頭做的模型。
二、軟件開發是一場充滿挑戰的叢林探險
很多人曾問安娜:我們為什么要做敏捷開發?
安娜想說的是,采用敏捷開發法不僅僅是為了快,如果A-12采用敏捷開發方法不斷的驗證克服技術上的困境和方案的話,DOD就不會遭遇2億美金換來復仇者之死的局面;如果在項目監控過程中進行滲透式溝通和周期性回顧總結,項目的重大問題和風險就不會在歷時2年之后才暴露出來。以更快的速度,更少的成本消耗應對現實世界需求的快速變化是敏捷管理法的優勢,為了保障產品的成功(注意,不是項目的成功),敏捷式方法又離不開個體之間的互動和高效溝通。
信任和溝通使產品經理和團隊成員都朝著同一個方向前進,這是許多敏捷基礎實踐諸如集中辦公,需求交底,立會,迭代計劃,共同估算,和反思的基礎,同時也意味著更少的錯誤,更少的浪費,風險和成本。迭代過程是一個逐步求精的過程,而用戶故事是互動和溝通的另一種體現形式,它鼓勵團隊推遲事無巨細得考慮細節,它又提示我們以隨機應變的方式開發軟件,使團隊能夠在高層需求及底層設計思考間來回切換,并以討論為主不斷精煉和挖掘客戶的需求來回應市場的反饋。
做敏捷要從改變固有的思維習慣開始,走出自我思維的舒適區。
何謂Agile mindset?我認為它由如下幾個方面構成:
- 積極的態度,對產品的成功有很高的期待
- 以實用為出發點
- 個人的成功不是成功,團隊的成功才是真正的成功
- 對未知世界和領域知識的渴求
- 勇敢嘗試新的方法,坦然接受失敗
我個人的理解:敏捷就是把一切作為經驗教訓總結,基于反饋及時的調整我們的下一步行動,并向著我們期待得到的結果出發,這才是促使團隊持續改進的源動力。
我曾有幸和許多有才之士一起工作,他們經常從“這樣做我們的產品/企業能獲得什么”的角度考慮需求和問題,他們經常提出自己已經試驗過的創新解決方案來克服項目中遇到的障礙,同時他們又是一群非常現實的實戰主義者,從不吝嗇幫助別人使團隊獲得成功。這些人,正是我在組建敏捷團隊的時候想要找尋的最強助力。
三、天下難事,必作于易;天下大事,必做于細
白蟻巢穴是世界上最奇妙的建筑,地面上有十幾米,地下還深達二十幾米,產卵室,育嬰室,通風道等無一不缺,井然有序??茖W家還發現白蟻開始建造一座蟻巢時像沒頭的蒼蠅,沒有秩序,一會兒把一粒小小的土塊搬到這,一會兒又可能挪走。這么折騰一陣子之后,白蟻們就會建設起初級的形狀,然后開始按著這個形狀相對有秩序地添磚加瓦,變無序為有序,修修補補,日積月累就形成了形狀各異,功能相似的蟻巢。蟻巢的建造過程顛覆了我們頭腦的認知。
——《我們不要假裝有遠見,微小前進勝過完美規劃》
白蟻不是依靠詳盡的規劃,而是像我們中國人所說的“摸著石頭過河”來做建筑。敏捷式項目管理何嘗不是這樣?我曾好多次以我黨的長征為例,來向大家闡述“摸著石頭過河”的敏捷項目是怎樣一步一步實現了最終的目標,屢試不爽。
敏捷式是一整套生態系統的搭建和維護。
敏捷的成功實施既要依靠各級管理層對敏捷的完善和較為一致的認識,又要保證基層員工在日常的敏捷實踐中踏實認真地執行每一個工作要素。
敏捷的實踐,遠遠不只是每天站在白板前面“匯報”昨天今天做了什么,和time-boxing的迭代那么簡單。團隊要反思,拿什么反思?在建造“可用的軟件”過程中,有歷史數據沒有?定性的反思容易流于形式,并且反思的內容都是大同小異,久而久之我們就會忽略‘反思’這項敏捷式方法中激勵團隊持續改進的精華實踐。在用戶故事,迭代計劃會議等類似非技術實踐中,團隊還要結合TDD(測試驅動的開發),continuous integration(持續集成),refactor(代碼重構)等技術實踐,否則想要生產出高質量的軟件產品就是紙上談兵。
戊戌變法和明治維新是中國和日本在差不多同一時期進行的富國強兵的改革,但是一個失敗了,另一個卻成功了,為什么?因為日本不僅引進西方技術,更引進了西方的生產關系和政治制度,人家要學就學一整套的;中國人聰明,僅僅是引進了技術,我們習慣挑著學習我們容易接受的東西。
回頭看團隊實踐敏捷的方法做項目,在起步過程中有很多同事問安娜,我為什么一定要每天更新一次JIRA的Scrumban?能不能兩天更新一次,我都記得住?
安娜在這里冒昧的引用一句備受崇拜的改變了互聯網時代的偶像的一句話來回答你:Stay Hungry Stay Foolish.
四、大成若缺
缺陷是任何事物的組成部分,只要我們是從不同的角度去觀察他的。產品如此,人亦如此。
互聯網產品軟件開發的路徑,是一條充滿了荊棘,陷阱和無奈的開發者之路。在營造團隊敏捷價值觀的同時,我們更應該關注團隊自身的發展,讓團隊成長為一個“自我組織”的team,他們才會具備一顆真正強大的內心來抵御和坦然接受任何風險,哪怕是失敗。
在倫敦旅游的時候我曾發現好多紀念品上都印有“Keep Calm and Carry On”的字樣,我饒有興致的Google一番,原來這句話是有歷史故事的:二戰時期納粹轟炸英國的時候,英國皇家印了幾萬張“Keep Calm and Carry On”的海報準備發放給老百姓,體現了他們冷靜而紳士的英國文化。
在互聯網軟件開發崎嶇之路上,我們則可以將這句話改造為“Keep Calm and Refactor”.
作者:安娜(點融黑幫),理財產品部,資深項目經理。
本文由@點融黑幫(公眾號:DianrongMafia)原創發布于人人都是產品經理,未經許可,禁止轉載。
強調敏捷開發實施的重要性么,其實可能因為我對這方面認知太淺,一目十行,看得不是很明白
整個文章,作者沉浸在自己的思維里,既然是產品經理,你有沒有考慮過:我寫這些的目的是什么,我為什么要寫?
可能我太low,大部分是看不懂的,呵呵,那這個文章對我沒有意義