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