DH3G游戏资讯网

卷起来了! 软件开发正在越来越快……

发表于:2024-04-27 作者:创始人
编辑最后更新 2024年04月27日,之前, 小编在《从瀑布式到 DevOps, 开发流程经历了什么?》一文中, 梳理了软件开发流程的大致演变过程。其实, 在早期软件开发还是"小作坊"作业的时候, 没有形成所谓的开发流程方法论, 开发特别

之前, 小编在《从瀑布式到 DevOps, 开发流程经历了什么?》一文中, 梳理了软件开发流程的大致演变过程。

其实, 在早期软件开发还是"小作坊"作业的时候, 没有形成所谓的开发流程方法论, 开发特别倚重个人能力, 大多都杂乱无章, 所以效率也不高。

20 世纪 70 年代, 从瀑布式开发开始, 开发流程有了一套自己的方法论。一路发展演进, 先后涌现了敏捷和 DevOps 等新兴理念。可以看出的是, 软件开发规模越来越大, 要求的速度却越来越快。

01 开发流程正在"提效"路上一去不回头

上世纪 50 年代, 一种项目管理三角 (也称的三重约束、铁三角或项目三角) 的模型开始被人们广泛使用。

三角模型被用来约束项目的发展过程, 它认为:

质量工作是由该项目的预算、时间和功能来限制;

项目经理可以约束之间的平衡;

一个约束的变化需要其他约束的变化来补偿, 否则质量将受到影响。

例如, 可以通过增加预算或缩小范围来更快地完成项目。同样, 增加范围可能需要相应增加预算和进度。削减预算而不调整时间表或范围会导致质量下降。也就是说, 好、快、便宜 (范围、时间和成本), 只能选择两个。

在早期, 瀑布式开发与三角模型相关联, 由此表明: 软件开发可以由应用程序创建或构建所花费的时间长度来定义。

然而, 在当时, 创建、测试和部署软件通常需要很长时间, 因为在开发过程中没有制衡。结果是软件质量不佳, 存在缺陷和错误以及未满足的时间表。因此, 瀑布式开发的重点是软件项目的长期计划。

这种思维方式来自制造和工程, 其中线性过程是有意义的 -- 你先建墙, 再建屋顶。同样, 软件开发问题被视为可以通过计划解决的问题。从开始到结束, 开发过程都由路线图明确定义, 路线图将导致产品的最终交付。

但是, 瀑布式被认为是对软件开发有害的, 因为通常直到项目周期的最后阶段才能确定其价值, 并且在许多情况下项目都失败了。此外, 客户直到项目结束才能看到可运行的软件。

事情在敏捷时代发生了改变。

敏捷采取了一种不同的方法, 不再规划整个项目, 承诺预计日期, 并对计划负责。而是假设并拥抱不确定性, 改变被认为是满足客户需求的一种方式。

它定义了以下 12 条原则:

(引用)

1.我们的首要任务是通过早期和持续交付有价值的软件来满足客户。

2.欢迎不断变化的需求, 即使是在开发后期。

3.敏捷流程利用变化来获得客户的竞争优势。

4.频繁地交付可工作的软件, 从几周到几个月不等, 优先考虑较短的时间范围。

5.业务人员和开发人员必须在整个项目中每天一起工作。

6.围绕积极的个人建立项目。

7.为他们提供所需的环境和支持, 并相信他们会完成工作。

8.向开发团队和在开发团队内部传达信息最有效的方法是面对面交谈。

9.工作软件是进度的主要衡量标准。

10.敏捷流程促进可持续发展。赞助商、开发者和用户应该能够无限期地保持恒定的步伐。

11、对卓越技术和良好设计的持续关注可提高敏捷性。

12、团队定期反思如何提高效率, 然后相应地调整和调整其行为。

详情可查看敏捷宣言网页:https://agilemanifesto.org/principles.html

从敏捷开始, 短时间和高效率成为开发理念中的一个重点。而 DevOps 则更进一步。

某种程度上,DevOps 是一种文化、一种心态、一种软件开发或基础架构的方式, 以及一种构建和部署软件和应用程序的方式。其中的精髓是: 开发和运维之间没有墙; 它们同时工作, 没有孤岛。

DevOps 正是基于精益和敏捷两个实践领域。虽然敏捷和 DevOps 有很多不同之处, 但它们都寻求解决复杂问题、提高质量并围绕软件设计进行创新。

与此同时,DevOps 加快了开发和运维人员之间的工作, 还减少了 Dev 和 Ops 之间的分工。这是因为 DevOps 要求持续部署、交付和集成。团队合作是一体的; 问题和故障由开发、运维和其他实体共同拥有, 例如质量保证 (QA)、测试、自动化等。

敏捷与 DevOps 的区别

总的来说, 无论是敏捷还是 DevOps, 都旨在帮助团队更快、更高效地工作, 更快地交付高质量产品和提高客户满意度。

02 天下武功唯快不破!

在敏捷时代, 一批轻量的软件工程方法和框架相继诞生, 它们共同的特点是, 相对传统软件工程, 都遵循演进和迭代的模型, 过程更加轻量灵活, 以 Scrum 和极限编程 (ExtremeProgramming) 为代表。

早期的敏捷专注的是研发交付阶段, 站在业务的角度, 它的目标是帮助产品和研发团队提升敏捷响应能力。但在 DevOps 时代,IT 不仅要保证产品的开发和交付, 系统部署和运行同样重要。在敏捷开发的理念之上, 又补上了运维的部分。

目前,DevOps 仍处于高速发展阶段。南京大学软件研发效能实验室发布的 DevOps・云原生 2021 年度中国调查报告》显示,2021 年国内企业的 DevOps 工具的普及程度较 2019 年有明显上升趋势。

因此, 为了达到更快更好的开发目标, 不断有新式的开发工具涌现出来。

一方面, 不同工具在各领域全面开花, 一起助推 DevOps 的落地。比如 JIRA、Trello 等敏捷开发工具,Maven、NPM、Gradle 等持续交付工具,Zabbix、Elastic、Grafana、Kafka、Ansible、Logstash、Prometheus 等自动运维工具等等。

另一方面, 一些集大成的工具也同时应用自动化、AI 等技术, 以更好地实现功能。其中, 飞算 SoFlu 全自动软件工程平台便是其中的一个代表。

飞算 SoFlu 是近年发布的新一代 JAVA 开发工具, 截至目前已在包括医疗、金融、制造、零售等在内的多个行业使用。

全自动平台可以通过降低准入门槛、人力成本和沟通成本, 来极大提升企业的开发效率。以工具为核心, 制订好管理流程, 利用科学的管理方法, 让程序员在操作工具时有规可循, 从而降低管理风险和沟通风险。

以某大型国有企业开发的"百万人使用级别的电商平台"项目为例。此前, 该企业组建数十人团队完成开发, 上线后却在功能性、稳定性、安全性等方面问题不断, 且无法在短期内修复。在使用飞算 SoFlu 全自动软件工程平台后, 该企业仅投入 6 位研发人员 45 天就高效完成开发、测试、联调、上线全流程任务。

具体来说, 单就 Excel 表格文件解析这个高频开发功能, 这在之前, 即使是一个经验丰富的程序员, 也至少需要花费半天时间。但是飞算能够将时间压缩到以分钟计算:

1.编程逻辑流程化, 十分钟完成开发, 完全不用敲代码, 拖拉拽即可完成后端开发。

2.丰富的组件支持, 涵盖数据库、redis、api、mongoDB、子流程组件等, 支持循环、条件判断、函数调用, 通过拖拉拽的方式以及参数配置实现等同编写复杂代码的业务逻辑。

3.函数齐全, 各种 API 函数应有尽有, 快速解决业务及功能上的各种需求。

2022-05-06 00:32:47
0