草庐IT

为什么数字化转型项目正在耗费企业的大量资金和精力以及如何避免

Mary Ann Richardson 2023-03-28 原文

IT决策者几乎一致认为,数字化转型是企业的当务之急,也是企业长期生存的必要条件。然而,大多数数字化转型项目已经失败、超出预算或落后于计划。本文探讨了企业实施数字化转型的主要障碍以及克服这些障碍的方法。

大规模的数字化转型项目是否已成为过去?根据低代码应用开发平台Toca公司对200名英国企业IT决策者进行的调查,大多数受访者(72%)给出的答案是肯定的。尽管几乎所有接受调查的受访者(94%)都认为加快数字化转型是企业的当务之急,但71%的受访者表示需要努力跟上严格的时间表,快速构建新的应用程序、连接系统和自动化流程。大多数受访者(79%)表示,他们正在努力加快完成数字化转型项目。

Toca公司首席执行官Mat Rule认为,以下三个因素给企业实现数字化转型带来了挑战:

  • 提高用户对新应用的期望。
  • 缩短项目时间表。
  • 预算限制
与此同时,企业除了成功实施数据字转型之外别无选择。60%以上IT决策者承认,为了不错失由新技术或改进的技术和服务提供的商业机会,有必要将数字化转型项目置于其他目标之上。

其次,59%的IT决策者都认为,数字化转型对于改善客户从购物到银行等各个方面的数字化旅程是必要的。客户希望他们能够在线与企业互动。

数字化转型项目的延迟成为阻碍

尽管人们一致认为数字化转型是企业保持竞争力的必要条件,但平均而言,企业只能通过数字化转型解决四分之一的问题。几乎所有的决策者都将创新的缓慢归因于加速数字项目所需的技术债务的增加。大多数IT团队都承受着来自市场和竞争对手的压力,快速开发和发布项目。这种对速度的需求迫使许多开发团队在承担技术债务或延迟软件发布之间进行权衡。

但是,不是为了满足客户日益增长的期望,而只是为了加快项目完成速度,往往导致项目延迟和成本超支。根据统计,每个数字化转型项目的投资超过300万英镑,平均每天超支20200英镑。技术债务越多,生产中出现的问题就越多,导致应用程序重新进入开发阶段,增加延迟,并阻碍IT团队开发新项目。

此外,至少一半的受访者表示,项目延迟对员工满意度、客户服务和生产力水平、用户体验和业务收入产生了负面影响。几乎所有的受访者(87%)都证实,在加快创新的同时减少技术债务是当务之急。IT专业人士应该注意,导致延迟和超支的不是债务,而是未能制定管理债务的计划。

成功实施数字化转型的主要障碍

制定减少技术债务的计划只是企业成功实现数字化转型的解决方案之一。Toca公司调查的受访者还列举了企业在数字化转型过程中必须克服的一些障碍:

(1)遗留系统和整合挑战

大多数(89%)的受访者表示,他们更愿意利用遗留系统来加速数字化转型,而不是重写和重新平台化,85%的受访者表示重写和重新平台化遗留应用将会减缓数字化转型和创新。41%的受访者表示,遗留系统很难集成,特别是在有限的预算和技能短缺的情况下。39%的受访者认为与传统应用的整合存在困难。

为了应对这些挑战,决策者应该避免收购数十项技术来实现业务数字化转型。与其相反,最好是投资于工具和系统,以简化员工的数字体验。另一种解决方案是低代码开发。低代码开发使企业能够在构建新的应用程序、连接系统和自动化流程时利用现有系统。

(2)缺乏开发人员

39%的受访者认为缺乏具备必要技能的开发人员。数字化转型要求开发人员具备技术能力,了解企业的业务挑战,并具备应对这些挑战的业务思维。

(3)预算限制

近一半(49%)的IT决策者认为,预算限制是企业成功实现数字化转型的最大障碍。大多数IT团队发现,他们被要求交付更多和更快的产品,而预算和资源却没有相应增加。为了获得必要的资金,决策者必须阐明所需的前期投资将如何带来长期和短期的业务收入增长。

(4)企业各部门之间缺乏协作

43%的决策者指出,数字化转型项目成功的一个重要障碍是企业各部门之间缺乏协作。员工是企业数字化转型计划背后的最终驱动力。因此,跨职能规划和分析对协作至关重要。无论是财务办公室、人力资源、销售和营销部门还是研发部门,都同样受到企业技术解决方案的影响。

为了跨越这一障碍,决策者必须向企业各部门清楚地传达他们的数字化转型愿景。一个可以提供不同观点的跨职能团队应该负责领导技术、业务流程和组织结构方面的员工体验战略。

(5)不要试图立刻改变一切

由于成本超支和延误,接受调查的IT决策者承认,选择大规模数字化转型项目并不能控制成本。决策者发现,最好将变更分解为较小的任务,以便企业能够更好地进行管理,以适应新的工作方式。正如Kissflow公司首席产品官Dinesh Varadharajan所总结的那样,数字化转型是一项企业范围内的活动,人员应该是第一位的。”

有关为什么数字化转型项目正在耗费企业的大量资金和精力以及如何避免的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  7. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  8. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  9. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  10. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

随机推荐