建一个商城网站需要多久/seo短视频网页入口引流免费
内容来自演讲:韦有炬 | 柳州知行远企业管理咨询有限公司 | 总经理
摘要
本文探讨了在全民开发时代如何使用低代码实施复杂应用并降低上线风险。文章分析了复杂系统实施失败的风险,包括项目规划不周、人员变动、企业基础管理不足等,并对比了低代码和传统套装软件的优劣势。低代码开发具有透明度高和快速调整的优势,但可能不适合大型企业核心业务。
为了确保应用成功实施,文章提出了几个关键要素:明确目标范围、管理业务流程、确定角色和资源、设计执行流程和技术支持。并讨论了角色职责、技术能力、数据质量和项目管理的重要性。数据质量是应用存在的基础,项目管理是风险管理的关键。无论是传统开发还是低代码开发,都需要有能全面管控业务领域的负责人。
一、引言
大家可能已经对这张2021年由Gartner发布的图表有所了解,它表达的思想是,在全民开发时代,针对不同复杂程度的应用,我们需要采取不同的安全管控框架。
在这个图表中,绿色区域代表的是较为简单的应用,主要涉及数据增删查改和工作流等基本功能,这类应用通常面向个人或小团队使用。在这种情况下,普通的业务人员完全可以自行进行开发,无须专业开发人员介入。第二种情况是针对流程复杂度较高的应用,这类应用已经实现了自动化管理,并且通常面向部门级别,例如人力资源管理系统。在这样的情况下,可能需要IT人员进行协助。
红色区域则代表更复杂的场景,此时的应用已经需要与其他业务系统建立接口,而且跨部门使用,这已经是一个企业级的应用,这种情况下,必须由专业人员参与并实施管控。
最后是黑色区域,代表的是极为复杂的场景。这种复杂程度已经超出了小型团队所能处理的范围,需要一个专门的团队进行协作解决。因此,必须将应用开发的权力完全交给专业的人员。这些专业人员包括熟悉业务的业务专家以及在IT领域掌握应用架构和代码编写能力的专业技术人员。
今天,我们的主题是探讨低代码实施复杂应用的实践方法。我们的主要目标是解决如何让非专业人员也能有效地掌控复杂应用的管理,并实现最低的上线风险。
二、复杂系统实施失败的风险
首先,我们要理解复杂系统上线实施过程中可能遇到的风险。其次,我们要对比低代码实施和传统套装软件二次开发的优劣势。此外,要了解确保应用实施成功需要掌握关键要素,并根据这些要素进行深入分析和分享。
无论是传统的开发方式还是低代码开发,一个复杂的应用系统实施成功都绝非易事。我们可能遇到的几个主要问题:
- 项目规划不周。在项目开始阶段,如果没有做好整体规划和明确范围目标,可能会导致项目混乱和目标不清晰。
- 人员变动与适应性问题。在项目实施过程中,可能会出现关键角色的离职情况。这不仅会影响到项目的进展,还可能导致在使用新系统后,部分员工觉得操作复杂,从而产生抵触情绪。在我们以往实施的项目中,就出现过某些岗位人员频繁更换,对项目稳定性造成影响。
- 企业基础管理不足:即使项目规划和资源调配没有问题,但如果企业的基础管理不到位,如数据标准化程度不高,管理理念未能达到系统实施的要求等,也可能阻碍项目成功。
三、低代码实施复杂应用的优劣势
对比传统开发和低代码开发,我们可以看到传统的套装软件通常具备一套完整的、内置的业务流程,流程相对成熟。然而,对于低代码开发而言,我们需要从零开始构建,就像建造一栋房子需要一砖一瓦地搭建起来一样,搭建的过程中,我们需要考虑建筑设计图纸、搭建方法以及结构问题等各个方面。这要求我们拥有专业的人员进行掌控,确保流程的成熟度。
在低代码开发过程中,可能会出现一些bug。当然,低代码的一个优势在于其快速调整的能力,能够迅速解决这些问题。
此外,由于应用的整个结构由开发团队自行掌控,他们对内部细节和可能存在的缺点都有深入的理解。在这种情况下,如果开发团队对某个缺点特别在意,他们可能会选择不使用像明道云这样的平台来处理。
低代码开发的一个显著优势是透明度高,开发团队对系统有深入的了解,没有供应商在初期承诺过多而在实施时出现各种限制的情况。
然而,对于大型企业的核心业务来说,低代码开发可能不太适合,因为这些业务通常需要更高的稳定性和定制化程度。对他们来说,系统的稳固性至关重要,甚至超越其他所有因素,就像我们平时购物时,如果有足够的预算,自然会选择质量稳定、不易出问题的产品。当然,对于一些非核心或边缘的应用,低代码方案可能是可行的。
对于中小型企业而言,他们可能更需要快速适应市场变化,根据自身的业务管理需求灵活调整业务流程。在这种情况下,低代码开发就显得尤为适合。它的优势在于能够根据实际需求,在稳定性与快速适应市场之间找到平衡。
四、项目实施成功的几个关键要素
在质量管理方法中,有一套理论称为过程方法。如果将整个管理事项视为一个过程,那它就会包括这几个维度:
- 明确事项的本质。我们需要理解这个事项的具体内容是什么,以及完成它能带来哪些收益。
- 确定输入和输出。分析该过程需要哪些输入,并明确其预期的输出结果。
- 识别涉及的角色和资源。确定在执行过程中需要哪些人员参与,需要具备哪些能力和资料。
- 设计执行流程和技术支持。规划具体执行的流程,并确保有适当的数据、技术来支持整个过程。
1.目标范围:避免需求无底洞
我们先扩展讲一下项目的目标和范围。在实施企业项目时,我们的业务顾问会进行深入的业务调研。在这个过程中,企业的各个部门通常展现出高度的配合。经过两天的协同工作,各部门提供了各种关键信息,并提出了许多关于数字化应用的设想,这些设想可能包括:销售、项目管理、技术开发、生产、采购、库存管理、物料控制以及财务管理等领域。
但是,后续我们对项目进行评估时,发现项目规模过大,难以控制。经过与企业的详细讨论,我们决定削减约三分之一的内容,重点关注那些我们有过实际案例并且能够相对掌控的元素。即使是这样,我们的实施顾问发现实际情况并不像最初设想的那么简单。尽管只实施了三分之二的功能需求,但在过程中还是遇到了各种意想不到的问题需要解决。最终,虽然缩小了项目范围,实际花费的时间成本仍然超过了最初的预期。
因此,在项目初期约定时,我们就需要明确界定需求的范围。对于超出初始需求的部分,我们可以将其列入后续讨论,并考虑在二期进行实施。首要任务是确保第一期的需求能够得到妥善处理,因为一旦项目上线,各部门可能会同时寻求支持,可能导致资源紧张,甚至可能出现因无法兼顾而导致系统停用的情况。
2.业务流程:管理思想达成共识
在业务流程方面,我们在2010年之前常常提到一个词——业务流程再造。这个概念强调的是,企业进行数字化实施的项目实际上就是在进行业务变革,因为当我们将原有的业务流程迁移到系统中时,这些流程很可能会发生变化。
对于一些套装软件,如SAP,它们已经有成熟的流程和管理理念。在实施这类软件时,会进行企业组织结构和具体业务模式的调研,然后进行相应的配置,形成适应企业业务流程的版本,并按照这个流程进行实施,这是比较常见的一种实施方式。
然而,我们在众多ERP项目实施的经验中发现,真正取得成功的概率可能只有约30%,甚至更低。其中有多种原因。一方面,可能是在项目上线过程中,企业的管理能力无法达到软件流程的要求,导致需要花费大量时间进行前期管理提升,而这往往是企业难以承受的。另一方面,也有可能在实施过程中发现某些业务模式并不适合企业,导致部分功能上线后又不得不进行调整甚至放弃。
我们的主要建议是在进入企业进行项目实施时,应避免过于激进,而是要根据企业的实际情况来制定计划,适度地向前推进半步或一步即可,不必过分追求完美。例如,虽然SAP中的业务流程被认为是正确的,但它适用于管理水平高的企业,如果当前企业还未能达到这一水平,我们可以选择采取更为实际和适中的方案。
对于低代码开发,可能在初期并没有成熟的业务流程可供参考。在这种情况下,我们需要依赖管理专家来梳理和制定业务流程,明确未来的业务运作方式。
3.角色职责:执行落地的关键
在角色职责方面,特别是在制造业中,例如工艺人员,他们在系统实施过程中可能会面临较大压力,因为他们负责基础数据的录入和处理,而错误往往最容易在这一环节发生。因此,我们需要与这些角色进行充分的沟通,确保他们在具备相应能力之后再进行系统上线,确保项目的顺利进行。
4.技术能力:用户体验与成本平衡
在系统功能方面,有时我们也需时进行平衡。比较常见的情况是,客户可能会因为业务问题,如针对某个不常出现的场景,提出修改系统的需求。即使这些场景可能一年只会出现一两次,他们仍希望我们能调整系统以解决这些问题。
有时候,用户甚至会因为自身的操作错误要求我们增强系统的防错功能。面对这些情况,我们必须妥善管控需求,明确哪些需求是我们能做的,哪些是不能做的。我们需要找到一个平衡点,既要满足客户的实际需要,也要确保系统的稳定性和效率。
5.数据质量:应用存在的意义
在制造业中有句话“质量就是生命”。对于我们的应用系统而言,数据质量则是应用存在的意义。试想一下,如果每天我们都在使用这个系统录入和处理数据,但最终却发现数据输出不准确,那么这个系统就失去了其应有的意义。它无法为我们提供有效的生产指导,也无法支持我们的决策制定。这样的系统只会浪费我们的时间和资源,最终很可能被弃用,这就是数据质量的重要性。
在我们实施过的一家物流工厂的项目中,我们也曾遇到过漏单、错单等问题。为了解决这些问题,我们采取了一些防错措施。例如,对于漏单的情况,我们会根据系统的实际情况进行数据比对,并在系统内部进行核验。一旦发现错误,我们会及时提醒用户进行数据调整,确保数据的准确性。
另外,针对漏录单或防止重复录单的问题,我们也会采取一些业务管理措施。例如,当某个单据处理完毕后,我们会在系统中进行标记,以确保项目的正常运行。
6.项目管理:管控风险的利器
无论是传统的开发方式还是我们的低代码开发,都要求有一个能够全面管控业务领域的负责人。这个人不一定必须是一把手,但至少应该是能够确保所有业务环节得到有效管理和控制的关键人物。
例如在人力资源系统中,应当由人力资源总监或人力部门的负责人来管控这个系统。同时,对于系统的使用和管理,应当保持应有的重视和仪式感,确保所有相关人员都清楚其重要性和操作流程。
当我们的技术人员在系统实施过程中付出大量努力和贡献时,我们必须给予充分的认可。在项目实施期间,我们常常与技术人员沟通,强调他们是项目中贡献最大的力量,并时常提及他们的付出。这样做不仅能让他们感到心理上的满足和舒适,还能激发他们的工作积极性,从而更有效地执行具体工作任务,推动项目的顺利进行。
五、总结
最后让我们回顾一下关键要点。对于不同复杂程度的应用,我们需要采取不同的管理策略。在确保项目成功的关键要素中,我们要着重管控目标和范围,严谨控制角色分配、流程执行以及数据管理。目标范围的设定应合理,避免设定过于宽泛或难以达成的目标。
我们提倡分阶段实施项目,业务流程的规划和优化应由管理专家主导,确保流程的一致性和有效性。在角色分配上,我们要确保用户操作者具备完成任务所需的素质和能力。
在系统功能方面,我们需要找到平衡点,既要满足用户需求,也要考虑系统的稳定性和效率。数字质量是至关重要的,我们必须保证数据的准确性,一旦出现错误,要及时发现并解决问题。
最后,我们要按照标准的项目管理方法进行项目管理,以确保项目的顺利进行和最终的成功。
相关文章:

低代码实施复杂应用的实践方法
内容来自演讲:韦有炬 | 柳州知行远企业管理咨询有限公司 | 总经理 摘要 本文探讨了在全民开发时代如何使用低代码实施复杂应用并降低上线风险。文章分析了复杂系统实施失败的风险,包括项目规划不周、人员变动、企业基础管理不足等,并对比了低…...

算法学习系列(十一):KMP算法
目录 引言一、算法概念二、题目描述三、思路讲解三、代码实现四、测试 引言 这个KMP算法就是怎么说呢,就是不管算法竞赛还是找工作笔试面试,都是非常爱问爱考的,其实也是因为这个算法比较难懂,其实就是很难,所以非常个…...

****Linux下Mysql的安装和配置
1、安装mysql 1.1、安装mysql sudo aptitude search mysql sudo apt-get install mysql-server mysql-client1.2、启动停止mysql: service mysql stop service mysql restart mysql -u debian-sys-maint -p mysql命令详细解释如下: 一、 启动方式 1、使用 service 启动…...

第十六节TypeScript 类
1、简介 TypeScript是面向对象的JavaScript。 类描述了所创建的对象共同的属性与方法。 2、类的定义 class class_name { // 类作用域 } 定义类的关键字是class,后面紧跟类名,类可以包含以下几个模块: 字段 – 字段是类里面声明的变量。字…...

RocketMQ的Docker镜像部署(以及Dashboard的部署、ACL配置)
RocketMQ的Docker镜像部署(以及Dashboard、ACL) 准备 包含RocketMQ部署(NameServer、Broker)、Dashboard、ACL拉取镜像 RocketMQ$ docker pull apache/rocketmq:5.1.4Dashboard$ docker pull apacherocketmq/rocketmq-dashboard…...

数据仓库【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、结构…...

JavaScript函数表达式
JavaScript函数表达式是一种将函数赋值给变量的方式。函数表达式可以以匿名形式或具名形式存在。 匿名函数表达式: var func function() {// 函数的逻辑 }在上面的例子中,将一个匿名函数赋值给变量func。 具名函数表达式: var func fun…...

LabVIEW在齿轮箱故障诊断中的应用
LabVIEW在齿轮箱故障诊断中的应用 在现代机械工业中,齿轮箱作为重要的传动设备,其性能稳定性对整体机械系统的运行至关重要。故障的及时诊断和处理不仅保障了设备的稳定运行,还减少了维护成本。利用LabVIEW强大数据处理和仿真能力࿰…...

图片转excel:“保留数字格式”在什么场景下该勾
保留数字格式是什么意思呢?顾名思义,就是将转出来的数字保留为数字格式,而不是文本格式。我们知道,OCR程序将图片上的文字识别为电脑可编辑的文字后,如果导入到excel不加处理,则单个数字过长的文字就会被ex…...

SpringMVC:整合 SSM 下篇
文章目录 SpringMVC - 05整合 SSM 下篇一、设计页面1. 首页:index.jsp2. 展示书页面:showBooks.jsp3. 增加书页面:addBook.jsp4. 修改书页面:updateBook.jsp5. 总结 二、控制层1. 查询全部书2. 增加书3. 修改书4. 删除书5. 搜索书…...

[2023-年度总结]凡是过往,皆为序章
原创/朱季谦 2023年12月初,傍晚,在深圳的小南山看了一场落日。 那晚我们坐在山顶的草地上,拍下了这张照片——仿佛在秋天的枝头上,结出一颗红透的夕阳。 这一天很快就会随着夜幕的降临,化作记忆的碎片,然…...

OpenCV之像素操作
我们首先了解一下什么是像素,计算机中是如何存储图像,以及opencv是如何表示图像的。 像素: 像素是指由图像的小方格即所谓的像素(pixel)组成的,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色…...

Transfer Learning(迁移学习)
1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都…...

NPM 的使用技巧:简化 JavaScript 开发和依赖管理
前言 NPM(Node Package Manager)是 JavaScript 生态系统中最流行的包管理工具之一。本文将介绍一些有用的 NPM 使用技巧,帮助开发者更好地利用 NPM 管理项目依赖、执行脚本、发布自己的包以及解决常见问题。 1. 初始化项目 使用 NPM 初始化…...

统计和绘图软件GraphPad Prism mac功能特点
GraphPad Prism mac是一款专业的统计和绘图软件,主要用于生物医学研究、实验设计和数据分析。 GraphPad Prism mac功能和特点 数据导入和整理:GraphPad Prism 可以导入各种数据格式,并提供直观的界面用于整理、编辑和管理数据。用户可以轻松…...

WWW 指南-万维网联盟(World Wide Web)
WWW - 万维网联盟 WWW通常称为网络。 web是一个世界各地的计算机网络。 电脑在Web上使用标准语言沟通。 万维网联盟(W3C)制定了Web标准 什么是WWW? WWW 代表 World Wide Web(万维网)万维网常常被称为 网络网络是世界各地的计算机网络网络中…...

Linux网络编程之TCP/IP实现高并发网络服务器设计指南
目录 引言: 多进程服务器 例程分享: 多线程服务器 例程分享: I/O多路复用服务器 select 例程分享: poll 例程分享: epoll 例程分享: 总结建议 引言: 随着互联网的迅猛发展ÿ…...

【SpringBoot实战】基于阿里云实现文件上传
【SpringBoot实战】基于阿里云实现文件上传 在实际项目开发中,不可避免地会使用到阿里云OSS进行文件存储。尽管阿里云有详细的开发文档,但本篇博客的目的是让我们能够用简明的代码快速实现这个功能。 引入依赖 <dependencies><!-- 阿里云oss…...

大数据技术学习笔记(十一)—— Flume
目录 1 Flume 概述1.1 Flume 定义1.2 Flume 基础架构 2 Flume 安装3 Flume 入门案例3.1 监控端口数据3.2 实时监控单个追加文件3.3 实时监控目录下多个新文件3.4 实时监控目录下的多个追加文件 4 Flume 进阶4.1 Flume 事务4.2 Flume Agent 内部原理4.3 Flume 拓扑结构4.3.1 简单…...

电路设计时,继电器线圈、风扇电机绕组等感性负载必须有续流二极管。
续流二极管(也常被称为“自由轮流二极管”或“反向并联二极管”)在感性负载电路中的应用非常重要,尤其是在继电器线圈、风扇电机绕组等设备中。感性负载是指那些在其线圈中会产生感应电动势的负载,例如电动机、变压器和继电器等。当这些设备的电源被切断时,它们的线圈会因…...

Mongodb基础介绍与应用场景
NoSql 解决方案第二种 Mongodb MongoDB 是一款开源 高性能 无模式的文档型数据库 当然 它是NoSql数据库中的一种 是最像关系型数据库的 非关系型数据库 首先 最需要注意的是 无模式的文档型数据库 这个需要后面我们看到它的数据才能明白 其次是 最像关系型数据库的非关系型数据…...

mysql参数配置binlog
官网地址: MySQL :: MySQL Replication :: 2.6.4 Binary Logging Options and Variables 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. MySQL 复制 / ... / 二进制日志记录选项和变量 2.6.4 二进…...

pytorch常用的几个函数详解
文章目录 view基本用法自动计算维度保持原始数据不变 t函数功能语法返回值示例注意事项 permute() 函数基本概念permute() 函数的使用 unsqueeze() 函数基本概念unsqueeze() 函数的使用 squeeze() 函数基本概念squeeze() 函数的使用 transpose() 函数基本概念transpose() 函数的…...

Linux下安装Flume
1 下载Flume Welcome to Apache Flume — Apache Flume 下载1.9.0版本 2 上传服务器并解压安装 3 删除lib目录下的guava-11.0.2.jar (如同服务器安装了hadoop,则删除,如没有安装hadoop则保留这个文件,否则无法启动flume&#…...

20231225使用BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪抓取BLE广播数据
20231225使用BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪抓取BLE广播数据 2023/12/25 20:05 结论:硬件蓝牙分析仪 不一定比 手机端的APK的效果好! 亿佰特E104-2G4U04A需要3片【单通道】,电脑端的UI为全英文的。 BLE-AnalyzerPro WCH升级版B…...

.net6使用Sejil可视化日志
(关注博主后,在“粉丝专栏”,可免费阅读此文) 之前介绍了这篇.net 5使用LogDashboard_.net 5logdashboard rootpath-CSDN博客 这篇文章将会更加的简单,最终的效果都是可视化日志。 在程序非常庞大的时候&…...

mysql(51) : 大数据导出为insert
代码 import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Objects;public class 大数据导出为insert {public …...

MFC查找错误的方法
在visual studio2005上Debug总是会出现各种问题,比如指针错误,乱码等,无法正确查看变量的值,这时候可以使用AfxMessageBox()方法对数据进行弹窗输出,但AfxMessageBox()函数只支持CString数据输出,我们就需要…...

Jave EE 网络原理之网络层与数据链路层
文章目录 1. 网络层1.1 IP 协议1.1.1 协议头格式1.1.2 地址管理1.1.2.1 认识 IP 地址 1.1.3 路由选择 2. 数据链路层2.1 认识以太网2.1.1 以太网帧格式2.1.2 DNS 应用层协议 1. 网络层 网络层要做的事情,主要是两个方面 地址管理 (制定一系列的规则&am…...

ElasticSearch 使用映射定义索引结构
动态映射 dynamic 可选值解释true默认值,启用动态映射,新增的字段会添加到映射中runtime查询时动态添加到映射中false禁用动态映射,忽略未知字段strict发现未知字段,抛出异常 显示映射 创建映射 PUT user {"mappings&qu…...