高质量的需求交付

发表于:November 5, 2023 at 01:11 PM

你好,我是小树。这是我为你写的第 87 封信。每期都会同步更新在微信公众号一颗小树

最近的一些讨论内容,整理润色之后,分享给大家。

作为互联网公司的前端同学,本职工作是实现用户交互和逻辑,交付业务需求。

那么什么是一次高质量的交付呢?

我按照一次需求交付的周期来划分,总结了一些自己的经验。

开发前

需求评估

这个阶段我会做两件事。

首先是以用户视角来评估产品需求是否合理,在讨论中充分表达自己的意见。

其次是理解需求的核心诉求,即究竟要解决什么问题。发现需求中明显不合理的部分,或是提出一些可能成本更低,效果类似的方案。

需求拆解

详细拆解需求,我的习惯是会拆分比较细,具体到每一个设计稿以及每一个交互点。

对于复杂的业务或技术流程,推荐多画图,时序图、流程图等图标能够很好地帮助我们厘清业务流程。

在拆解过程中,一定能发现一些新的问题,如果在开发前能够及时确认,就能够尽早暴露问题,尽可能避免过程中再返工或者耽误时间。

当然,在开发过程中会发现新的问题,可以持续更新这份文档,是一份非常好的过程留痕。

无论是日后自己拿出来回顾做总结,还是为其他人以后的需求开发提供依据,都是很好的归档资料。

根据自己的业务场景,可以沉淀一份模版,把一些格式性或是需要重点思考的内容固定下来,方便日后使用。

测试驱动

在需求拆解完之后,我们就能够梳理出完备的测试用例。

有一些复杂的业务和大型的业务团队,这部分功能可能是由专业的测试同学来完成,开发同学只需要确认用例内容是否合理。

但多数情况下,开发同学最理解需求是如何实现,以及实际的影响范围有哪些,我依然建议开发同学能够自己梳理测试用例。

对于前端同学来说,开发过程往往会更关注单点问题的解决,在某个点上反复测试,反而容易忽略实际的用户链路。

如果事先梳理一份用户视角的测试用例,可以一定程度上破除这种知识的「诅咒」。

需求排期

需求拆解完之后,就可以将它转换为一系列任务。这部分需要有一定的项目管理经验,具体的情况很多,不展开讲。

但我自己的一个最常用的指标是:任务是否对外部有依赖。管理是期望提高进度的可控性,而外部依赖相较而言是没有自身(或团队内部)可控的。

优先解决外部依赖可能的问题,是降低需求交付风险的一种方法。

数据意识

了解当前负责业务的关键指标,结合此需求的目标,和产品经理明确数据埋点的需求。

多数情况下,埋点都不会影响技术方案,但预先聊清楚也会规避一些小概率的风险。

开发中

自动化

对于开发者来说,一切能自动化的流程,都应当自动化,这样能够提升需求交付的下限。

如果发现一次需求开发中有大量的人工流程,就可以多考虑提升自动化的水平。

一点暴论:一切依赖人工的流程都是不可靠的、不可持续的。

可维护性

这部分有很多成熟的内容去讲,不同的场景也会有不同的考量,我这里挑几条自己最常用的:

充分自测

至少要保证用户视角的功能自测通过。

有条件的情况下,补充关键模块的单元测试以及核心链路的 E2E 测试。

埋点验证

功能开发完成后,按照需求完成数据埋点,并在上线前验证数据埋点的结果符合预期,能够推演出需要的数据结论。

上线后

线上监控

配置并关注异常监控,关注相关的用户反馈,保持对问题的敏感,及时处理,避免小问题扩大成大问题。

跟踪业务效果

持续跟进业务数据,为产品同学改进产品功能提供依据,协助团队实现业务目标。

小结

最后,总结一下,我会在实际写代码之前进行大量的梳理和文档工作,把更多的脑力工作前置,最好能够达到写代码只需要逐步「翻译」文档中梳理的逻辑。

让自己更有参与感,不要做工具人,很多时候更好的方案都是产品和技术共同碰撞出来的。

不过,也不必太过教条,很多步骤都可以结合实际情况灵活处理。

希望对你有些启发。

碎碎念

这周拔草了西塔老太太,酸甜口芝麻酱的烧烤蘸料还是第一次尝试,很特别。

服务出乎意料的恰到好处,比如:在生菜吃完快吃完的时候,会主动帮你续上一份;在烤肉的篦子有些焦糊处的时候,已经安排了人来更换;在你烤累的时候,主动帮你把剩下的肉烤完。

其它的一些需求响应同样很快,不会过分热情,但能够在有需要的时候快速解决。

整体品质不错,值得一试。

谢谢你的关注,我们下期再见。👋🏻


往期推荐

你也可以在这里找到我:即刻Twitter、微信公众号一颗小树

如果你觉得这篇文章对你有用,欢迎分享给更多好友。