Re: [心得] 大陸互聯網公司產品開發流程

作者: abadcafe (abadcafe)   2014-11-02 15:57:01
首先, 這個世界上並沒有一個"大陸版快速迭代waterfall".
全世界只要講到"快速迭代模式", 基本上就都是指的我所描述的那種快速迭代模式. 無論
是在北美還是在歐洲都一樣. 這並不是大陸的特產. 歐美業界提出並實行這個模式很多年
了. 詳見: https://en.wikipedia.org/wiki/Iterative_and_incremental_development
而快速迭代與waterfall的分別, 你需要注意其前提: 分而治之. 如果沒有需求的分解, 不
管你怎樣爆肝, 也不可能把waterfall壓縮到很短的週期.
傳統的waterfall並沒有這個步驟, 他們會在整個系統設計完成之後才開始coding, 整個系
統coding完成之後才開始testing. 這才是waterfall被詬病的地方.
這裏我要再強調一次, 在快速迭代模式中, 每一個迭代過程你既可以使用waterfall, 也可
以使用TDD或者別的什麼, 這並不衝突. CI也是一樣.
另外, 關於敏捷我要多說一句, 敏捷不是銀彈. 真的在大項目中實行一遍TDD, 你就知道
TDD的問題在哪裏了: 1. 工作量暴增. 2. 面對頻繁變化的需求, 你會很快厭倦編寫那麼多
測試代碼然後又看着這些代碼作廢. 這都是人力的浪費. 你看看前幾年TDD有多火, 近幾年
又如何? DHH當初那麼推崇TDD, 現在又如何? 敏捷的思想很重要. 但敏捷的具體方法, 無
論TDD還是SCRUM, 都需要推敲. 不過這是另一個話題了, 歡迎另開一串討論.
而至於大團隊概念, 這是另一個層面的問題, 與具體開發模式沒有直接關係. 就算你採用
TDD, TDD的T也只是指的UNIT TEST乃至MODULE TEST這個層面, 對於集成測試乃至系統測試
都沒有觸及. 所以, devops與是否採用敏捷模式沒有太大關係.
實際上, 快速迭代與敏捷方法乃至devops, 這三者相互之間都並不是完全在同一個層面上
的事物. 這三者通常是你中有我, 我中有你的. 現實世界中, 我並沒有看見哪個公司完全
按照教條只採用其中一種模式.
※ 引述《Wolfken ()》之銘言:
: 基本上我接觸的所謂大陸版快速迭代waterfall,就我的看法就是單純把waterfall壓縮
: 到非常短的週期而已,有些人號稱這是Agile,但Agile的精神和practice他們根本沒有
: 用到,這種方法waterfall帶來的浪費還有低效率依然存在,之所以能壓得很快,說穿
: 了就是硬壓員工加班加到爆而已。但這種硬壓schedule的方法,技術債一定會不斷累積
: ,等到技術債累積到連每天加班到半夜都趕不上進度時,就是團隊壓力鍋爆炸的時候。
: 這種方法跟真Agile最大的差別在:
: 1. 依然需要在開發後放一個手動測試的phase跟解bug的phase,而這兩個phase就是最
: 趕最亂技術債欠最多的phase。相較於Agile特別是XP,使用自動化,CI還有TDD把
: 測試拉到很前面,和開發幾乎同步,Waterfall無可避免的就是造成浪費時間在人工測
: 試,以及浪費在前期時測試人員的閒置。
: 2. 沒有團隊速度的概念,Scrum會要求了解每個sprint平均能消化多少story points
: ,從而了解團隊速度並做出調整。Agile是固定時間和成本下,根據團隊速度決定要
: 開發多少feature,並根據現實狀況在每個sprint不斷調整,而不去做出無根據的預
: 估然後硬吃下根本不可能吃得下的feature量。Waterfall則是一開始什麼都沒有就要
: 做出毫無根據的預估,然後通常都過於樂觀,最後都會在成本,時程跟scope中間至少
: 無法達成其中一個。
: 3. 沒有end to end大團隊的概念,各個角色壁壘分明,互踢皮球的狀況非常常見
: 總之,大陸互聯網這種所謂的快速迭代waterfall,看似agile,甚至有人就稱這叫
: agile,但就我看來還是蠻土法煉鋼的一種軟體開發流程,跟歐美的軟體公司比,
: 依然是落後相當的多。不過本來亞洲軟體公司的軟工就跟歐美公司有一段很大的落
: 差了,這也是很多台灣有在鑽研這塊的人很想讓台灣能趕上的一塊。
作者: tsu710785 (平凡魯蛇)   2014-11-02 20:47:00
推長知識~
作者: blabla123 (念不停 煩不煩?)   2014-11-02 23:40:00
push...這個帳號最近怎麼這麼認真了? /yx
作者: bndan (seed)   2014-11-03 03:13:00
...有點怪怪的?上一篇文有講到"成本固定".你拿TDD+需求變化所產生的 "工作量爆增"+"CODE失效".這部份講法和SCRUM的成本固定.剛好互斥到吧 ~_~?

Links booklink

Contact Us: admin [ a t ] ucptt.com