背景
随着人工智能技术的飞速发展,企业在降低成本和提高效率方面似乎已经走在了一条不可逆转的道路上。编程,这一曾经被视为高门槛的技能,如今正逐渐变得平民化。对于那些只懂得按照既定思路编写代码以实现业务逻辑的程序员来说,他们的工作在未来很可能会被AI所取代。
在过去的几年里,我有幸与数据分析人员、产品经理、算法工程师以及软件工程师等不同角色紧密合作,这让我深刻理解了每个角色所承担的责任、他们的价值所在,以及如何区分他们的专业水平。
角色分配
在公司中,每个项目、需求或任务都需要我们扮演特定的角色,并承担相应的职责。作为团队的一员,你是选择只关注自己的一小块领域,还是愿意全面思考,这不仅影响着你对整体的理解,更关键的是影响着你个人的认知发展。如果将产品经理、数据分析师、算法工程师和软件工程师的角色比作一部电影的制作团队,那么他们的责任可以这样类比:
- 产品经理:就像电影的导演,负责定义产品的愿景、规划产品的发展路线,并确保产品能够满足用户需求和实现业务目标。他们需要具备全局视野,协调各部门的工作,以确保最终的产品能够符合预期的愿景。
- 数据分析师:类似于编剧,通过分析数据来揭示问题、趋势和机会,为决策提供坚实的依据。他们通过研究和编写剧本,为电影提供基础框架和内容。
- 算法工程师:相当于特效师,专注于开发和优化算法,以提升产品的性能和用户体验。他们通过技术手段创造出令人惊叹的视觉效果,增强电影的吸引力。
- 软件工程师:就像摄影师,负责编写代码,构建和维护软件产品。他们通过代码“捕捉”产品的功能和设计,确保产品能够按照预期工作。
在这些角色中,产品经理的视野需要更加宽广,他们不仅要对外承接业务需求,对内协调技术部门的合作,还要向上级汇报成果。数据分析师则更注重任务的价值分析,这个角色能够更深入地理解为什么要做某件事,以及完成后的效果如何。算法工程师则专注于特定领域的问题解决,他们的技术门槛相对较高。
而软件工程师则更注重系统的稳定性、需求交付的效率和质量。这个角色更多地聚焦于落地实施的过程。这导致了许多软件工程师在承接任务时,不愿意思考为什么要做这件事,以及做了有什么价值,只是机械地执行任务,认为这是业务或老板的要求,自己只需执行即可。
打破边界
那些只想在职场中做一个螺丝钉的软件工程师,他们常说的话包括:
- 这不是我的职责范围,是他们的事。
- 这个功能不是我开发的,我只关注我的部分。
- 产品设计就是这样的,我只是按照要求实现。
- 这是领导要求的。
当然,这些可能只是他们在公开场合的说辞,而在背后,可能还有更深层次的、根深蒂固的观念,比如:
- 家里有矿,不在乎。
- 对现状不满,但公司只给这么多钱,我只能做这么多事。
- 已经形成了习惯,认知就是这样。
如果从个人成长的角度来看,软件工程师如果不打破边界,只做安排和设计好的事情,他们的成长空间将非常有限。如果团队中还有架构师提供详细的架构设计文档,那么软件工程师可能只是按照设计文档来写代码,这样就变成了纯粹的码农,而不是真正的工程师。
- 对于开发业务软件的工程师来说,要打破边界,就必须深入理解业务,为业务的未来发展做好铺垫和布局。
- 对于开发中间件的软件工程师,要打破边界,就必须深入理解业务开发团队的应用场景,以提高业务团队的开发效率。
在过去的十几年里,我见过各种各样的研发人员,但所有优秀或杰出的人都有一个共同点:他们都打破了自己的职责边界,愿意在更广泛的领域投入时间,视野更广阔,认知更宽广,这样才有可能承担更高的职位和任务。