首页 > 其他分享 >买产品25万,再开发500万!企业如何逃离定制开发陷阱?

买产品25万,再开发500万!企业如何逃离定制开发陷阱?

时间:2023-07-27 22:44:29浏览次数:43  
标签:25 逻辑 迭代 业务 开发 产品 软件 500

背景

我们于零几年购买了这款产品,产品仅花费25万。加上定制开发,第一次总共花费50万。随后,十几年间,经历多次改造和迭代,我们在这个系统上总计花费500万!因为早期企业财力有限,购买的产品是比较便宜的产品。其模块化和接口的丰富度都很有限,所以导致后期改造非常痛苦,花费非常大!

——这段吐槽来自于我最近的一位客户。

这个客户是中国传统行业的优秀代表,是中国办公家具行业头部企业。世界500强企业有35%是它们的客户,销售范围涵盖全球60%以上的国家和地区。

它最早从代工和贸易起家,后经过品牌化和数字化升级,发展到行业头部。能在十几年前就大力投入数字化建设,判断力和执行力都很非常不错!

但是,它面对的问题却如此常见,我如此熟悉。所以,我认为有必要写篇文章来帮助有同类问题的朋友。

定义问题

首先申明,我所说的不是一个企业的问题,而是一类企业的问题。

每个行业都有这样的企业,他在自己的细分领域凭借一定的竞争力,业务到达一个新阶段,但尚未到达行业头部。此时,订单量在迅速增加,未来前景很好,但面对突如其来的订单,各种管理问题接踵而至。它们需要信息系统来去提高自己的运营效率,或者说提供更先进的客户服务。但,这种信息化项目非常难,因为:

首先,因为自己的独特竞争力,它有自己的独特业务流程,所以一般的信息系统满足不了它。

其次,企业规模还没有很大,没有足够多的预算来自己从零到一打造一款信息系统。所以只能买市场上已有的产品。

最后,在买产品的时候,它面临两难选择:大公司的模块化产品 v.s. 小公司的定制化产品。

大公司的模块化产品,模块抽象得好,接口定义得好,能灵活地支持各种各样的业务场景。但是,缺点就是贵。不仅仅是买产品的价格贵,首次实施也贵。因为好的产品有个特点,就是”很抽象“,不做配置或二开没法直接使用。

小公司的定制化产品,价格便宜。并且一般小公司的产品,都是刚从某些特定的业务场景中提取出来的。运气好的话,能找到一款跟本企业的业务流程非常类似的产品。但是,缺点是大部分改造都是基于代码的改造,而不是基于接口的改造。所以,首次改造,可能因为改造需求的不多,所以很快。但是,如果你打算长期使用这个产品,你预见到这个产品将会在未来五到十年持续伴随着你的企业经营,那从长远来看,这种产品的改造成本就会变得异常巨大。

接下来,我们把这个问题的特点总结一下:

约束:

  1. 传统中小企业,初次预算不多。

  2. 业务流程特殊,需要定制和适配。

目标:

  1. 开发的系统满足当前业务需求。

  2. 开发的系统未来迭代成本低。

解决问题

这个问题可以分解成两个子问题:

  1. 第一个是在初次采购项目的选择和要求问题。

  2. 第二个是在采购之后长久的迭代开发问题。

首先,我们谈「初次采购项目的选择和要求」问题。

当我们在购买一个软件的时候,我们通常有两个选择:第一是购买本地部署软件,第二是购买 SaaS 软件 。

本地部署软件,国内大多数企业的选择。 当我们购买这类软件时,除了满足当前功能需求外,还需关注以下几个方面。必要时务必在合同中约定以下要求:

  1. 提供源码。要求乙方提供可编译运行的源码,以及配套的源码说明文档。说明文档需要对各个代码模块的功能和联通关系有清晰的说明,对关键业务逻辑和流程有清晰的说明。

  2. 开放接口。根据对未来业务发展的预测,来要求乙方提供必要的开放接口,以满足未来的二次开发需要。

  3. 提供数据库文档。数据是一个信息系统最核心的资产,所以需要乙方提供数据库中,每一个表每一个字段对应的业务含义或者技术含义。并且,当未来某一个时刻,你发现这个系统不值得改造时,这个系统的数据还有很好的利用价值。你很有可能需要提取这个系统的数据,或是制作报表,或是提供数据给其他业务系统。这个时候对于数据库的理解就变得非常非常重要!

SaaS 软件, 也是一个不错的选择。它们一般都有着良好的接口,比较一致的用户体验。他最重要的特点是价格低廉。当你不确定这个系统对应的业务未来前景,他是一个可中和风险的选择。因为如果发展的不好,你的损失也不是很大;如果发展得好, 需要更深度的定制,你可以灵活的用其他的系统去替代。

上面我们提到了对「初次购买项目的选择和要求」, 这为我们后面的「长久迭代开发」提供了一个良好的基础。

接下来,我们再谈「采购之后长久的迭代开发问题」的问题。

如果需要长久的迭代开发某个系统,那么我们选择合适的开发平台就变得异常重要。对于中小型传统企业来说,一般很难有大量的高水平的高代码工程师,所以我们选择的开发平台应该满足以下几个特点:

  1. 学习成本低。 学习成本低,这个特点就不用说了,因为我们要照顾到一些中低水平的开发工程师。最好能让刚毕业的工程师经过几个月的培训,就能开发出中等难度的软件。随着传统行业数字化进程愈演愈烈,传统行业对软件工程师的数量要求越来越大,所以不太可能在每一个传统企业都有足够多的高水平工程师。所以,各种低代码平台应运而生,很好地解决了上述困难,是一个不错的选择。

  2. 有高逻辑能力。上面提到了学习成本低这个特点,但是我们同时又不能放弃掉高逻辑这个特点。因为当我们在做二次开发和迭代的时候,我们要面对的是更加复杂的、且定制化的业务逻辑,这些业务逻辑需要有高逻辑的开发平台来完成。

  3. 业务友好。我们说「业务有好」指的是这个开发平台,写出的代码,让业务人员也能看懂。为什么这么说呢?我在之前的一篇文章《一部软件开发科幻爽片:从数字化到低代码到自动代码生成》中提到过数字化的最终阶段是业务和技术的融合。在这个最终阶段,一定要业务人员和技术人员说,同一套语言写同一套文字,只有这样才能真正的让 业务团队和技术团队无损沟通。同时,这种开发平台也将加速业务人团队和技术团队之间的人员流通。以上两者会带来巨大的符合业务发展的创新力 。

  4. 方便系统集成。企业软件的二次开发免不了与现有系统进行大量集成,包括接口的集成、数据库的集成等。因此,软件开发平台提供良好的系统集成体验是非常必要的。

在开发平台选择上,我认为 Mendix 是一个不错的选择。因为:

  1. 良好的学习体验。Mendix 提供了完善的学习路径和评级体系,并有丰富的培训资源,比如图文、视频、培训服务等。

  2. 有高逻辑能力。Mendix采用MVC(Model-View-Controller)三层逻辑的可视化表达,使得复杂的逻辑处理变得直观易懂。开发人员可以通过简单的拖拽和连接操作,实现复杂的业务逻辑,满足项目的高度定制化需求。

  3. 业务友好。Mendix注重业务人员参与,其可视化开发环境让业务人员能够完全理解应用的逻辑。这使得开发团队与业务部门之间的沟通更加顺畅,加快了开发周期,减少了开发与业务对接的难度。

  4. 系统集成方便。Mendix提供了丰富的现成Connector,这些Connector可以轻松集成常用的外部系统和服务,如ERP、CRM等。此外,它还提供了可视化接口对接功能,使得与其他应用系统的集成变得更加便捷和高效。

总结

感谢读完本文,本文核心观点如下:

  1. 传统中小企业在数字化转型过程中,常面临软件选型两难困境:大公司产品功能强大但昂贵,小公司产品便宜但后期迭代成本高。

  2. 为降低后期迭代成本,初次购买时应注意:源码、接口开放性、数据库文档完备性。同时也可考虑 SaaS 软件降低采购风险。

  3. 长期迭代开发要选择学习成本低、高逻辑能力、业务友好、易系统集成的开发平台。

  4. Mendix 具有良好的学习体验、高逻辑表达能力、业务团队参与、系统集成方便等特点,适合传统企业长期迭代使用。

  5. 整体来看,传统企业应在数字化转型中注意平衡初期采购与长期迭代,选择既适合当前阶段又考虑未来扩展的软件产品与开发平台,以降低整体成本。

关于作者

您好,朋友。我现就职于西门子工业软件,担任高级咨询顾问。成功领导 10 多个世界 500 强企业的数字化转型项目,跨越政府、零售、金融、汽车制造、生物医药等多个行业,创造巨大商业价值。

如有任何与「数字化转型」有关的问题,欢迎用以下方式与我交流:

  1. 添加我的个人微信「zjh1943」。添加时请注明姓名、行业、交流的问题。

  2. 关注我的微信公众号「知明所以」。

  3. 关注我的知乎专栏:https://www.zhihu.com/people/zhu-jin-heng

标签:25,逻辑,迭代,业务,开发,产品,软件,500
From: https://www.cnblogs.com/jhzhu/p/17586311.html

相关文章

  • 开发人员的技术写作
    HTML、CSS、JavaScript、Python、PHP、C++、Dart--有这么多的编程语言,你甚至可能完全精通其中的几种。但是,随着我们的目标是写出更多、更好的代码,我们用日常语言写作和交流的方式变得越来越重要......甚至可能被忽略了。我们编写和讨论代码的方式可以说与代码本身同样重要。尽管......
  • Revit二次开发之 Material 分析
    对于revit来说,任何Element都可以包含一个或者多个Material,其通过方法:publicICollection<ElementId>GetMaterialIds(boolreturnPaintMaterials)获取指定元素的材质集合,如果为true,则返回“绘制”工具指定给元素面的材质ID。如果为false,则返回通过材质的几何体或复合结......
  • Day06-25 接口
    接口普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程~接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能...”的思想。如果你是天使,则必须能飞;如果你是汽车,则必须能跑;如果......
  • Atcoder ABC259H Yet Another Path Counting
    首先可以想到有组合数的方法:令起点为\((x1,y1)\),终点为\((x2,y2)\),则路径方案数就为\(\binom{x2+y2-x1-y1}{x2-x1}\),这样设有\(k\)个相同颜色的点,时间复杂度就为\(O(k^2)\)。再考虑到还有\(\text{DP}\)方法:令\(f_{x,y}\)为走到\((x,y)\)的方案数,不限制......
  • ST官方基于米尔STM32MP135开发板培训课程(一)
    本文将以Myirtech的MYD-YF13X以及STM32MP135F-DK为例,讲解如何使用STM32CubeMX结合Developerpackage实现最小系统启动。    1.开发准备1.1Developer package准备a.Developerpackage下载:‍https://www.st.com/en/embedded-software/stm32mp1dev.html‍b.解压后进入......
  • Android开发笔记:屏幕适配
    这几天刚刚接触了新的项目,做一个android客户端。本周的工作是完成客户端的UI界面和功能实现,但是对于Android开发最头疼的部分,即是对于纷杂的屏幕做适配的工作现在来说是最棘手的!图像显示所需的概念:像素:一幅图片的显示就是由许多显示着不同颜色的小方格组成的,这样的小方格就被称......
  • 【杂谈】基于虚幻引擎合成大西瓜小游戏开发思路
    游戏玩法:不同的物体进行自由落体当两个相同的物体发生触碰事件的事件,结合在一起,两者结合,变成一个更大的物体,依次类推。开发思路:定义一个枚举来定义物体的属性,类似与一级、二级、三级、四级.......构建一个物理框架,使物体在里面自由落体,在框架上分的正中间,标记一个目标点,将目标点的......
  • 开源快速开发平台:做好数据管理,实现流程化办公!
    做好数据管理,可以提升企业的办公协作效率,实现数字化转型。开源快速开发平台是深受企业喜爱的低代码开发平台,拥有多项典型功能,是可以打造自主可控快速开发平台,实现一对一框架定制的软件平台。在快节奏的社会中,开源快速开发平台依托优势特点深得客户喜爱和支持。了解了开源快速开发......
  • Cache(十):面向对象基础 Cache(十一):面向对象开发
    常规概念都是一些基础概念,在学校学过很多遍了              事务 Cache面向对象的crud  cache110.40.52......
  • 科技爱好者周刊(第 259 期):如何免费使用 ChatGPT
    这里记录每周值得分享的科技内容,周五发布。([公告]下周端午节假期,周刊暂停一次。)本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系([email protected])。封面图广东韶关的云门山景区,有一个人工瀑布,高达168米。如果它的水源引自山泉,那倒还好,如果......