【青训营】软件开发流程

文章内容总结自:字节跳动青训营

软件开发流程

软件开发模型简介

image.png

传统瀑布模型

将流程视作为一条线:
完成需求分析后开发,开发完成后测试,测试完成后发布,发布完成后进行运维。这是最直观的一个模型,其流程是非常的严格的区分的。适用于银行、支付等对软件质量要求很高的领域,是以流程为本,理想化的模型。

这种流程的缺点是十分低效的

image.png

敏捷开发

为了提高开发的效率,敏捷开发的思想被提了出来,敏捷开发并不是一个具体的开发模型,但是敏捷开发主张:

  • 个体和互动高于流程和工具
  • 工作的软件高于详尽的文档
  • 客户合作高于合同谈判
  • 响应变化高于遵循计划

敏捷开发重视在变化中开发软件,敏捷开发以小团队快速迭代,团队成员之间合作更紧密,并且强调以人为本,而用户沟通,其中接触的最多的是scrum方法,有关于scrum方法可以参考以下这2篇文章

https://zhuanlan.zhihu.com/p/369842971

image.png
这是Scruum中的一次Sprint迭代的时间表,其中输入侧用于输入需求,消费侧用于消费需求,另外其中有一些关键会议:

  • 待办事项整理会议Backlong Grooming Meeting是产品负责人描述下一个迭代希望实现的用户故事,PM提出需求列表
  • 迭代计划会议(Sprint Planning Meeting)用于选择迭代的任务和估算工作量
  • 每日站会:昨天你做了什么,今天你将要做什么,有什么需要帮助的地方
  • 评审会:小组向产品负责人展示迭代工作成果
  • 反思会:在每次迭代后召开简短的反思会,总结哪些事情做得好,哪些做得不好

其中专有名词解释如下:

  • RD 研发
  • PM 产品经理
  • PRD 需求文档
  • UED 用户体验设计
  • QA 测试
  • Scrum1 敏捷团队1
  • P0 优先级为0
  • Backlog 规划列表

开发流程的拆解和介绍

需求阶段

需求阶段的准则:
不要浪费时间讨论不该存在的问题
一些需求一开始就是不合理,应该在最开始砍掉,以防止之后投入精力进行开发。

除了砍需求之外,还需要以用户思维,合理地增加需求,这时候需要最小化可行产品思想MVP

image.png

其实这种思想就是先实现部分可行的功能,或者让功能简单能跑,然后交由客户并且接受反馈,再逐步改进

除此之外还可以:
安排自己任务的时候可以按照四象限法切分任务

image.png
其中的百分比表示花费在该事情上的比例

开发阶段

云原生改变了开发阶段
在传统虚拟机开发中:

  • 物理主机中虚拟出多个虚拟机,每个虚拟机拥有自己的操作系统
  • 运维人员负责维护和交付虚拟机
  • 每个虚拟机中都要安装对应的相应以来环境

容器化后:

  • 容器是在操作系统中虚拟出来的,也就是一个操作系统中有多个容器
  • 通过cgroup, namespace和Union Mount等技术实现了容器之间的相互隔离,这样使得不同的容器里可以选择不同的运行环境,而不像传统虚拟机中需要交由运维负责
  • 应用和其他以来作为一个整体,打包成镜像交付

image.png

另外一个改变是将单体结构变成微服务结构。微服务架构各功能在不同的服务中,不同模块之间使用RPC通信,不同模块可以独立扩缩容,并且每个服务的代码仓库只需要由少部分人维护

如今开发环境也逐渐云原生化,Fass、PaaS等技术,让开发逐渐从本地IDE向线上转变

团队的分支策略
需要清晰了解团队的分支策略,什么时候提交,什么时候回滚等

另外还需要养成良好的代码规范,对待代码进行自测试,并且完善技术设计文档,好的接口文档能够更方便和前端沟通

测试阶段

image.png

错误修复得越早,其修复成本就越低,因此要在单元测试中尽量将缺陷修复

测试应该如何确定测试环境?
功能环境:

  • 需要一个能够模拟线上的环境进行开发和测试
  • 环境和环境之间能够隔离

集成环境:

  • 不同人开发的功能合并在一起测试,相互之间的影响可能出现缺陷

回归测试:

  • 确保新的功能不对老得功能出现影响
  • 回归测试一般会借助自动化测试脚本

发布阶段

蛮力发布

image.png

金丝雀发布

image.png

滚动发布

image.png

蓝绿发布

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值