「来源:|大数据应用ID:Datalaus」
提到软件开发,你会想到什么?
除了《星球大战》以外,电子游戏也在潜移默化中影响大家对编程的理解。
但那只是一种刻板印象……虽然不得不说,它很真实。
图源:NeONBRAND,摘自Unsplash
除了这些,你还看到了什么?
大多数人只会看到这两种人:
你可能会看到一个超级友好、富有创造力、总在创造新事物的人。他们有很多不同的爱好和富有创造性的兴趣。他们会在弹完吉他后,向你展示他们的乐高堡垒。
你也可能会看到一个更加保守的人,他非常聪明,但有点喜怒无常。你不知道他们在讨论什么,听起来像是关于时间旅行的。你不敢让他给你解释,因为你怕他觉得你笨。
所以,问题来了,“这两种人,哪一种是更好的工程师呢?”
答案是:两者都是。这两种的工程师,在软件开发中都很常见,也都很成功。
好的程序开发人员的人物、性格都很不同,但我们可以很自然地把他们分为两类。
善解人意的实行者和精确无误的系统化者。
产品工程师和系统工程师
所有的产品团队都需要有善解人意的产品工程师和经验充足的系统工程师。工程师是从业务的角度看待产品的,而其他人是从整个系统来看待产品的。
所以,不能太过于偏向其中一种,否则就会危及整个应用程序长期的生存能力。
什么是产品工程师?
产品工程师是从商业需求开始的。他们有着强烈的同理心、了解开发应用程序的原因、也会考虑用户的需求。
他们想解决现实世界中的问题,如果不能对当前的终端用户产生真正的影响,就会对性能和安全等技术障碍感到厌烦。
产品工程师是企业最好的朋友。
他们是团队中的一员,而且很乐意看到用户的成功。当你做成一笔大买卖,或达到某个里程碑时,他们会和你一起出去庆祝。他们会把自己的价值、成功跟公司业务联系起来。
如何识别产品工程师
产品工程师本质上都是创作者。在Myers-Briggs的测试中,他们有中度到强烈的情感倾向。他们也善解人意,是很好的倾听者。
产品工程师在职业生涯中经常不走寻常路。他们可能是自由职业者、也可能有通过项目、训练营和Youtube视频自学的背景。
他们喜欢尝试不同的框架。他们的业余项目包括许多面向用户的半成品应用程序,这些程序的概念很酷,但缺乏深度。
他们对你的想法保持乐观态度,也会因你的产品能积极影响他们的世界而兴奋。
产品工程师的优势
没有好的产品工程师,就不可能出产品。他们认为,软件只是解决问题的一种手段。不喜欢只为了满足性能而去编程。他们编程的目的是让产品最终能够使用。
作为业务的领导者,你不需要和产品工程师进行多次审查和澄清,因为只需轻轻一点,提醒一下,他们就知道你想要什么了,因为他们都很善解人意。
看到这儿你可能会想,那我雇一堆产品工程师就行了,那你就犯了一个可怕的错误。
产品工程师的弱点
产品工程师一直沉浸在自己的世界里编程,这会变成一个长期的负担。
他们编程是为了解决当前的问题和目标,却会忽略整个系统的需求。但是随着时间的推移,代码可能会变得混乱且难以维护。
而管理、安置新团队成员可能也会变得很昂贵。
为了不断推出新功能,他们会忽略公司组织。
产品负责人会对短期结果很满意,但随着时间的推移,一些很基础的功能开发开始增加,他们又会感到无趣。
那么有什么替代方案呢?
那就是系统工程师。
什么是系统工程师?
系统工程师专注于平台和框架,他们是单元测试和性能基准测试的重要一环。应用程序是他们的孩子,他们的工作就是把它培养成为一个成功独立的成年人。
你会发现,大多数系统工程师都在讨论框架的内部工作原理。当你想要把一个新功能引入到你的产品或他们的产品中时,他们可能会有点不知所措。
作为企业或产品所有者,你会与和你的系统工程师建立一种爱恨交加的关系。他们跟你讨论新功能可能会让你不那么积极。系统工程师认为自己是“现实主义者”,但在讨论产品变化时,他们更可能是悲观主义者。
与系统工程师一起工作确实有点让人沮丧,但他们的话很有用。
慢慢的,你对产品工程师的信任会消失,因为他们那种“我可以”的态度会让你错过交付日期,但系统工程师说什么就是什么。
如何识别系统工程师
系统工程师就是,你一跟他们交谈就知道他们的身份。
如果你提到想开发一个产品,他们大概率会用你听不懂的话回答。虽然你可能不知道他们在说什么,但你知道这很重要。
在讨论一些复杂的问题时,你可能会觉得系统工程师很悲观、冷漠或傲慢。
这是一种错误认知,因为他们已经在考虑第5层了。
与他们的朋友产品工程师相比,系统工程师通常来自传统路径。他们很可能擅长数学,并拥有计算机科学学位。
他们享受自己的私人空间和孩子。但是无论是在生活还是工作中,当他们