企业数字化应用:从业务价值到研发实现

引言:随着数字化转型、产业升级转型等概念的不断出现在从政府工作报告到大大小小的企业战略规划中,尤其是人工智能、区块链等新一代通用技术不断涌现成功经验带来更多技术红利刺激。采用信息技术来提振生产力,从信息中攫取利润、用信息来支持决策的理念已经深入人心。似乎每一个有雄心的企业家、高管都不能不在各种场合强调自身对信息价值的认同以及坚决拥抱的态度。然而,万丈高楼平地起,任何一个企业或者组织,欲从信息技术中获得价值,都必须面临一个基本的命题——为自己打造一个合适的数字化应用系统。合适的应用会帮助企业事无巨细的记录经营活动的每一个细节、提供格式规整高质量的数据、为组织的沟通协作提供高效的平台等等,是一切数字化的基础。
而,一个合适的数字化应用的构建缺不是一件简单的事情。虽然看上去并无特别的技术门槛,事实上却充满了形形色色的挑战。本文,从Vendor角度,以为大型通信企业构建应用的角度来阐述企业应用构建的关键点。

前提与基础

成功构建企业应用,是大多数软件公司正在从事的工作。而一款成功的企业应用往往能为vendor带来丰厚的利润和行业影响力。而企业应用的构建往往涉及了非常多的维度,导致成功的软件产品并不多。我们先提出几个前提,作为讨论的基础。

  • 通过一套应用软件包打天下,违背了企业差异化竞争的规律,是行不通的。
  • 客户、用户天然分离带来需求真实性、客户反馈延迟。
  • 核心竞争力需要构建在一个使能快速开发、缩短TTM的软件产品平台上。而不是构建一个通用软件产品上。

同时,构建企业应用有两点核心因素:业务价值的洞察(客户的痛点、vendor的自我主张、市场的趋势和诉求),技术的选择和落地能力(决定了IT是否按照业务价值的观点进行了实现)。这两点是决定成功的基础。

关键挑战

围绕着这几个前提和基础,构建企业应用的核心挑战可以归纳为以下几点:

  1. 对企业领域的洞察
  2. IT对企业经营的意义
  3. 决定IT的基本职能定位
  4. 选择业务架构
  5. 选择软件架构
  6. 选择技术架构
  7. 规模问题
  8. 组织问题
  9. 软件质量
  10. 软件如何交付给客户以及后继的维护、演进

以笔者熟知的运营商IT领域来看,运营商IT整体呈现出如下的特征和痛点问题:

  1. 频繁的功能特性、运营数据变更,需要非常短的TTM,这一点在所有竞争激烈的企业领域都呈现出这样的特点;
  2. 规模大,以BSS域为例,多达几十种应用,其中规模较大的就有CRM、计费、服务开通等,相互间的集成关系复杂;
  3. 因为竞争激烈、规模大,经营变化快,需要不断的实施IT项目且变化大,工程周期长。
    而为运营商提供IT服务的,大致都是与运营商合作已久的设备商以及随着运营商IT而诞生的软件集成商。这类厂商大致的特点是为运营商进行高度定制。但是其中厂商的利润和发展诉求已经不再愿意接受这种模式。从而衍生出与其他企业应用厂商的共同主张。即自身做软件产品版本,将二次开发(定制)交由自身的成本相对低的partner负责。
    由此导出的一个关键诉求就是软件产品的高度二次开发能力。

从运营商IT角度推导不难看出,企业应用的核心关注点:

  1. 如何在需求、功能特性、技术快节奏的前提下,最大可能的缩短TTM;
  2. 大规模的应用、数据,需要什么样的架构,能够支撑TTM以及不断的演进发展;
  3. 企业IT如何整合在一起,在信息层面实现“一个企业”。

方法、架构与技术

对特定领域商业场景的理解

简单朴实的表达,就是对“这个商业领域如何做生意”有基本的理解,卖什么样的产品、客户是谁、产品如何生产、如何营销、如何销售、如何盈利,整个企业围绕着什么产品来经营,最终盈利,企业盈利的关键诉求是什么?由此再推导到软件IT能提供什么样的独特价值。这是对软件特定领域的基本面的认识。
以上的观点不仅仅适用于企业业务领域,同样适用于偏技术类的产品。我们分别看看代表企业业务领域的SAP和salesforce,以及代表技术产品领域的AWS和ALI云的报告。

从以上内容即可看出,企业业务领域的CRM的客户群以及价值主张,公有云两大巨头的主张。

应用开发平台是核心竞争力,平台中的开发框架是技术竞争力的控制点、平台中的领域能力是业务价值核心控制点,要坚持这个基本观点不能动摇。持续在这个层面上构建竞争力。没有业务,没有商业价值的存在基础;没有技术,会沦为平庸。只有实现技术和商业(业务)双轮驱动,才能高明的去解决广泛的行业问题,获取市场最大的利润。

架构的一般方法论

  • 软件工程相关方法论
  • 对象建模、数据模型建模等UML建模能力
  • 企业架构方法论
  • OO、设计模式
  • 4 + 1视图等架构刻画方法
  • 定义问题域的能力(需求识别和准确描述能力),刻画解域以及问题域到解域映射的能力
  • use case建模方法
  • 几条关键的架构原则

1、分层架构与定制开放:熟悉分层架构原则、解决问题、架构目标,面向定制开放的能力类型、特征、目标、工具、演进方向等,通过分层架构与定制开放架构的熟悉,系统化理解企业应用解决定制问题的逻辑、方法与演进目标,所有设计实现遵循该架构原则,不断向目标演进;
2、微服务架构设计:企业应用所有套件实现采用微服务架构,基于组件实现微服务模式的系统解耦,组件自治、可独立部署升级、轻量级通信框架、服务化注册&发现及治理能力等。微服务架构是云原生应用架构下的核心方面之一,所有套件设计及演进需遵循或参照。
3、元数据驱动架构:元数据驱动架构主要解决配置化开发及版本隔离问题,尤其适用如CRM这样的强定制特征的业务应用。目前我们的企业应用基本实现了全元数据化的架构基础,一些核心理念及原则需要遵循及不断演进。如配置化+脚本的协同方式,不断提升配置化开发比例、体验及效率,特别是工具能力。
4、前后端分离架构:面向用户的交互渠道与后端能力分离,后端能力服务化,前端交互场景化、应用化、个性化、智能化,提升客户体验及效率。前后端分离架构要求系统提供统一的RESTful API、无状态等设计要求与原则。
5、版本兼容性及规范:基于定制开放能力及版本平滑升级目标,基线版本制定兼容性规范,涵盖数据库模型设计、元数据、业务配置项、工具、其他环境适配等方面,保证版本演进过程中可以满足兼容升级要求。所有相关设计需遵循该规范。

为之提供软件解决方案的目标领域知识

  • 特定于领域的知识,如企业CRM、ERP、人力资源等
  • DDD战略建模

企业应用软件架构

  • 面向对象
  • 数据库
  • 构建企业应用的几种模式如事务脚本等
  • 企业应用的开放性、可变性设计

云化架构

  • CloudNative架构
  • 微服务
  • 容器化
  • AWS等云产品架构等

人才、组织与软件工程能力

此处的软件工程能力指的是,将业务领域需求在特定的架构和技术选择下,交付高质量软件应用系统的能力。包括流程、方法、工具和阵型。

软件工程

  • 敏捷

2017.12.30日更新:

  • 以当前工作为出发点看清楚一个特定领域面临的真正问题,从功能操作开始了解
    • 核心bp流程的基本任务,探究企业的典型经营流程以及涉及的相关部门
    • 核心流程中的数据流
    • 核心流程中的领域概念,套件、组件、API等
    • 核心流程对应的程序组件实现方式,UI、bo、API服务、数据更新、dsl等
    • 对应的第三方集成工作
    • 了解业务中的并发、效率、用户体验等高级产品竞争力
    • 量化分析某些典型场景的性能、数据量,从量的角度阐述应用面临的基本任务和关键挑战
    • 了解竞争对手的实现情况
    • 完成典型企业应用基本命题、以及主要问题和主流解决方案

你可能感兴趣的:(企业数字化应用:从业务价值到研发实现)