这是我参与「第三届青训营 -后端场」笔记创作活动的的第4篇笔记
为什么要有流程?
随着项目团队规模的上升,我们在协作开发某一个项目时就可能会出现问题所以这时候需要流程来约束。
传统的瀑布模型
瀑布模型(Waterfall) 是最简单的软件开发历史上第一个 SDLC 模型。在瀑布模型中,开发过程是线性的。任务和阶段按严格顺序一个接一个地完成。进度平稳地向下流动,就像瀑布上的水一样。
瀑布模型的主要缺点是不灵活。瀑布易于理解且易于管理。但是过早的延迟会拖延整个项目的时间表。由于一旦完成阶段,几乎没有修改的余地,因此只有进入维护阶段才能解决问题。如果需要灵活性,或者项目是长期的且正在进行的,则此模型不能很好地工作。
敏捷开发模型
敏捷(Agile) SDLC 模型是迭代和增量方法的组合,致力于通过早期交付工作软件来适应灵活的需求并满足用户和客户的需求。敏捷项目中的需求和解决方案可能会在开发过程中发展。
通过敏捷开发,该产品被分为小的增量构建,并以迭代方式交付。将所有任务划分为较小的时间范围,以便为每个版本准备工作功能。最终产品版本包含所有必需的功能。敏捷仍然是技术行业中使用最广泛的SDLC。
这些模型种瀑布模型最直观的体现了简单的流程。敏捷开发则跟适合小团队的快速迭代更新。
流程
需求阶段
需求阶段我们程序员要站在用户的角度取评估需求,不能再不必要的需求上浪费时间。首先我们可以给出一个简单模型给用户,再根据用户反馈的功能对这个简单模型进行升级迭代。
开发阶段
在开发阶段代码规范、自测和文档是非常重要的。
测试阶段
测试阶段一般需要三套环境:功能环境、集成环境和回归环境。 测试主要是测试代码缺陷,越早发现缺陷解决缺陷的代价越低。
发布阶段
发布阶段需要发布负责人按照计划执行发布,通知各个相关人员发布进展,观察各个服务器的发布状态,及时处理异常。
变更服务相关的RD。
运维阶段
运维就是再出现问题时候及时发现解决问题。
总结
团队的协作都离不开流程的约束否则会出现很多严重的问题,而对于这些流程我们开发人员应当熟悉。