没有业务的技术,犹如无源之水,无根之木。想要突破代码的局限,成长为技术大牛,其首要前提恰恰是深入理解你所支撑的业务本质。
那么,什么是业务?我们可以将其定义为一个组织、公司或个人所从事的商业活动、服务或工作,以及与之相应的流程和规则。
业务相关活动所涉及的问题范围,我们称之为“问题域”。这通常也是公司为其客户提供服务的核心范围。
而“产品”,则是在特定业务背景下,为相关问题域所提供的解决方案,即呈现给用户或目标组织的系统或服务。产品是对解决方案的包装,支撑起解决方案实现的实体,便是“业务系统”。
冠以“业务”前缀的开发工作,意味着除了需要扎实的技术通识,更要深度熟悉业务本身。对一个业务开发团队而言,其核心挑战在于交付并持续维护一个“好”的系统,这通常体现在两个关键阶段:
- 从0到1阶段:关键在于洞察用户痛点,精准解决核心问题。
- 从1到100阶段:重点在于确保业务系统能够轻松、高质量地动态进化,在不断发展的业务中提供坚实支撑。
洞察痛点:本质在于理解业务,能够定义边界、聚焦重点。
- 面向需求:我们要开发一个什么样的产品?
- 面向业务:我们为什么要开发这个产品?究竟要解决什么问题,达成什么目标?
动态进化:本质则依托于业务系统的设计与实现。
- 面向设计:我们如何设计与实现,才能让系统契合业务形态、灵活应对变化、减少制约,从而更好地达成目标?
要理解技术所需承载的业务,我们需要跳出单一的代码实现视角,从两个维度进行拆解:
- 问题空间:即“问题域”。我们关注的是“有什么问题需要解决”、“存在哪些痛点需要消除”,也就是我们常说的“需求”。
- 解空间:也可称为“解决方案域”。我们思考的是“有哪些可能的方案来解决这些问题”,而最终选定的那个方案被实现出来,便是“实现”。
常言道,提出正确的问题比解决问题更重要。无论是初识一个全新业务,还是在成熟业务上扩展新需求,我们都应主动思考:
当前的业务现状如何?为谁服务?业务全景和上下游协作关系是怎样的?核心价值与利润来源何在?当下最重要、待解决的问题是什么?……
只有建立了对业务的全局认识,才能形成足够的判断力,从而帮助我们更高效地对接与厘清业务需求,最终放大技术创造的价值贡献。
业务建模是一个体系化的主题,不同的场景有其最合适的应用方法。通常,当有更多角色直接参与系统交互,并且系统需要处理更多元、复杂的业务信息时,业务建模的价值才会更加凸显。例如,在解决纯技术领域(如某个算法优化)的问题时,由于与具体业务无关,或许就无需复杂的业务建模,你的代码和数据结构本身就是最直接的模型抽象。
当 LLM 掀起新一轮技术浪潮,Prompt Engineering(提示词工程)的本质,某种程度上也是“如何理解业务并结构化地陈述业务需求”。这与业务建模方法为业务开发赋予的“理解问题域”能力不谋而合。“声明式的方法 + 结构化抽象并逐步分解问题”的思维永远不会过时,在AI时代,这种能力甚至有机会为业务开发人员创造新的价值。这种将复杂业务进行结构化抽象与分解的业务建模能力也是高阶架构设计中不可或缺的一环。
欢迎在云栈社区与更多开发者交流探讨,分享你在业务开发中的成长心得与破局之道。
|