当前位置: 首页 > news >正文

互联网公司的完整开发流程是怎样的?

(一)前言

对于很多还没进入社会或者之前没有在互联网公司呆过的人来说,会很好奇互联网企业的开发流程是怎样的,正好借着我最近这段时间的经历写下这一篇介绍开发流程的文章。

(二)开发流程

对于有自研系统的企业,程序员往往是和产品经理在battle。整体的开发流程涉及到的人员角色有:项目经理、产品、设计、后端开发、前端开发、运维、测试。

2.1 需求调研

首先是需求调研阶段,这阶段由项目经理和产品经理全权负责,产品经理会针对老板或者客户提出的要求,进行需求调研,功能要不要做,要怎样做。最后整理出一套需求文档,和整个项目的项目经理。

2.2 产品文档产出

需求调研结束后,产品需要将调研到的需求整理成产品文档。

2.3 产品文档评审

这里是需要所有人员参与的第一个会议,产品会聚集所有项目人员进行产品文档评审,主要是介绍产品要做什么,要怎么做,每个页面要实现什么功能。在这个阶段往往是产品和开发人员争论最大的阶段。产品的思维有时会天马行空,想的很美好,但是在技术人员眼里实现极其不靠谱,或者无法实现。在这段battle过程中,有些需求会被砍,有些功能会做调整。

2.4 设计出设计稿

产品文档评审结束并二次修改完成后,设计会根据产品文档出具体的设计稿。

2.5 设计评审

这里是需要全项目人员聚集的第二个会议,设计会根据设计稿并结合产品文档介绍每一个功能点,这里如果和产品预期有差异,设计需要根据产品的想法进行调整。

2.6 技术方案产出

设计完成后开发人员需要根据产品以及设计稿去思考技术选型,最后给出一份比较完整的技术方案,这一步往往是在产品文档确定后和设计同步进行。这一步也是整个开发流程中技术人员最难的时候,对于核心内容需要对多种技术进行选型,对后端来说:数据库用什么?是否引入缓存?现有选型能否满足数据量和性能的需求?都需要考虑在内,接着要把表结构设计出来,接口设计,形成一份完整的技术方案文档。前端也同样需要给出实现方案。

2.7 技术方案评审

技术方案产出之后,接下来就是对技术方案进行评审,这一次参会的是技术人员,在这个阶段往往技术负责人会参与进来一起讨论技术的可行性以及稳定性。在技术方案评审中,前后端要针对接口达成一致,后续基本上以这一次定下的接口分别开发。技术方案评审后需要前后端分别给出开发的排期,没有问题后进入开发联调环节。

2.8 开发联调

接下来就是前后端分别开发,并在deadline前联调,并将联调完成后的项目发到测试环境中。

2.9 测试

测试人员会在test环境对系统进行测试,并将测试结果反馈给开发人员,开发人员针对测试提出的bug进行修复。测试需要对修改后的问题进行再次测试。

2.10 线上发布

待测试没有任何问题后,由运维人员协助开发将test环境上的系统版本发布到生产环境。

2.11 版本迭代

一般来讲如果没有重大bug,在一段时间内都不会动生产环境的系统,接下来的改动会按照版本进行迭代,这里刚好和第一步形成了一个闭环。

(三)总结

总体来讲,开发人员越多的公司往往整体的流程会越规范,对企业来说肯定是好事,但对个人来说也要看两面。流程越来越规范,能让你在开发方面的能力越来越强,但让你遇到问题解决问题的场景也就变少了,运维人员会帮你解决运维上的问题,产品会帮你对需求。如果你是在初创公司或者是面向客户的软件行业,往往是一个人一手抓,也能锻炼自己各方面的能力。

具体如何选择,看你自己对未来的规划如何。我是鱼仔,最近真的好忙,我们下期再见。

相关文章:

  • 如何在SpringBoot启动时执行初始化操作,两个简单接口就可以实现
  • BZOJ4584 : [Apio2016]赛艇
  • 查准考证网站卡了整整一个小时进不去,被抢票支配的恐惧又来了
  • 【C#公共帮助类】 ToolsHelper帮助类
  • 这次终于把Spring的监听器讲明白了
  • jquery ajax分页 js对象
  • 详解单例模式及其在Sping中的最优实践
  • Magento Shell
  • 深入了解ElasticSearch的Nested数据类型
  • Python3发送post请求,自动记住cookie
  • 基于SpringCloudGateway实现微服务网关
  • .NET框架
  • MongoDB快速上手,聊聊这款火了一阵又销声匿迹的非关系型数据库
  • 【2021总结】工作时间从865到995,这一年的变化真大
  • 十亿条数据需要每天计算怎么办?Spark快速入门
  • 【Leetcode】101. 对称二叉树
  • @jsonView过滤属性
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 5、React组件事件详解
  • Android Studio:GIT提交项目到远程仓库
  • CEF与代理
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • es的写入过程
  • laravel 用artisan创建自己的模板
  • Rancher-k8s加速安装文档
  • Selenium实战教程系列(二)---元素定位
  • Service Worker
  • SwizzleMethod 黑魔法
  • vagrant 添加本地 box 安装 laravel homestead
  • 测试开发系类之接口自动化测试
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 好的网址,关于.net 4.0 ,vs 2010
  • 理解在java “”i=i++;”所发生的事情
  • 算法系列——算法入门之递归分而治之思想的实现
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 仓管云——企业云erp功能有哪些?
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #if 1...#endif
  • #Java第九次作业--输入输出流和文件操作
  • (02)Hive SQL编译成MapReduce任务的过程
  • (3)STL算法之搜索
  • (NSDate) 时间 (time )比较
  • (笔试题)分解质因式
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (剑指Offer)面试题34:丑数
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (六)c52学习之旅-独立按键
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • .NET 8.0 中有哪些新的变化?
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net core Swagger 过滤部分Api
  • .NET Core引入性能分析引导优化