低代码实施复杂应用的实践方法

在这里插入图片描述

内容来自演讲:韦有炬 | 柳州知行远企业管理咨询有限公司 | 总经理

摘要
本文探讨了在全民开发时代如何使用低代码实施复杂应用并降低上线风险。文章分析了复杂系统实施失败的风险,包括项目规划不周、人员变动、企业基础管理不足等,并对比了低代码和传统套装软件的优劣势。低代码开发具有透明度高和快速调整的优势,但可能不适合大型企业核心业务。
为了确保应用成功实施,文章提出了几个关键要素:明确目标范围、管理业务流程、确定角色和资源、设计执行流程和技术支持。并讨论了角色职责、技术能力、数据质量和项目管理的重要性。数据质量是应用存在的基础,项目管理是风险管理的关键。无论是传统开发还是低代码开发,都需要有能全面管控业务领域的负责人。

一、引言

大家可能已经对这张2021年由Gartner发布的图表有所了解,它表达的思想是,在全民开发时代,针对不同复杂程度的应用,我们需要采取不同的安全管控框架。

在这里插入图片描述

在这个图表中,绿色区域代表的是较为简单的应用,主要涉及数据增删查改和工作流等基本功能,这类应用通常面向个人或小团队使用。在这种情况下,普通的业务人员完全可以自行进行开发,无须专业开发人员介入。第二种情况是针对流程复杂度较高的应用,这类应用已经实现了自动化管理,并且通常面向部门级别,例如人力资源管理系统。在这样的情况下,可能需要IT人员进行协助。

红色区域则代表更复杂的场景,此时的应用已经需要与其他业务系统建立接口,而且跨部门使用,这已经是一个企业级的应用,这种情况下,必须由专业人员参与并实施管控。

最后是黑色区域,代表的是极为复杂的场景。这种复杂程度已经超出了小型团队所能处理的范围,需要一个专门的团队进行协作解决。因此,必须将应用开发的权力完全交给专业的人员。这些专业人员包括熟悉业务的业务专家以及在IT领域掌握应用架构和代码编写能力的专业技术人员。

今天,我们的主题是探讨低代码实施复杂应用的实践方法。我们的主要目标是解决如何让非专业人员也能有效地掌控复杂应用的管理,并实现最低的上线风险。

二、复杂系统实施失败的风险

首先,我们要理解复杂系统上线实施过程中可能遇到的风险。其次,我们要对比低代码实施和传统套装软件二次开发的优劣势。此外,要了解确保应用实施成功需要掌握关键要素,并根据这些要素进行深入分析和分享。
在这里插入图片描述

无论是传统的开发方式还是低代码开发,一个复杂的应用系统实施成功都绝非易事。我们可能遇到的几个主要问题:

  1. 项目规划不周。在项目开始阶段,如果没有做好整体规划和明确范围目标,可能会导致项目混乱和目标不清晰。
  2. 人员变动与适应性问题。在项目实施过程中,可能会出现关键角色的离职情况。这不仅会影响到项目的进展,还可能导致在使用新系统后,部分员工觉得操作复杂,从而产生抵触情绪。在我们以往实施的项目中,就出现过某些岗位人员频繁更换,对项目稳定性造成影响。
  3. 企业基础管理不足:即使项目规划和资源调配没有问题,但如果企业的基础管理不到位,如数据标准化程度不高,管理理念未能达到系统实施的要求等,也可能阻碍项目成功。

三、低代码实施复杂应用的优劣势

对比传统开发和低代码开发,我们可以看到传统的套装软件通常具备一套完整的、内置的业务流程,流程相对成熟。然而,对于低代码开发而言,我们需要从零开始构建,就像建造一栋房子需要一砖一瓦地搭建起来一样,搭建的过程中,我们需要考虑建筑设计图纸、搭建方法以及结构问题等各个方面。这要求我们拥有专业的人员进行掌控,确保流程的成熟度。
在这里插入图片描述

在低代码开发过程中,可能会出现一些bug。当然,低代码的一个优势在于其快速调整的能力,能够迅速解决这些问题。

此外,由于应用的整个结构由开发团队自行掌控,他们对内部细节和可能存在的缺点都有深入的理解。在这种情况下,如果开发团队对某个缺点特别在意,他们可能会选择不使用像明道云这样的平台来处理。

低代码开发的一个显著优势是透明度高,开发团队对系统有深入的了解,没有供应商在初期承诺过多而在实施时出现各种限制的情况。

然而,对于大型企业的核心业务来说,低代码开发可能不太适合,因为这些业务通常需要更高的稳定性和定制化程度。对他们来说,系统的稳固性至关重要,甚至超越其他所有因素,就像我们平时购物时,如果有足够的预算,自然会选择质量稳定、不易出问题的产品。当然,对于一些非核心或边缘的应用,低代码方案可能是可行的。

对于中小型企业而言,他们可能更需要快速适应市场变化,根据自身的业务管理需求灵活调整业务流程。在这种情况下,低代码开发就显得尤为适合。它的优势在于能够根据实际需求,在稳定性与快速适应市场之间找到平衡。

四、项目实施成功的几个关键要素

在质量管理方法中,有一套理论称为过程方法。如果将整个管理事项视为一个过程,那它就会包括这几个维度:

  1. 明确事项的本质。我们需要理解这个事项的具体内容是什么,以及完成它能带来哪些收益。
  2. 确定输入和输出。分析该过程需要哪些输入,并明确其预期的输出结果。
  3. 识别涉及的角色和资源。确定在执行过程中需要哪些人员参与,需要具备哪些能力和资料。
  4. 设计执行流程和技术支持。规划具体执行的流程,并确保有适当的数据、技术来支持整个过程。

在这里插入图片描述

1.目标范围:避免需求无底洞

我们先扩展讲一下项目的目标和范围。在实施企业项目时,我们的业务顾问会进行深入的业务调研。在这个过程中,企业的各个部门通常展现出高度的配合。经过两天的协同工作,各部门提供了各种关键信息,并提出了许多关于数字化应用的设想,这些设想可能包括:销售、项目管理、技术开发、生产、采购、库存管理、物料控制以及财务管理等领域。

在这里插入图片描述

但是,后续我们对项目进行评估时,发现项目规模过大,难以控制。经过与企业的详细讨论,我们决定削减约三分之一的内容,重点关注那些我们有过实际案例并且能够相对掌控的元素。即使是这样,我们的实施顾问发现实际情况并不像最初设想的那么简单。尽管只实施了三分之二的功能需求,但在过程中还是遇到了各种意想不到的问题需要解决。最终,虽然缩小了项目范围,实际花费的时间成本仍然超过了最初的预期。

因此,在项目初期约定时,我们就需要明确界定需求的范围。对于超出初始需求的部分,我们可以将其列入后续讨论,并考虑在二期进行实施。首要任务是确保第一期的需求能够得到妥善处理,因为一旦项目上线,各部门可能会同时寻求支持,可能导致资源紧张,甚至可能出现因无法兼顾而导致系统停用的情况。

2.业务流程:管理思想达成共识

在业务流程方面,我们在2010年之前常常提到一个词——业务流程再造。这个概念强调的是,企业进行数字化实施的项目实际上就是在进行业务变革,因为当我们将原有的业务流程迁移到系统中时,这些流程很可能会发生变化。

对于一些套装软件,如SAP,它们已经有成熟的流程和管理理念。在实施这类软件时,会进行企业组织结构和具体业务模式的调研,然后进行相应的配置,形成适应企业业务流程的版本,并按照这个流程进行实施,这是比较常见的一种实施方式。
在这里插入图片描述

然而,我们在众多ERP项目实施的经验中发现,真正取得成功的概率可能只有约30%,甚至更低。其中有多种原因。一方面,可能是在项目上线过程中,企业的管理能力无法达到软件流程的要求,导致需要花费大量时间进行前期管理提升,而这往往是企业难以承受的。另一方面,也有可能在实施过程中发现某些业务模式并不适合企业,导致部分功能上线后又不得不进行调整甚至放弃。

我们的主要建议是在进入企业进行项目实施时,应避免过于激进,而是要根据企业的实际情况来制定计划,适度地向前推进半步或一步即可,不必过分追求完美。例如,虽然SAP中的业务流程被认为是正确的,但它适用于管理水平高的企业,如果当前企业还未能达到这一水平,我们可以选择采取更为实际和适中的方案。

对于低代码开发,可能在初期并没有成熟的业务流程可供参考。在这种情况下,我们需要依赖管理专家来梳理和制定业务流程,明确未来的业务运作方式。

3.角色职责:执行落地的关键

在角色职责方面,特别是在制造业中,例如工艺人员,他们在系统实施过程中可能会面临较大压力,因为他们负责基础数据的录入和处理,而错误往往最容易在这一环节发生。因此,我们需要与这些角色进行充分的沟通,确保他们在具备相应能力之后再进行系统上线,确保项目的顺利进行。

4.技术能力:用户体验与成本平衡

在系统功能方面,有时我们也需时进行平衡。比较常见的情况是,客户可能会因为业务问题,如针对某个不常出现的场景,提出修改系统的需求。即使这些场景可能一年只会出现一两次,他们仍希望我们能调整系统以解决这些问题。

有时候,用户甚至会因为自身的操作错误要求我们增强系统的防错功能。面对这些情况,我们必须妥善管控需求,明确哪些需求是我们能做的,哪些是不能做的。我们需要找到一个平衡点,既要满足客户的实际需要,也要确保系统的稳定性和效率。

5.数据质量:应用存在的意义

在制造业中有句话“质量就是生命”。对于我们的应用系统而言,数据质量则是应用存在的意义。试想一下,如果每天我们都在使用这个系统录入和处理数据,但最终却发现数据输出不准确,那么这个系统就失去了其应有的意义。它无法为我们提供有效的生产指导,也无法支持我们的决策制定。这样的系统只会浪费我们的时间和资源,最终很可能被弃用,这就是数据质量的重要性。
在这里插入图片描述

在我们实施过的一家物流工厂的项目中,我们也曾遇到过漏单、错单等问题。为了解决这些问题,我们采取了一些防错措施。例如,对于漏单的情况,我们会根据系统的实际情况进行数据比对,并在系统内部进行核验。一旦发现错误,我们会及时提醒用户进行数据调整,确保数据的准确性。

另外,针对漏录单或防止重复录单的问题,我们也会采取一些业务管理措施。例如,当某个单据处理完毕后,我们会在系统中进行标记,以确保项目的正常运行。

6.项目管理:管控风险的利器

无论是传统的开发方式还是我们的低代码开发,都要求有一个能够全面管控业务领域的负责人。这个人不一定必须是一把手,但至少应该是能够确保所有业务环节得到有效管理和控制的关键人物。
在这里插入图片描述

例如在人力资源系统中,应当由人力资源总监或人力部门的负责人来管控这个系统。同时,对于系统的使用和管理,应当保持应有的重视和仪式感,确保所有相关人员都清楚其重要性和操作流程。

当我们的技术人员在系统实施过程中付出大量努力和贡献时,我们必须给予充分的认可。在项目实施期间,我们常常与技术人员沟通,强调他们是项目中贡献最大的力量,并时常提及他们的付出。这样做不仅能让他们感到心理上的满足和舒适,还能激发他们的工作积极性,从而更有效地执行具体工作任务,推动项目的顺利进行。

五、总结

最后让我们回顾一下关键要点。对于不同复杂程度的应用,我们需要采取不同的管理策略。在确保项目成功的关键要素中,我们要着重管控目标和范围,严谨控制角色分配、流程执行以及数据管理。目标范围的设定应合理,避免设定过于宽泛或难以达成的目标。

我们提倡分阶段实施项目,业务流程的规划和优化应由管理专家主导,确保流程的一致性和有效性。在角色分配上,我们要确保用户操作者具备完成任务所需的素质和能力。

在系统功能方面,我们需要找到平衡点,既要满足用户需求,也要考虑系统的稳定性和效率。数字质量是至关重要的,我们必须保证数据的准确性,一旦出现错误,要及时发现并解决问题。

最后,我们要按照标准的项目管理方法进行项目管理,以确保项目的顺利进行和最终的成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/270238.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

漏刻有时数据可视化Echarts组件开发(46)散点图颜色判断

series组件 series: [{name: Top 5,type: scatter,coordinateSystem: bmap,data: convertData(data.sort(function (a, b) {return b.value - a.value;}).slice(0, 6)),symbolSize: 20,encode: {value: 2},showEffectOn: render,rippleEffect: {brushType: stroke},label: {fo…

数据仓库【2】:架构

数据仓库【2】:架构 1、架构图2、ETL流程2.1、ETL -- Extract-Transform-Load2.1.1、数据抽取(Extraction)2.1.2、数据转换(Transformation)2.1.3、数据加载( Loading ) 2.2、ETL工具2.2.1、结构…

麦肯锡产品经理问题解决流程终极指南

您是否想知道世界上最成功的产品经理如何始终如一地提供不仅满足而且超出预期的解决方案?秘密可能就在于世界上最负盛名的咨询公司之一麦肯锡公司所磨练的方法论。本文深入探讨了麦肯锡的问题解决流程,该流程专为希望提升水平的产品经理量身定制。 01. 麦…

基于Java开发的微信约拍小程序

一、系统架构 前端:vue | element-ui 后端:springboot | mybatis 环境:jdk8 | mysql8 | maven | mysql 二、代码及数据库 三、功能说明 01. 首页 02. 授权登录 03. 我的 04. 我的-编辑个人资料 05. 我的-我的联系方式 06. …

程序员必须掌握的排序算法:插入排序的原理与实现

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 插入排序八大排序之一是一种非常简单直观的排序算法,尽管插入排序在时间复杂度上并不…

vitis HLS中实现canny算法的IP核

一、前言 canny边缘检测主要用于提取图像的边缘,是最常用且有效的边缘检测算法。在AMD赛灵思提供的库函数中,使用xf::cv::Canny和xf::cv::EdgeTracing两个函数实现canny边缘提取。本文举例说明如何在vitis HLS 2023.1中实现canny算法。 二、xf::cv::Cann…

linux:下载、网络请求、端口

一:ping命令 可以通过ping命令,检查指定的网络服务器是否是可联通状态 语法: ping [-c num] ip或主机名 1、选项:-c,检查的次数,不使用-c选项,将无限次数持续检查 2、参数:ip或主机名,被检查的服务器的…

【知识点随笔分享 | 第九篇】常见的限流算法

目录 前言: 1.固定窗口限流: 缺点: 2.滑动窗口限流: 优点: 滴桶限流: 缺点: 令牌桶限流: 优点: 总结: 前言: 当今互联网时代,随着网络…

【Linux系统编程】【Google面试题改编】线程之间的同步与协调 Linux文件操作

编写程序,有四个线程1、2、3、4 线程1的功能就是输1,线程2的功能就是输出2,以此类推……现在有四个文件ABCD初始都为空 现要让四个文件呈如下格式: A: 1 22 333 4444 1 22 333 4444… B: 22 333 4444 1 22 333 4444 1… C: 333 4444 1 22 333 4444 1 2…

VMware安装linux系统一

1、创建虚拟机 1.1、创建新的虚拟机 1.2、进入安装向导 1.3、安装操作系统,选择稍后安装操作系统 1.4、选择Linux,版本选择CentOS64位 1.5、设置虚拟机名称和安装位置 1.6、设置磁盘大小 1.7、创建虚拟机 1.8、完成安装 2、配置虚拟机 2.1、选择编辑虚拟机 2.2、修…

【笔记】入门PCB设计(全30集带目录) 杜洋工作室 AD09 Altium Designer

入门PCB设计(全30集带目录) 杜洋工作室 AD09 p1 创建p2 原理图上增加元件1)加元件2)放导线3)自定义元件1. 自定义排针2.有引脚的元件 p3 完整原理图 p1 创建 step1.创建(PCB)工程,后缀.PrjPCB。…

算法导论复习(三)

这一次我们主要复习的是递归式求解 递归式求解主要有的是三种方法: 代换法递归树法主方法 我们进行处理的时候要 代换法 方法讲解 主要就是猜测答案的形式 我们只在乎 n 在无穷大的时候成立就行 关于答案的形式,我发现最后能够是 n log n 的形式的…

计算机网络简述

前言 计算机网路是一个很庞大的话题。在此我仅对其基础概述以及简单应用进行陈述。后续或有补充以形成完善的计算机网络知识体系。 一.计算机网络的定义 根据百度词条的描述,计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过…

微信小程序开发系列-03全局配置中的“window”和“tabBar”

本文继续学习下全局配置中的“window”和“tabBar”。 window 用于设置小程序的导航栏、标题、窗口颜色等。(吐槽一句,官网这里的属性描述真的让人看不懂,只有靠自己实际运行调试才能知道是什么意思。) 导航栏 设置导航栏背景色…

TCP协议工作原理及实战(一)

实战项目目标: ui搭建:clientconnect 客户端连接 clientdisconnect 客户端断开 socketreaddate 使用套接字传输数据 newconnection新的连接 获取本机的IP地址: 获取本机的ip地址可以参考前面的QT网络编程协议 将得到的ip地址放入combox中…

Flutter详解及案例代码

概念 Flutter是由Google开发的开源UI框架,旨在快速构建高质量的移动应用程序。与传统的移动应用开发方式不同,Flutter使用单一代码库构建应用程序,可以同时在iOS和Android上运行。 Flutter的核心是使用Dart语言编写的,并且具有自…

在killercoda中的一次apiserver异常追查思路

笔者: 最近在准备cks考试, 然后又发现了killercoda这个能够提供模拟考试环境的平台。它提供了很棒的引导,教你一步步追查问题,形成一整套追查思路,我觉得很不错,特此分享。 准备工作 首先还是需要养成配置…

亲测解决,nacos下线失败!

场景重现 当多个开发者共同投入一个项目的时候,通常会出现一个项目同时启动,调用接口调试工具共同测试的接口开发情况的情形;为了保证测试环境的稳定性,我们一般不通过页面进行调试,这时我们会采用在nacos服务中&…

Java Web Day07-08_Layui

1. Layui概念介绍 layui(谐音:类 UI) 是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,极易上手,拿来即用。其风格简约轻盈,而组件优雅丰盈&#x…

《C++避坑神器·二十四》简单搞懂json文件的读写之根据键值对读写Json

c11 json解析库nlohmann/json.hpp文件整个代码由一个头文件组成 json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便。 json.hpp库在文章末尾下载 读写主要有两种方式,第一种根据键值对读写&…