成为一个“现代软件公司”这意味着什么?这是否意味着您是一个云本机制初创公司在Web上构建Slickest UIS?这是否意味着你有一个很酷的徽标和一个在最常见的边缘框架中工作的热射击开发团队?

成为一个现代的软件公司比这一切都要复杂一点。毕竟,没有一家公司使用所有最酷的玩具,技术采用的程度也有很大的不同,从PoC测试到完整的生产实现。因此,可能——只是可能——成为一个现代软件公司实际上是一个多方面的混合体,包含了组织如何创建、发布和维护软件的许多因素。

科技+文化=现代?

它不仅仅是关于技术。如果现代软件公司代表了技术和文化的特定组合,该怎么办?当然,技术是一个巨大的东西使软件操作现代。现代化的公司经常生活在云端运行容器,使用sorchestration,并采用各种有趣的架构模式,来自microservices基于队列的负载调平无服务器

但文化方面就像至关重要。真正的现代软件公司雇用了这些最佳实践基因金的DevOps手册和谷歌的网站可靠性工程从开发团队拥有他们创建的代码到软件更新的持续集成/持续部署。那么,我们将现代软件公司定义为使用新技术和文化更快地交付客户价值的领导者如何?

为什么“现代”问题

成为一家现代软件公司不仅仅是一个语义问题。现代软件公司展示了快速开发和演进以跟上客户期望和需求的更大能力。这在当下和未来都是正确的。

例如,在高峰期期间有效处理电子商务流量,需要动态可扩展的前端和后端资源。同样,将最大数量的有限资源与游戏更改的创新代替劳动作品意味着投资模具和自动化,以消除计算机更适合做的重复工作,并保持尽可能有效和可预测地运行的东西。

所以,为什么不每个人都只是这样做?为什么不所有公司采用最新的工具和过程,努力成为一个现代化的软件公司?事实证明,改变真的很难。

变得现代并不容易

例如,在20世纪90年代,瀑布式开发是执行项目的正常方式:许多人花了几个月的时间定义100页的功能需求文档并创建设计。

不幸的是,工程师没有与人们交谈,创造所有前期要求的人,而不是他们做实际的客户。毫不奇怪,在瀑布的尽头,团队经常被发现失败 - 项目超过预算,迟到或更糟糕的是,工程师发现他们已经建造了产品和服务客户​​甚至没有想要或使用。亚博最新版直播这非常可怕。

作为回应,2001年,一组工程师聚集在一起写下敏捷宣言。(有趣的事实:新遗物自己沃德尼尼岛在房间里。)他们试图解决我们在构建软件时遇到的一些最糟糕的问题。尽管需要做出艰难的改变,但到2010年,大多数软件公司都是敏捷软件公司——这是当时现代软件公司的定义——许多没有变成敏捷的公司已经不复存在了。

今天,随着现代软件公司的概念继续发展,我们需要新的方法来衡量公司在现代软件开发道路上的落差。

“现代性”是一种频谱

不幸的是,没有单一指标可以测量软件公司的“现代”如何。例如,这不是大小或年龄的问题。事实上,今天的现代软件公司的范围从全新的创业公司到建立的企业。它们采用各种尖端技术,采用广泛的文化最佳实践。同样重要的是,许多这些特征往往不是二进制的,而是沿着传统的频谱落在另一方的遗产上。

例如,一个问题可能是公司的大部分基础设施位于何处:在云中还是在私人数据中心?如果答案倾向于云,我们认为它们更现代。如果答案是完全在私有数据中心中,则往往会使它们更接近遗留状态。

那么,确定特定组织在“现代软件公司”频谱上的位置是什么?以下图表提供了一些示例:

遗产 现代
私有数据中心 公共/私有,原生云
手动,不经常部署 CI / CD(至少每天)
全面生产部署 金丝雀/蓝绿色部署
单片应用 Microservices架构
物理服务器 虚拟机
虚拟机 容器
容器 无服务器功能
手动容器部署 容器编排
仅为ops监控 可观测性团队
Dev和Ops在筒仓里 DevOps和嵌入式SRE
手动旋转旋转服务器 动态自动播放
通过Twitter投诉进行性能监控 内部SLA.
仅跟踪内部指标 专注于数字客户体验
临时监测 无处不在的仪器
开箱监控 自定义工具
消防 减少辛劳的投资
反应事件回收 运行游戏的日子
没有监控解决方案 APM,基础设施,移动,浏览器和合成监控

请注意,使用VM和容器的一些实践,例如 - 落在各种轴的两端,具体取决于它们的比较。这实际上是有意义的,作为拥抱容器的组织将被考虑更多的比依赖于虚拟机的更现代,但是比公司进入无服务器时代更现代。

显然,没有一个“现代软件评分”这样的东西。然而,一个组织越是拥抱关键技术和文化最佳实践,它就越现代化。同样重要的是,现代软件组织的概念是动态的,随着曾经尖端的实践成为主流和全新技术的出现而不断变化。

尽管如此,我们希望在这里列出的因素可以帮助您将组织放在现代软件频谱上,并建议甚至更现代化的路径。如果您希望快速移动的信心,并保持在令人信服的技术变革步伐之外 - 更不用说您的竞争对手 - 成为现代软件公司不再可选。

Tori Wieldt,Lee Atchison和Clay Smith促成了这篇文章中的想法。

Victor在进入项目管理和领导岗位之前,花了14年的时间为各种组织编写软件,在那里他可以与最终用户和客户更紧密地合作。他在企业软件开发、实施咨询和售后支持方面的经验帮助他理解运行复杂系统所面临的挑战。在New Relic, Victor是负责分布式跟踪的产品经理,这一功能可以帮助客户理解分布式系统并对其进行故障排除。Victor生活和工作在俄勒冈州的波特兰市,他喜欢骑自行车、徒步旅行、踢足球、打篮球,以及和家人一起在太平洋西北部探险。查看贴子

有兴趣为New Relic博客写作吗?亚搏体育登入网送我们一个球场!!