这是我一直从读者那里得到的一个问题:初创公司与大公司。
我曾在小型初创公司和拥有 1,000 多名员工的大型公司工作过。答案是,没有单一的答案!
一切都是权衡。两种选择都有好有坏。我不能给出一个单一的、坚定的建议。
但在今天的帖子中,我将分享两者之间的一些差异。你可能会发现你对其中一个比另一个更感兴趣。在您的职业生涯中,您的偏好也可能会发生变化!
在公司内部,也有很大的变化空间。所有的初创公司都不一样。也不是所有的大公司都是一样的。
带着这些注意事项,让我们来看看一些不同之处……
广度与深度
为初创公司工作最重要的是广度。
当然,你会有工作描述。一定的专业领域。但是在构建新产品的过程中,您将在很多不同的领域工作。
当我在一家早期创业公司担任后端工程师时,我……
- 在我们的整个功能集中编写了大量 Django 代码。一些代码最终出现在服务器呈现的 HTML 页面/表单中。其他代码为我们的 API 提供支持,包括海量金融数据计算引擎。
- 当我们的前端工程师忙于应用程序的另一个关键部分时,为我们产品的 Vue 前端设计、设置和编写早期功能
-
docker-compose
当我们需要向堆栈添加新服务器/技术时,经常检查部署管道、托管 AWS 资源和编辑文件
这是一次很棒的、广泛的经历。我学到了很多。
我也因不断的上下文切换而筋疲力尽。什么都知道一点点很累!
在大公司工作,你会发现工作更加专注。您的团队负责应用程序/平台的一小部分。
结果,您可以更深入地研究问题。挑战也集中在性能和可扩展性上。当然,有一些绿地开发。但你的大部分工作将是改进、调整和优化现有代码。
快速与摩擦
早期的初创公司行动迅速。
它是关于快速交付 MVP 以获得用户反馈。您将擅长于快速发布代码的简单版本。
此外,较小的初创公司并没有完全面临技术债务、复杂的依赖关系和较长的弃用时间表等挑战。您可以轻松丢弃未使用的功能,或更改您的实现,而无需通知太多利益相关者。
在大公司,摩擦要多得多。
对于每一个变化,都需要付出巨大的努力来确保您在团队之间和整个公司范围内保持一致。更多的会议、更长的准备时间、将代码投入生产的许多步骤。
摩擦不一定坏!
增加摩擦意味着您作为工程师建立流程、最佳实践和良好习惯。了解大公司系统之间的相互依赖性可以让您在了解复杂性的一部分时成为技术领导者。
在初创公司中快速前进通常意味着您不受规则和最佳实践的约束。或者,您需要稍后添加大量积压的技术债务和测试。
良好的流程和专横的官僚主义之间的界限是模糊的,充其量是在大公司。因此,有时您可能讨厌规则、程序和漫长的等待时间。
但话又说回来,有时这些规则会拯救你!如果构建得当,与初创公司相比,您会希望这些规则能够减少大公司中错误和事故的发生率。
压力:业务与管理
这一点很微妙。
在初创公司,您可能会感到压力。绝大多数情况下,这种压力将来自整个企业。您正在处理的是我们承诺向客户发布的新功能!
另一方面,在一家大公司,您通常不会单独为公司的成败功能工作。您只需处理整体策略的一小部分。当您在大型组织中感到压力时,通常是因为您的经理或其他领导正在施加压力。
在某些方面,在初创公司工作以客户为中心的压力更可取。它不是(通常)任意的,并且有明确的方法来满足期望。但这种外部压力通常比你在大公司感受到的任何压力都要大得多。
大公司的压力来自绩效评估和与经理的一对一交流。您可能会制定绩效改进计划 (PIP)。这是一种不同的压力,它更多地取决于你的经理以及组织用来衡量生产力的指标。
我对此没有很好的答案。压力,无论从哪个角度看,都是有压力的。
自治与领导
初创公司奖励能够自主工作的工程师。他们喜欢给你一个任务(或一整套功能),让你做一段时间,祈祷你能自己解决问题。
其他人都太忙了,无暇帮助你。自己想办法。
大公司没有同样的问题。团队负责域和所需的功能集。您通常会得到高级工程师的大量支持和帮助。
大公司看重的是领导力和沟通能力。在这些组织中成长意味着获得新功能集的所有权。然后,召集团队——并与需要参与的其他团队协调——以实现目标。
您可能会发现其中之一更能支持您的个性和经验水平。
您有信心可以独立交付功能吗?
或者,您是否需要更有经验的工程师的高级指导?
一张小图
这篇文章是基于我的个人经验。
可以肯定的是,有些公司偏离了这些权衡。
拥有优秀高级工程师和指导的小型初创公司。大公司几乎没有摩擦并且行动非常迅速。
但是,如果您正在寻找新职位并且无法决定什么最适合您的职业,希望本文能帮助您了解您在不同公司可能遇到的情况。
更多资源
我每天都为开发人员写一些新东西。进入每日列表,因为这是我分享更多此类内容的地方。
如果你喜欢我的文章,点赞,关注,转发!