商业软件就像时尚一样:等得足够久,你的旧牛仔裤就会重新流行起来。这正是当今IT战略中正在发生的事情:在IT行业依赖商业供应商的现成软件包二十年后,早期代码时代高度定制化、自己动手的工艺精神正在卷土重来。
这种向定制化软件的转变标志着一个重大变革,从主导行业一代人的熟悉的通用CRM和ERP系统发生根本性改变。
为什么会转向定制化软件?
企业希望获得适合自己业务并能提供竞争优势的一流软件。
当企业订阅通用供应商平台时,成千上万的其他企业(包括他们的直接竞争对手)也在使用同样的平台。这没有任何独特性,企业很难让自己的工作流程适应软件,而实际上应该反过来才对。此外,企业几乎无法控制通用软件供应商何时会提供他们需要的增强功能——如果真的会提供的话。
供应商锁定是另一个担忧。如果你的商业模式发生巨大变化,你需要软件做一些根本不同的事情,会发生什么?定制化软件可以被修改以实现最佳性能和企业特定功能。供应商软件包通常无法做到这一点。简而言之,如果企业能够控制自己的软件命运,他们就能更好地应对业务变化。
总的来说,这些优势降低了风险——它们让IT部门摆脱了依赖外部供应商来开发企业现在需要的新增强功能的困境。
企业如何执行定制化软件开发?
定制化软件的最大讽刺在于,其开发方法与传统的瀑布式应用开发高度相似:
瀑布式元素:与瀑布式方法一样,定制化软件包括正式的应用需求定义和分析阶段。定制化应用也要经过严格的代码管理和版本控制、质量保证测试以及性能和安全测试。
敏捷开发:同时,定制化软件融合了敏捷应用开发的元素。像敏捷开发一样,它将应用程序"分解"为更小的软件"冲刺",IT部门和用户协作并持续修订。
DevOps和自动化:定制化软件还充分利用了新的DevOps和自动化工具。
定制化软件实践案例
定制化开发的历史可以追溯到50多年前,当时企业开发定制软件来体现他们独特的"秘密武器"——那些在各自行业中给他们带来竞争优势的运营和战略创新。这些现在看来古老的算法,其中许多用COBOL、汇编语言和Fortran编写,至今仍在一些企业软件的深层运行着。
现在不同的是,新一代定制化软件开发能够产生当今的竞争"秘密武器"。
这些成功案例鼓励更多企业开发自己的软件,而不是部署其他人都在使用的通用解决方案。
新定制化软件的混合方法
开发定制化软件并不是完全退回到旧的定制软件开发世界。相反,它代表了一种战略演进,将传统瀑布式开发的元素与敏捷方法的迭代灵活性相结合,并得到容器化、工作流自动化和AI等现代工具和方法的支持。
定制化软件非常适合IT团队,这些团队通常包括来自瀑布式和敏捷开发世界的开发人员。由于大多数IT部门已经在这两个框架中运作,因此可以轻松促进向定制化软件方法的适应。
当然,也存在挑战,特别是选择正确软件和工具堆栈的复杂性。IT团队可能还必须承担定制API开发的责任,远离许多通用应用程序提供的"即插即用"集成。然而,定制化软件的长期优势是显著的:它消除了供应商锁定,让企业能够控制自己的业务软件,这样下一个战略"秘密武器"就可以按照他们自己的条件构建。
Q&A
Q1:为什么企业要从通用软件转向定制化软件?
A:企业希望获得适合自己业务并能提供竞争优势的一流软件。通用软件缺乏独特性,成千上万的竞争对手都在使用相同平台,企业难以让工作流程适应软件,且几乎无法控制供应商的功能更新时间。定制化软件可以避免供应商锁定,让企业更好地应对业务变化。
Q2:定制化软件开发采用什么方法?
A:定制化软件开发采用混合方法,结合了瀑布式开发的正式需求定义、严格代码管理和测试,以及敏捷开发的迭代灵活性,将应用分解为小的"冲刺"进行协作开发。同时还充分利用DevOps和自动化工具等现代技术。
Q3:定制化软件开发面临哪些挑战?
A:主要挑战包括选择正确软件和工具堆栈的复杂性,IT团队可能需要承担定制API开发责任,远离通用应用的"即插即用"集成。不过长期优势显著:消除供应商锁定,让企业控制自己的业务软件,按自己的条件构建竞争优势。