
目录
在构建产品时,软件开发者的角色有时被视为被动的。
他们往往只是拿到业务方提供的一份需求清单,然后被期望交付最终产品,除此之外几乎不需要提供什么意见。
然而,让软件开发者参与产品构思阶段并赋予他们更积极的角色,是否能带来更好的结果?
Netguru 的前端软件架构师兼技术负责人 Dawid Janiga 似乎认为是这样的。他在职业生涯中参与过一些出色的产品,但也经历过不少失败的项目。他参与的每个项目都让他收获了宝贵的经验,这些经验磨炼了他的技能,并帮助他形成了所谓的“产品工程思维”。
我们邀请 Dawid 在 Burning Minds internal Netguru conference 上分享他的见解,谈谈为什么采用产品工程思维对软件开发者如此重要,以及为什么这是为客户交付更成功产品的关键。
什么是软件开发?
在 Dawid 看来,软件开发者常常被视为纯粹的技术角色,只负责交付产品,而不是整个项目的重要组成部分。
如需深入了解评估、安全和持续监控,请参阅我们的 how to handle forward deployed engineer。
通常,软件开发的周期包括以下几个阶段:
- 客户说明他们的需求。
- 开发团队评估项目的可行性以及完成项目所需的时间。
- 实施
Dawid 认为我们应该改变这种思维方式。对他而言,软件开发只是更广泛的产品工程生命周期中的一个子环节。事实上,产品工程包含更多层面,包括市场与用户研究、竞争分析、质量保证和软件开发。这些都应该引起软件开发者的关注,而不应被隔离在业务部门之内。
让开发者参与产品整个生命周期的好处
Dawid 表示,只专注于各自的任务,不如对产品功能开发拥有更广阔的视野来得有效。软件开发者应被视为顾问,而不仅仅是机器上的另一颗齿轮,因为他们在产品成功中扮演着重要的角色。
Dawid 解释说,如果软件开发者能更好地理解业务,他们就能更多地追问“为什么”。 他们可以对需求和设计提出批评意见,并更深入地了解项目如何契合企业的整体目标。
有了这些认知,他们就能就产品做出更好的数据驱动决策。通过更深入地参与,开发者可以赢得客户的信任,增强主人翁意识,并有望交付成功的产品。
为什么数据驱动决策在产品工程中如此重要
Dawid 解释说:
“数据驱动的决策制定是指剥离决策中的情绪因素,只看冷冰冰的硬事实。”
然而,第一步是确定应该衡量哪些正确的东西。
一旦你明确了要衡量的内容,你甚至可以在客户发现问题之前就识别出问题。
开发人员如何了解业务的动态
作为一名开发人员,Dawid 表示,与业务动态保持联系至关重要,这有助于细化需求、预判功能请求并完善产品。为此,他建议采取以下行动:
- 尽量了解业务路线图的动向。如果开发人员知道业务的发展方向,就可以为变化做好准备。这可能是业务扩张、新功能,或扩展到其他语言。
- 订阅客户的新闻通讯或播客,以随时了解即将发生的变化。
- 在社交媒体上关注客户,以了解他们的用户群体。
- 收听客户的播客,或他们作为嘉宾受访的播客。这可能会让你获得改进产品的洞察。
开发人员可以了解产品用户的哪些信息
开发人员还可以通过定期查看用户分析来关注受众及其行为。Google Analytics 和错误报告工具的监控是关键。
Dawid 强调,在以往的项目中,检查不同设备上用户的数量和行为对产品开发至关重要。
“如果某个非常棘手的 bug 只出现在平板电脑上,而平板电脑用户占比只有 1.110%,那把它从待办事项中拿出来实现就毫无意义。”
Dawid 解释说,在一个之前的项目中,60% 的用户使用的是较小的笔记本电脑,但开发团队使用的是 4K 视网膜屏幕。他们发现,他们开发的内容对普通用户的较小屏幕来说太大了,迫使用户不得不滚动页面。
在这种情况下,对用户群体的详细了解帮助他们开发出更好的产品。了解用户如何与产品交互,可以帮助软件开发人员对客户的功能请求提出异议,或建议更好地利用资源或进行调整。
为什么参与需求流程能带来更好的产品
Dawid 详细讲述了这种产品工程思维如何在 Koii.cx 的一个 NFT/区块链项目中发挥作用。在这个项目中,最初的需求是创建一个用户引导平台,但在收听了创始人的一期播客后,Dawid 想出了做更多工作来执行产品愿景的主意。Koii 的目标受众精通技术。团队提议将用户引导体验置于最前沿的 NFT 技术之中。最终成果是一种 3D 与声音相结合的体验。
这是一个很好的例子,他们逆转了需求生命周期,主动提出了需求。结果如何?一个让客户非常满意的网站。这就是产品工程思维。
作为开发者,如何在竞争激烈的市场中脱颖而出
Dawid 认为,开发者需要在市场中脱颖而出,不要再认为自己只擅长技术技能。
相反,开发者应该展示自己拥有更广泛的技能,并表现出对整个行业以及客户业务发展的兴趣。
懂代码固然好,但能够提供详细的反馈就更好了。 收听商业播客、订阅新闻通讯、关注竞争对手,是 Dawid 工作流程中的关键部分。这使他能够向客户提供更有依据的反馈和建议。
让开发者参与商业计划
Dawid 解释说,客户有时认为开发团队不想了解更广泛的商业计划。事实上,客户往往希望开发者理解的不仅仅是技术层面的东西。 他们希望开发者能够按照整个路线图、营销计划、用例来工作,而不仅仅是关注要设计的功能。
这能帮助开发者设计出更好的产品,并为更新和新版本发布做好准备。
如果你想进一步了解产品开发,Dawid 推荐 Marty Cagan 所著的《Inspired》一书。