编程不用程序员!低代码是炒作还是趋势?(不用代码的编程软件)
(中国计算机世界出版服务公司出品)
销售广告很诱人:应用程序不过就是点几下而已。但是,当你购买低代码开发平台时,实际为自己的企业做了什么呢?
在交付期越来越紧、客户维护要求越来越高的环境下,低代码开发工具的承诺听起来很不错:只需点几下,非专业编程人员也能马上开发出一个简单的应用程序。
这是很多厂商的销售策略,他们抓住了“低代码”这个流行词。市场上充斥着大量的工具,这些工具宣称只需要很少的投入就可以处理所有工作。现在比以往任何时候都更有可能生产出高质量的软件——不需要成片的办公小隔间,也不需要众多吵来吵去“无所不知”的开发人员。
很容易做出承诺,但很难兑现。很多精明的首席信息官以前都听过类似的承诺,但经常会失败。计算机的历史基本上就是程序员添加更多层的代码来弥补前一层不足的历史。第一个软件编译器被认为是编写机器代码的低代码替代方案。其实,机器代码是管道之间重新建立连接的低代码替代方案。人们认为新工具就是以前版本的低代码增强版。
好消息是,站在较高的角度看,工具的发展是非常积极的。我们的确能以更少的工作去做更多的事情。不过,来自一线的消息往往更令人困惑。一个大的进步往往带来了管理责任。有时候,掌握一款工具并找到配置它的最佳方法,其工作量几乎和从头开发一样多。
对于考虑低代码选择的企业来说,理解并处理好对这方面的担忧是最大的挑战。它们虽然具有明显的优势,但是否值得为此付出几个月的代价来等待?
优点:
速度
低代码供应商心中只有一个目标:帮助所有人快速开发出新软件。只需点击几下,用户就能创建好带有表单的页面。把一些表单和视图串在一起,就得到了一个应用程序。点击、编译和测试循环通常都足够快,一些敏捷用户甚至可以在讨论应用程序的会议期间实时地开发应用程序。好消息是,这些工具通常都能如其所愿。如果你的需求与工具的交付能力非常契合,那就能在极短的时间内完成开发,甚至在真正的开发团队进行视频通话的时候就完成了开发。
缺点:
速度
请慢一些。工具速度快是件好事,但匆忙进行软件开发可能是错误的。随着编码变得越来越容易,真正的挑战是定义应用程序并想好它在客户生活中能发挥什么作用。
如果不能在几分钟内完成工作,那么过于注重速度会让人失望。开发团队可能在一段时间里已经做好了3个原型,但是期间他们忽略了10个概念上的障碍和几十个必须解决的哲学难题。简单的点击不利于战略思维。真正的挑战不是开发出你要的,而是首先要知道自己想要什么。
优点:
稳定
对企业来说很难维护定制软件。创建工具只是支持过程的开始,只要软件一直在为企业服务,那么这个过程就会持续下去。一般的修修补补就要比开发最初的版本付出更多的工作。
低代码工具把支持成本分摊到所有软件安装中。当出现了新版本的操作系统,或者国会通过了一些新的数据存储法规时,低代码工具供应商会帮助大家去应对。采用一个低代码平台不仅仅是“加入一个俱乐部,而是与一个王朝联姻”。这可能是一个小王朝,但每个人的利益都是一致的,与让自己的员工去管理相比,这样做更稳定。
缺点:
休戚与共
如果把支持交付给构建低代码平台的公司,虽然可以节省大量的资金和时间,但稳定性并不能保证。当然,一些管理良好的框架能带着所有人驶向未来,但并不是所有业务都能管理得很好。公司稍有事故都可能摧毁你的平台。也许首席执行官遇到了中年危机,想涉足游戏行业。也许首席财务官跳槽去了国税局。也许开发这个平台的天才宅男们去庙里追求自己的人生了。任何问题都可能破坏低代码工具的稳定性。你把自己的信心托付给另一家企业,而你唯一能控制的只是每年的合同续签过程。
优点:
激励
一个好的低代码平台不仅可以帮助IT部门,还有助于释放业务部门员工的创造力,这些员工有着远大的梦想,但没有足够的预算来资助真正的开发团队。现在,他们可以花几个小时的时间去尝试一个想法,而不用起草没完没了的规范文件和预算要求。
缺点:
限制
低代码的确很神奇,但一个非专业编码人员不可能因此而变成一名高级开发人员——即使这名非专业编码人员像麻省理工学院最好的本科生一样有编程天赋。用户仍然需要对计算机的工作原理以及怎样处理信息有一个基本的了解。举例来说,精通电子表格的人使用这些工具应该不会有什么问题,但是对于那些害怕在文字处理软件中改变文档边距的人,不可能在短时间内奇迹般地写出三款应用程序。这些工具可以处理很多繁琐的工作,但无法摆脱计算的基本哲学限制和当前的计算环境。
优点:
一致性
世界之所以能够运行得更好,是因为我们已经发展出一些标准的解决方案。所有汽车的油门和刹车踏板几乎都在相同的位置。冰箱中存放黄油的位置也往往相同。采用低代码解决方案大量开发应用程序的好处是,你很容易就能构建出一个广泛使用的用户界面小部件集合。你的代码将是相对标准的,甚至不用尝试,因为你的代码将使用与其他代码相同的工具。
缺点:
同质化
采用与竞争对手相同的方式开展工作,可能会让你更容易招到员工,但这也注定了你与普通大众没什么两样。有些软件包就是要引起人们的注意,让你的企业与众不同。如果工作起来和其他人一样,你就很难脱颖而出。
优点:
安全
低代码平台通常被设计用来处理最常见的挑战,例如安全和数据隐私。如果欧洲出现了一项法律,或是一些安全恶性事件攻击了亚洲公司,那么低代码开发人员很有可能已经解决了这类问题。这就是使用共享框架的最大优势。他们已经处理了常见的挑战,所以你不必对此担心。
缺点:
社会化成本
低代码平台资源共享,这也带来了缺点。也许你的应用程序中充斥着人们急切希望能被广为传播的社交媒体帖子。然而,平台开发人员已经在其工具中设计了严格的隐私保护功能,以便保持良好的安全记录。你要为这些成本买单——甚至每次遇到限制时,你总得花点钱。
优点:
简单
低代码工具设计得更为简单。当你在为自己的业务担忧时,低代码平台开发人员的烦恼则是怎样构建一组易于采用和扩展的工具。那是他们的事。相信这类宣传,想象一切都会像白日梦一样简单——这是很危险的,但这比拿出编程书从头开始要简单得多。
缺点:
令人困惑
低代码会比从头开始写程序更让人困惑吗?是的! 当你突破了工具的限制,并开始遇到小问题、错误或者不一致时,就会发生这种情况。这是很自然的,所有的软件都有这些问题。不同的是,低代码工具从不打算公开这些方面。这好有一比,就好像他们卖的是一辆引擎盖焊接死的汽车。数据结构和算法是不透明的,所以你在这方面也不用去费尽心思。但是,如果突然有什么东西不工作了,唯一能发现问题的方法是挖掘数据结构,那么,这就会让人感到困惑。你无需去考虑这些细节——有时这会比你从一开始就自己努力工作更让人感到困惑。
优点:
与他人融洽相处
从根本上说,决策是一种哲学。一些企业鼓励建立值得信赖的合作伙伴网络,这些合作伙伴贡献了经验和稳定性。他们认为,这类企业并不是孤军奋战,而是作为网络的一员一起蓬勃发展。采用低代码工具包为可信网络增加了另一种连接。
缺点:
依赖性
相反的方法是发展内部专业技能,因为这种很深的知识能带来回报。他们知道,低编码可能会带来三、四杯浓咖啡那样的刺激,但最后每个人都有点晕头晕脑,搞不清发生了什么。只有由专业团队编写的可靠、结构良好的代码才能产生有长期价值的东西,这就是首席信息官聘请优秀团队的原因。
低代码的实情
一些精明的IT经理会针对不同的工作做出不同的选择。偶尔的探究、内部测试之前的原型和偶尔运行的后端进程都是低代码工具集的不错选择。开发团队很快就可以把事情搞得很好,即使不顺利甚至失败,也不会损失什么。
但是,如果代码要维持公司的核心工作流程,并直接影响利润,那么你就不太可能指望“某个勇敢的实习生去摆弄一个花哨的电子表格”。你应该加大人才投入,只有人才才能创造出实际的价值。