亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 自动化控制系统

自动化软件开发和加速创新

传统软件开发速度慢。这只是为了重新思考。

大约三年前,微软的萨蒂亚·纳德拉(Satya Nadella)著名地创造了“每家企业都将成为软件企业”。如今,价值 5000 亿美元的全球软件市场有望在 2030 年翻一番,达到 1 万亿美元。

摩根大通在最近提交的文件中记录有 40,000 名软件工程师(超过 Alphabet)。每个大型企业公司都在竞相聘请工程师,以超越竞争对手。最大的问题是传统软件开发速度慢、碎片化、浪费大。

例如,每周平均软件工程师将花费 4 小时等待测试完成,3.5 小时等待构建,以及 3 小时用于环境管理——超过四分之一的工作周实际上并没有创造任何价值。当您考虑到工程师通常是组织中薪水最高的人时,这显然是一个大问题。但是,情况正在发生变化。

领先的开发平台之一,CircleCI,打赌人工智能和自动化将成为加速软件创新和解放工程师从事重要工作的关键。去年,该公司推出了一系列自动化和机器学习增强功能,将工程师等待的时间减少了 50%。这是超过 300,000 名开发人员(包括 Facebook、Spotify、GoPro、InstaCart 和许多其他公司的开发人员)转向 CircleCI 以加快行动的众多原因之一。

领导该公司的是 Jim Rose,他曾六次创业,曾获得 Google Ventures、Foundation Capital 和 Marc Andreessen 的投资。自从四年多前加入 CircleCI 以来,Rose 的收入增长了 450% 以上,并将公司发展成为一个真正令人兴奋的实体。

有兴趣了解有关自动化软件开发和加速创新的更多信息,Information Age 就这个主题与 Rose 进行了交谈。

软件市场的现状如何?

目前,仍然有很多公司和个人在手动执行不同的流程。当您考虑数字化转型的过程时,实际上是在努力培养一个软件开发团队。

一种方法是尝试将软件从本地数据中心中取出,并将它们放入云原生环境中,您可以在其中即时访问计算。

第二个是软件,在传统上或在许多情况下,一直被视为主要业务的指导方针或附属品。现在,从银行到汽车制造商再到零售商,各式各样的企业都意识到软件是他们工作的核心。所以他们需要弄清楚他们拥有什么,他们必须整合他们的资产并将它们作为一个标准整合。

一旦公司能够即时访问计算并且他们拥有开发人员可以使用的结构,那么今天的中间通常是不同平台和流程的某种混搭。

在大多数情况下,您有很长的瀑布式软件发布流程,其中包含大量手动步骤,然后还有大量手动脚本。在某些情况下,对于更高级的商店,他们可能已经有了第一代自动化解决方案,但随着团队的加速,这些解决方案开始出现问题。

现在这就是我们要进入的领域并帮助公司导航。随着他们的软件团队正在加快速度,他们正在构建更多的软件,并且他们正在努力加快速度;为了既能对市场机会做出反应,又能对潜在的负面变化做出反应。企业只需要彻底重新考虑如何将所有这些部分组合在一起。

您所说的速度是否是软件开发的主要障碍?

随着市场的加速,公司和开发团队正在努力加快速度。他们试图弄清楚如何才能快速工作,以便抓住机会。

实现这一目标的唯一方法是真正自动化所有不一定需要人工干预的步骤,因为您可以在几秒钟内完成,而不是在几分钟、几小时和几天的过程中完成。

随着团队的加速发展,并且软件是您对客户的主要店面,您必须确保质量水平很高;例如,您必须确保它不会崩溃或没有安全漏洞。

因此,当您考虑敏捷时,它是关于尝试变得更加敏捷,无论是从质量角度还是从速度角度。

在美国,一切都与速度有关,但在速度更快、集成更小的块以及能够在更一致的基础上发布软件的过程中,你的软件本质上会变得更好。当您每周进行 5、8、15 次部署时,所有关于必须部署的担忧都会消失,在某些情况下,我们的客户每天需要部署 100 次。

部署不再是问题。

在质量方面,过去软件开发的一个大问题是,如果你每季度只发布一次,那么你很难确保你引入到应用程序中的所有更改都能真正协同工作。通常你会看到公司进行一次大爆炸式发布,然后在他们完成一次大爆炸式发布后,他们会在接下来的 60 到 90 天里尝试修复所有退化和损坏的东西。在这种方法中,您的软件周期会减慢,但应用程序本身的质量也会受到影响。

从敏捷的角度来看,这正是人们试图解决的问题。

组织如何改变以适应、支持和培养软件开发团队?

有几种不同的方法。

一是开发人员很难招聘,因此您要确保从开发角度花费的所有时间都致力于构建您的特殊软件,无论发生什么;如果您是一家银行,则构建一个出色的银行应用程序;如果您是电子商务应用程序,则构建一个非常出色的电子商务应用程序。我认为人们投资不足的一大领域是软件开发人员在历史上构建的东西。这就是他们所做的,他们构建软件。因此,从第三方应用的角度来看,开发周期投资不足。

例如,团队不应该自己构建测试自动化和持续交付基础设施之类的东西。你最好从专门研究该领域的其他人那里获得它,这样你就可以专注于你擅长的事情。这就像告诉某人他们需要制造一个咖啡机,然后给他们一堆铜管、一些焊料和一些阀门。你永远不会那样做。但从历史上看,发展一直是这样对待的。因此,从数据中心一直到规划工具,将正确的工具和平台部署到位非常关键。

我认为第二部分是,在传统的瀑布模型中,软件开发通常扮演着捕手的角色,因此应用程序在流程中更早地被定义,然后当开发团队得到它时,已经做出了许多决策这可能会或可能不会真正起作用,可能或不可行或容易做到。

有这种左移的概念,它试图在规划周期中进一步推动开发,以便开发团队的关注点或需求在应用程序的构建和交付中都得到考虑。然后,当您从操作的角度考虑它时,这意味着您确实必须考虑应用程序在生命周期的早期是如何操作的。例如,如果您尝试构建云原生应用程序,则必须以非常特殊的方式构建它们,这意味着您需要做出决定并且需要更早地参与该过程。

当团队采用更多的软件优先的敏捷流程时,您最终会遇到三角问题。你有那些拥有你为什么要构建东西的人、企业主和产品经理。您有技术架构师和软件开发人员真正谈论您如何构建它。然后你有操作员,负责实际运行它的操作员,弄清楚你在整个过程结束时实际运行的内容。所以每个人都需要参与。对于某些公司来说,这可能是一个艰难的过渡。

人工智能和自动化如何刺激和改进软件创新?

通过自动化,您可以自动执行既定的任务,也可以自学。例如,如果每次您尝试发布一个软件时,您都必须针对其他第三方支付系统进行第三方测试。过去,对于这些任务,您必须雇用一个质量保证团队,该团队基本上会尝试处理交易并手动完成所有工作,这非常慢。它也令人难以置信地充满了错误和复杂性。

这些是应该在测试套件中完全自动化的任务的完美示例——所有这些你知道你将一遍又一遍地做的事情,你应该自动化这些任务以使其具有确定性和可预测性。然后最终很快。

有机会完成那些重复性的任务,开发人员一遍又一遍地做这些事情的任何一分钟都是浪费时间,坦率地说,是浪费金钱。

因此,当您查看正在构建的 AI 和软件时,而不是考虑推动预测确定性软件,您正在做的是推动模型。该模型是一个预先设想的概念的沙盒,其中包含一些关于事物如何工作的预想概念,然后随着人们经历它,并且随着测试的运行,模型正在发生变化和发展,因为它正在更多地了解事物如何工作或不工作在职的。这给测试系统带来了巨大的压力。

当你想到一些人工智能失误时,当你遇到人工智能内置无意识偏见、人工智能疯狂运行并开始阻止人们使用某些应用程序或关闭某些应用程序的情况时,这些都是从具有挑战性的测试视角。

它变得越来越复杂,但它也变得越来越快,响应速度也越来越快。所以你只会看到人工智能和机器学习在软件开发中的应用会继续增加。但是,现在您需要准备好所有必要的框架,以便能够测试所有这些更改。


自动化控制系统

  1. 什么是汽车服务编写者以及他们做什么?
  2. 低成本检测机器人的设计与开发
  3. PM 开发和执行快速指南
  4. SABIC 和 Nottingham Spirk 合作加速创新发展
  5. 智能楼宇自动化与城市房地产开发的未来
  6. Seegrid 创建“Blue Labs”研发小组
  7. AMRC 推动技术和循环经济的创新
  8. ABB机器人:技术创新和机器人研发
  9. Bright Machines 推出 Microfactory 硬件和软件
  10. 库存管理软件:功能和优势
  11. 什么是维护主管,他们做什么?
  12. 3D 设计:弯管和设计软件