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