速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

业务和技术融合的突破口:帮助业务人员理解软件开发

  • 2020-06-30
  • 本文字数:2853 字

    阅读完需:约 9 分钟

业务和技术融合的突破口:帮助业务人员理解软件开发

早在 1987 年,从 Zachman 先生提出企业架构的开端——“Zachman 框架”开始,B 端软件开发就开始关注企业的全景信息,而非仅仅是琐碎的需求,这也意味着,只有开发人员更好地了解了企业整体,才有可能让 B 端软件成为提升企业整体管理能力、创新能力的武器。


但是,企业架构一路起起伏伏的发展让人反思一个问题:开发人员如何才能更好地了解企业整体?显然信息只能从业务人员那里来。如何更有效地获得这些信息?除了笔者经常谈的企业级业务架构外,另一个答案很可能会出乎意料——应该先努力让业务人员了解开发。


获得信息的有效途径当然是交流和沟通,业务制度、流程图这些都是“死”的,“活”的信息只能来自于不同层级的业务人员,而有效的交流沟通并非单向的,不是业务人员单纯向技术人员“倾述”,如同两个人交往一样,越是互相深入了解,沟通才能越有效率。面对日益膨胀的软件需求,技术人员需要向业务人员普及下到底什么是软件开发,软件开发关注什么,也许只有业务人员了解了软件开发关注什么,才能更好地解释业务关注的点和技术关注的点是什么关系。


“技术的归技术,业务的归业务”,这种泾渭分明的思想要不得。时代在发展,数字化时代需要劳动者技能发生改变,结构化思维是数字化时代很重要的业务思维方式,而数字化产品也是数字化时代最主流的产品,软件将是最主要的生产工具,无论从以上那个角度讲,技术人员都有义务帮助业务人员更好地理解软件开发,以提升沟通效率,业务人员也应当更加积极主动地了解这些知识,从而推动业务思维的转变。打破理解的鸿沟,业务与技术才有深度的融合,而两者之间的差距也许没有大家想想的那么大。

一、软件也是一种“业务”

(一)软件过程与业务过程的相似性


软件开发关注的核心问题主要是过程与设计,也就是软件工程和软件设计,前者关注的是软件的生产过程,后者关注的是软件的设计方法,其实这两个核心问题在思维模式、工作套路上与业务人员的工作也是很相似的,完全可以很好地解释给业务人员听。软件开发关注的主要问题如下图所示:



图 1 软件开发关注的问题


软件过程主要是从工程管理的角度研究软件生产过程的工序、标准,按什么样的方式和顺序组织生产,每个生产环节该达到什么样的标准,这样做的核心目的是为了提高软件的质量,减少 BUG,也是为了尽可能通过科学地安排工序,缩短软件开发时间,从而提高产量。


技术人员对软件过程的关注其实与业务人员对业务过程的关注没有什么本质区别。业务人员推出一个新业务产品时,也要关注产品的全生命周期管理,从需求收集、市场调研到产品设计、内部审批,再到试运行或者上市,之后关注运营、客服,这也是一个基于工序和标准的管理;业务人员也经常研究如何优化内部流程加速产品上市,如同技术人员研究工程模型一样;业务人员对业务的关注也集中在产品质量上,不违规、不给客户带来困扰;最后,业务人员对产品流程的优化也包含着让客户在更短的时间、更好的体验中快速获得产品,也就是对产量的关注。并非由于技术人员生产的是软件,二者就搞出了多大的底层思维的差别。


(二)软件设计与业务产品设计的相似性


软件开发中关注的另一个问题是软件设计,设计中最重要的部分是架构设计,架构设计关注的核心是结构和关系,如何划分模块、组件、服务,各部分之间又是一种什么样的关系。


清晰架构的目的一是为了更好地复现,目前大部分软件开发的需求还是来自业务,是对业务需求的复现,无论你写没写需求文档,这个本质是不变的。所以,理清了业务的结构、应用的结构,才能保证复现的正确性,也就是确保软件的质量。目的之二是为了更好地实现复用,清晰、统一的架构定义,有助于识别已有的业务能力、软件资产是否可以被复用,复用有助于解决产量问题,也就是缩短开发周期,而已经被使用过的软件资产往往经历过检验,也有助于保证新应用的质量。


其实软件设计与业务人员搞产品设计关注的东西也没有很大差异,业务人员做产品设计时一样要考虑产品的构成,产品中包含什么内容,比如银行产品中申请的环节、审批的环节、放款的环节,不同的环节之间是什么关系;如何更好地复现、迎合客户需求;以往的业务经验、业务规则能不能用在新产品设计上,如果能用那自然产品设计的效率也会提高。所以,二者思维模式接近,如何更好地帮助业务人员在设计产品时进行结构化的思考,就会让业务和技术的关系更近一步。


(三)“乐高积木”的局怎么破?


随着软件需求量的激增,现在到了需要需求侧能力提升的时候了,技术端无论如何改进自身,如果需求端没有相应的改进,那么,软件开发效能的上升始终是有限的。比如,谈论近 30 余年的“乐高积木”式构件化设计迟迟未见好的实现,是不是与需求侧的结构化程度严重不足有关呢?需求侧的结构化思维中,是不是也需要对软件开发的关注点多了解一些呢?


“乐高积木”问题其实也就是服务的颗粒度问题,服务的颗粒度与业务管理上经常处理的分工问题是不是高度相似呢?给小张同学安排 1 件事情好还是 5 件事情好?如果有 100 件不同的事情,是安排给 100 个小张同学好还是安排给 20 个小张同学好?这个问题对业务人员和技术人员的困扰是一样的,并非是一个有着极大专业界限的问题。


“乐高积木”最终是要支持业务人员的需求变化,那服务的切分到底是技术人员自己的事情,还是也需要业务人员的参与呢?我们目前在 B 端软件上经常会以双方关注点的分离来解释现有的软件研发分工,但是,面向数字化转型,这个分工该适当改进一下了,新的时代需要新的生产方式,不然,“乐高积木”这个局可能就无解了。

二、软件过程是业务人员学习技术知识的基础

现在科技发展速度越来越快、应用越来越普及,用技术改变业务模式的呼吁也越来越强烈,所以很多业务人员也对技术发生了浓厚的兴趣,人工智能、区块链、大数据、云计算也都成了业务人员的案前书。但是很多业务人员都忽略了对软件工程、系统设计、业务架构这些基础性内容的了解,经常直接撞上了技术领域中“不讲人话”的部分。


这些“不讲人话”的内容,比如人工智能中的各种算法、区块链中的哈希与共识等等,这里边的内容很多是技术人员自己都说不太清楚,靠封装好的函数、模块进行调用的,业务人员在此花费精力很不值当。而再“牛”的新技术,也是要经过软件工程中的辛苦劳动才能转化为应用,所以,在关注这些新技术之前,先了解软件工程和系统设计原理,反倒可以更好地思考这些新技术的落地方式。


软件设计的架构知识中确实有不适合业务人员学习的技术理论部分,但是就整体模块的设计与划分而言,是业务和技术可以沟通的部分,也是必须要沟通的部分,通过双方对软件工程、业务架构、应用架构的共同理解,可以打破双方在理念上人为设置的“鸿沟”,更好地促进双方融合,只有强化了这些底层的融合,才可能让战略层面、企业层面的业技融合真正得以实现。


作者简介


付晓岩,新书《银行数字化转型》刚刚面市,受到热议。另著有《企业级业务架构设计:方法论与实践》一书,对企业级业务架构设计、企业数字化转型、金融科技发展有持续的研究和深厚的实践积累,现就职于建信金融科技有限责任公司。公众号:晓谈岩说。


2020-06-30 10:413654

评论

发布
暂无评论
发现更多内容

华为云GaussDB,如何为企业数字创新保驾护航?

YG科技

看过才知道,这套SpringCloudAlibaba笔记,把微服务玩的出神入化!

程序知音

Java 微服务 SpringCloud java架构 后端技术

PAG动效框架源码笔记 (五)渲染流程

olinone

ios android 动效 渲染

提升效率:P4VFS让虚拟文件同步更迅速、更简单

龙智—DevSecOps解决方案

文件同步 虚拟文件同步 Virtual File Sync

备战金九银十:大厂面试官必问MySQL连环炮全梳理,你扛得住嘛?

程序员小毕

Java MySQL 数据库 程序员 面试

中企出海管理难,复杂的国际形势下怎么用对人?

用友BIP

中企出海

服务型企业为什么要做财务共享中心?

用友BIP

MegEngine 动态执行引擎-Imperative Runtime 概述

MegEngineBot

深度学习 开源 动态图 MegEngine

2023上海国际嵌入式展 | 如何通过人工智能驱动的自动化测试工具提升嵌入式开发效率

龙智—DevSecOps解决方案

嵌入式 嵌入式软件 嵌入式设计 嵌入式开发

软件测试丨Allure2报告中添加用例支持tags标签、失败重试功能

测试人

程序员 软件测试 测试开发 测试用例 Allure

SpringBoot 升级所踩过的坑 (二)

技术小生

6 月 优质更文活动

华为云GaussDB,如何给世界一个更优选择?

YG科技

肝到爆!通过Canal如何优雅的将MySQL同步到ES?

Java全栈架构师

Java MySQL 程序员 后端 ES

做开发5年,这8个高效开发好习惯我悟了🔥

引迈信息

程序员 前端 低代码 JNPF

Kubernetes 集群管理:Kurator or Kubespray

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

中国银行开启数智人力管理新征途

用友BIP

人力资源 数智人力

TiDB 7.1 LTS 发版:为关键业务提供业务稳定性和多租户场景支持

编程猫

TiDB pingCAP

理论+示例,详解GaussDB(DWS)资源管理

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

牛客网论坛最具争议的Linux内核成神笔记,GitHub已下载量已过百万

简说Linux内核

Linux内核 嵌入式开发 设备驱动 内存调优 内核组件

“站在后天看明天”:华为给金融广厦架起数字栋梁

脑极体

金融 数字化 智能化

详解驱动开发中内核PE结构VA与FOA转换

华为云开发者联盟

开发 华为云 驱动开发 华为云开发者联盟 企业号 6 月 PK 榜

再也不怕“卡脖子”了?华为云数据库GaussDB究竟有什么神奇功能?

YG科技

如何保障医疗机器人的功能与安全?这几条编码标准你一定要了解

龙智—DevSecOps解决方案

医疗机器人 编码标准

怎样区分试验与仿真的关系?

思茂信息

仿真软件 仿真技术

this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(一)

Immerse

JavaScript this指针 this

Postman 前后端都适用吗?

Liam

前端 后端 开发 Postman API

优质高效!阿里内部超高质量的k8s+Jenkins笔记,技术与实战齐飞

程序知音

聚焦 AIGC,函数计算为 AI 应用插上腾飞翅膀

Serverless Devs

Serverless FC AIGC

打卡有礼!快来 2023 开放原子全球开源峰会找龙蜥玩~

OpenAnolis小助手

开源 操作系统 龙蜥社区 开放原子全球开源峰会 龙蜥实验室

国外云主机:为你的业务提供全球级托管!

一只扑棱蛾子

云主机

业务和技术融合的突破口:帮助业务人员理解软件开发_架构_钰湚—付晓岩_InfoQ精选文章