互联网大厂软件开发背后的秘密:为何瀑布和 Scrum 模式备受青睐?

在日常的开发工作中,大家使用的沟通工具基本都是飞书、钉钉、企业微信了。相信大家都经历过需求排期这个过程:从业务同学提出需求开始,到产品同学输出产品文档,随后开发和测试同学介入,确定交付时间,最后上线验收,这是一套完整的流程。

你是否思考过,为什么互联网大厂大多都采用这种模式?这种模式是理论研作为支撑的呢,还是凭空出现的呢?

另外一种情况是,对于大型或者紧急且重要的需求,会成立一个专门的项目组进行封闭开发,将需要交付的产品拆分成一个个小模块,每个同学负责一个模块的开发。 产品同学和项目经理负责整个流程的把控,每天以站会的形式汇报各自的进度以及遇到的卡点和风险,最终在截止日期交付项目。今天,我们就来聊聊互联网大厂在开发软件时,最常使用的两种模式。

1. 瀑布模式

瀑布模式是一种线性的项目管理方法,它将软件开发过程划分为若干个阶段,如需求分析、设计、编码、测试等。每个阶段完成后才能进入下一个阶段,前一阶段的输出作为后一阶段的输入。瀑布模式强调计划性和顺序性,适合于需求明确且稳定的项目。

很多在互联网大厂的岗位,如Java后端工程师、Go后端工程师、前端工程师、C++后端工程师等,他们所做的业务都比较成熟了,每天的开发工作就是迭代优化,优化迭代,开发模式基本用的都是这个(俗称螺丝钉程序员)

优点

  • 明确性:每个阶段的目标清晰,便于管理和控制。
  • 文档化:详细的文档记录有助于后期维护和升级。

缺点

  • 灵活性差:一旦进入下一阶段,很难返回上一阶段修改,对需求变化响应慢。
  • 周期长:需要等待所有阶段完成才能看到最终结果,不利于快速迭代。

2. Scrum模式

Scrum模式则是一种敏捷开发框架,更注重灵活性和团队协作。它将项目分解为多个短周期的迭代,每个迭代都包含了从需求分析、设计、开发、测试到交付的小循环。在每个迭代开始时,团队会确定一个小目标,称为 “冲刺目标”(Sprint Goal)。团队成员在这个迭代期间紧密合作,每天都会进行站会(Daily Stand - up),在站会上,每个成员简要汇报自己的今天的进度以及遇到了什么困难

Scrum模式的核心角色包括产品负责人(Product Owner)、Scrum Master和开发团队。
优点

  • 适应性强:能够快速响应需求变化,提高交付产品的满意度。
  • 透明度高:每日站会使得问题及时暴露,便于团队协作解决问题。
    缺点
    依赖团队自律:缺乏明确的指导可能导致项目失控。
    不适合大规模项目:对于复杂度高的系统,协调成本较高。

3.关于紧急需求与人员投入的讨论

在日常工作中,我们经常会遇到紧急需求的情况。比如说,某个任务预计需要两个人四天时间完成,但由于业务压力,必须在一周内交付。此时,有些不了解具体情况的领导可能会认为增加人手就能加速进度:“那我再加两个人,是不是一天就能搞定?“

然而,这种想法忽略了沟通成本这一重要因素。Fred Brooks在其著作《人月神话》中提出了著名的“布鲁克斯定律”:向已经延期的项目中增加人力会使项目更加延期。这是因为随着团队规模的扩大,成员之间的沟通成本呈指数级增长。具体来说,沟通成本可以用公式表示为:
C = n ( n − 1 ) 2 C = \frac{n(n-1)}{2} C=2n(n1)
其中 ( n ) 表示人数。这意味着,当团队成员增加时,沟通次数也会显著上升,从而影响整体效率。

因此,在处理紧急需求时,我们应该更加注重优化现有流程、提升团队协作能力和技术栈的熟练度,而不是简单地通过增加人员来解决问题。正确的做法可能是重新评估优先级、调整工作量或寻求更高效的解决方案

最后来总结下,瀑布模式还是Scrum模式适用的场景不一样,瀑布模式适合于老业务的迭代优化,Scrum模式适合于做一些探索性的新项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值