一个软件从零开始到最终交付

简介: 一个软件从零开始到最终交付

  一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护。

  最初,程序比较简单,工作量不大,程序员一个人可以完成所有阶段的工作。

  随着软件产业的日益发展壮大,软件的规模也在逐渐变得庞大。软件的复杂度不断攀升。一个人已经hold不住了,就开始出现了精细化分工。

  码农的队伍扩大,工种增加。除了软件开发工程师之外,又有了软件测试工程师,软件运维工程师。

  分工之后,传统的软件开发流程是这样的:

  软件开发人员花费数周和数月编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。所有的这三个阶段,即开发,测试,布署。

  早期所采用的软件交付模型,称之为“瀑布(Waterfall)模型”。

  瀑布模型,简而言之,就是等一个阶段所有工作完成之后,再进入下一个阶段。

  这种模型适合条件比较理想化(用户需求非常明确、开发时间非常充足)的项目。大家按部就班,轮流执行自己的职责即可。

  但是,项目不可能是单向运作的。客户也是有需求的。产品也是会有问题的,需要改进的。

  随着时间推移,用户对系统的需求不断增加,与此同时,用户给的时间周期却越来越少。在这个情况下,大家发现,笨重迟缓的瀑布式开发已经不合时宜了。

  于是,软件开发团队引入了一个新的概念,那就是大名鼎鼎的——“敏捷开发(Agile Development)”。

  敏捷开发在2000年左右开始被世人所关注,是一种能应对快速变化需求的软件开发能力。

目录
相关文章
|
Kubernetes 关系型数据库 容器
Kubernetes之路 3 - 解决服务依赖
在容器服务的客户群中,一个经常被问起的问题就是如何处理服务间依赖。本文介绍了常见的解决方法来实现服务的依赖检查,还进一步用示例展示了如何利用init container, liveness/readiness探针等技术实现服务健康检查,依赖检查等等功能。
12111 1
|
存储 SQL 缓存
带你全面了解MySQL性能调优、错误代码总结和全局参数配置
本文主要介绍当前MySQL性能优化+原理+实战,包括以下方面: MySQL遇到的的错误及解决方法 全局参数文件配置详解。
997 0
|
11月前
|
存储 Dubbo Java
分布式 RPC 底层原理详解,看这篇就够了!
本文详解分布式RPC的底层原理与系统设计,大厂面试高频,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式 RPC 底层原理详解,看这篇就够了!
|
存储 自然语言处理 机器人
ROS2教程06 ROS2行动
这篇文章是关于ROS2(Robot Operating System 2)行动(Action)通信机制的教程,包括行动的概念、特点、命令行工具的使用,以及如何编写行动的客户端和服务器代码,并介绍了如何测试行动通信。
407 4
ROS2教程06 ROS2行动
|
编解码 前端开发 vr&ar
从零开始的PICO教程(4)--- UI界面绘制与响应事件
这篇文章是PICO开发系列教程的第四部分,主要介绍了如何在PICO 4 VR环境中创建UI界面,包括Canvas和Panel的配置、UI元素的绘制、以及Button和Slider的事件响应绑定,并通过示例展示了数字增减和滑块功能的具体实现。
从零开始的PICO教程(4)--- UI界面绘制与响应事件
|
存储 安全 生物认证
身份验证的三种类型详解
【8月更文挑战第31天】
1653 1
|
编解码 机器人 C++
ROS2教程07 ROS2自定义消息接口
这篇文章是关于如何在ROS2(Robot Operating System 2)中创建和使用自定义消息类型的教程,包括消息类型的定义、特点、命令行工具的使用,以及如何编写和测试自定义消息类型接口的步骤。
671 0
ROS2教程07 ROS2自定义消息接口
|
人工智能 算法 C#
C语言与游戏开发
C语言与游戏开发