敏捷開發中進度與文檔的平衡

? ? ?最近和同事討論敏捷開發如何在進度和文檔之間找到平衡?居然發現大家理解各異。什么是敏捷開發?敏捷開發是否意味著省略很多過程文檔?具體如何實踐?我們一起分享下“知乎”中大家的心得。

以下是總結自知乎的高投票率回答

一、什么是敏捷和敏捷開發

@付聰,中國移動

首先,敏捷開發是一種過程控制論,通俗的說,就是一種做事情的方法。

1. 它適用于軟件,因為軟件是軟的,可以改。要是硬件,改起來就沒那么方便了;

2. 它適用于客戶不知道自己要啥的情況,其實,這樣的客戶占絕大多數。因為客戶不知道要啥,所以你需要不斷幫客戶弄明白他到底想要啥。換句話說,你需要和客戶溝通,合作,傾聽反饋,持續改進;

3. 它適用于競爭激烈的市場,這樣的情況下,趕在競爭對手前交付一個不完美但至少能用的產品非常重要;

4. 它適用于快速變化的市場,你在埋頭造一輛汽車的時候,客戶已經想開飛機滿天飛了,這就需要你能一步步的把汽車改成飛機,還能按時交付;

5. 它適用于在一個地方辦公的小團隊,一般10個人以內。這樣能使敏捷中主要的溝通方式“Face to Face” 是可行的;

其次,敏捷開發是一套工具集,里面有形形色色的工具,你可以不搞敏捷,但可以用那么一兩個來提高工作效率。比如:

1. 站會:三個問題,簡潔有效的小團隊溝通方式;

2. 看板:直觀反映工作進度,反映流程遵守情況,反映流程缺陷;

3. 演示,計劃,反思會:適合于小團隊的協作和優化反饋方式;

4. 用戶故事:站在用戶的角度講需求;

5. 持續集成:隨時高質量交付的基礎,有利于應對變化劇烈的市場;

再其次,敏捷開發是一種企業管理方式。比如:

1. 一線員工可以同時是架構師,Scrum Master,開發工程師,測試工程師,發揮了他的主觀能動性,有利于創新和效率;

2. 敏捷不專注于敏捷團隊中個人的績效考核,而更多的側重于整個團隊的績效,更好的避免了KPI驅動模式;

3. 把大項目拆分成小項目去做(每個Sprint都是一個迭代,需要輸出一個高質量的版本,相當于完成一個小項目),把bug的生存期控制在一個迭代以內,降低了風險,也減少了后期改bug的工作量;

4. 把數十人的大team 分成幾個敏捷團隊,這幾個敏捷團隊的Scrum Master/PO再組成一個更高一級的敏捷團隊,利用站會,反思,看板等等敏捷元素,可以避免數十份郵件也不能解決一個小問題,大家互相踢皮球,溝通不暢的大企業病;

5. 老板可以是最大的PO,他給下面的高管講idea(User Story),定期檢查Demo,把控產品用戶體驗,負責和外界的溝通合作-----比如喬布斯,360的周鴻祎等;

二、為什么需要敏捷開發

@何明璐,IT領域,網名人月神話

用兩個詞吧,一個是擁抱變化,一個是進度可視。

1.任何軟件類系統或項目,即使你前期花在需求上的時間足夠長,你也很難在需求階段真正的分析和挖掘出所有的需求。有些需求注定會在設計實現或用戶使用過程中才逐漸出現。要承認軟件開發中存在這種不確定性。而瀑布模型將這種識別變化延遲到最好的測試或用戶使用階段才發現,極大的增加了返工或變更成本。敏捷思想里面通過短周期迭代,盡可能早的交付可用的迭代版本來擁抱和適應變化。

2.任何一個軟件項目,需求或設計做完我們并不清楚進度是否真正完成了60%或者更多,任何不是經過測試通過的功能我們都很難把握真正的完成進度情況。因此在敏捷里面換了一種思路,如講這個項目拆分為100個粒度差不多的功能點,如果有60個功能點全部完成并通過驗證和測試,我們就比較有把握說整體進度完成了60%。這種可視化的評估進度模式在瀑布里面較難以做到。

(實際上,敏捷是一種思路,敏捷開發是一種實踐。適用于: 周期短,人員較少,早期需求變化頻繁,高風險的項目 ,不適用于: 行業需求較為固定,開發周期長,市場穩定的項目;)

三、敏捷開發是否意味不用寫文檔

@何明璐,IT領域,網名人月神話

如果理解為敏捷開發后不用寫文檔是對敏捷開發很大的誤解。敏捷開發的重點是輕文檔,而不是不要文檔。而這種輕我原來也講過,對于全新的系統開發最好是在有總體方案或架構后再開始輕。

對于怎么理解輕文檔,我建議你好好看下scrum里面的product backlog和sprint backlog。注意這就是文檔的一種形式,而且這種文檔包括了需求,業務場景,實現思路,驗證和測試方法,估算等多個內容的按user story的追溯。而不是按傳統軟件工程思路拆分為多個文檔。

@Blues,scrum sprinting

敏捷開發是重溝通,輕文檔。文檔要適度,既不能成為項目團隊的累贅,也要出現爭議的時候有具可查。

先說需求文檔,分為兩部分,一方面是框架性的需求文檔,對功能、交互方式、出錯或邊界情況的表現進行總體描述,這種文檔不需要過于細致,因為產品經理組織語言寫文檔,開發讀文檔,理解文檔都要消耗大量時間,最好是以總體概括的方式來做,開發在做需求設計時候與產品人員進行頻繁密切溝通,最終一起形成完整文檔,這中間開發、測試人員對于文檔嚴謹性是有很大貢獻,不必要求產品經理全部把邊界細節都寫出來。

另外一方面,作為良好的協作習慣,任何溝通產生的結論都應該存檔!郵件是一種比較好的形式。每次會議結束,問一句結論呢?誰出紀要?不是說文檔不重要,而是通過見面溝通,把需要文檔描述很細節的內容達成共識。

概要設計詳細設計,視需求邏輯難易,規模大小而定。邏輯復雜的項目,概要設計作為幫助開發理解需求的一種手段。大型項目,詳細設計架構設計不可避免。一句話規模的需求,隨便做做就算了。這其中都要不斷的當面溝通!前提是項目成員不能太死板,也有一定磨合,并能力較強。

四、敏捷開發如何實踐

@張碩,敏捷開發的尋路人

想一想我們做的項目有多少部分是做出來永遠不會有人用的,交付出來到客戶那兒才發現根本不是客戶想要的,之后返工也好,客戶重啟項目也罷。

只要付出了努力,卻沒能體現出相應的價值,那就是浪費。

敏捷宣言的那撥人我相信就是想著如何才能盡可能消除浪費,在湊在一起吃吃喝喝滑滑雪之后,總結出來了4條消除浪費的方法:

可工作的軟件》完備的文檔

客戶協作》合同談判

個體與互動》流程和工具

響應變化》遵循計劃

畢竟宣言是需要落地和實施的,說得挺熱鬧的,但我們該如何響應變化,如何客戶協作,如何生產可工作的軟件,都是問題。

所以在統一了思想之后,接下來的實踐各有不同,scrum、精益就應運而生,我們采用迭代的方式響應變化和增進客戶協作,我們用持續交付持續生產可工作的軟件,我們用站會、看板來促進個體與互動。

上面說的東西都是改變生產關系層面的,生產力跟不上的話再好的生產關系都也是桎梏。比如我們的開發流程就是很長,大家代碼質量不高,所以無法做到每個迭代結束后都能有所交付,我們代碼結構不好,所以我們沒法做到快速響應變化。

為了提高生產力,所以又應運而生了一些技術工程實踐:測試驅動、領域驅動、結對編程、持續集成、持續交付、重構等等。以上每一點都大得可以寫一本書。

所以說,敏捷開發的核心思想就是消除浪費,讓我們付出的每一分努力都能有所價值,之后的敏捷宣言和各種流程框架是提出了一種新的生產關系,用來適應大牛程序員們先進的生產力,而如何提升生產力,又產生了很多技術工程實踐。這就是敏捷開發的體系。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375

推薦閱讀更多精彩內容

  • 先說項目開發過程中團隊人員的分工協作。 一 人員安排 畢業至今的大部分項目都是獨立完成,雖然也有和其他同事協作的時...
    SnowflakeCloud閱讀 10,806評論 3 59
  • 混職場,你知道應該學會哪些偽裝技術嗎? 給我印象最深的,還是我大學畢業剛進入職場的時候。和我一起通過面試的,是一個...
    職場魔盒閱讀 572評論 7 8
  • 最近刷知乎,早幾天開始就已經滿屏幕的2015總結等相關問題。相比過去,今年過的更加讓我琢磨不透,還沒等我好好喘口氣...
    ClownQiang閱讀 343評論 0 0
  • 2017年春節,帶著幼兒回家,發現老家的房子已荒敗不堪,曾經玩耍的院子里長滿了雜草;曾經郁郁蔥蔥的屋后菜園也是一片...
    楓美岸閱讀 183評論 0 0
  • 今年畢業典禮,汕頭大學照常迎來了李嘉誠先生。作為創始人,李先生每年都會參加畢業典禮并且致辭,今年致辭的題目叫《愿力...
    考拉視野閱讀 294評論 0 0