互联网大厂项目研发流程

文章目录

  • 阶段一:
  • 阶段二:
  • 阶段三:
  • 阶段四:
  • 阶段五:
    • 开发人员:
    • 测试人员:
    • 设计师:
  • 阶段六:
  • 阶段七:
  • 总结:


本文章学习自:https://www.bilibili.com/video/BV1cf4y1x7HA

企业真实的研发流程,这个是半路转行的准程序员和在校大学生都比较关心的问题以及小型公司的程序员也会好奇大厂的流程是怎么样的。


如今互联网大厂的开发流程,这些流程虽然好,但也不是一蹴而就的,每个公司的体量不一样流程也不一样。
从最简单的流程来看一看这些环节是如何一步一步演进过来的:

请添加图片描述


阶段一:

请添加图片描述

许多客户只有一个简单的需求场景:比如:用户输入一些数据 根据公式给出分析建议 开发人员直接根据描述完成功能即可;

这套流程弊端很明显:那就是需求不明确,容易陷入到无限的扯皮中;

明确需求是软件开发的大树之根,这点没有做好,后面所作的一切都没有意义的。


阶段二:

请添加图片描述

初创的外包公司和个人接私活常实行这套流程,最后确认好的需求会写在合同中,一切按照合同中的需求项进行开发。
需求变更是开发人员最痛苦的事情,所以该环节会随着流程的完善而不断升级。

弊端:客户的需求一般是只有文字描述,在这种情况下,开发人员只是凭借自己想象进行编码,对需求的理解很容易产生偏差。


阶段三:

请添加图片描述

原型图设计:原型图就是产品的预览模型,用于展示产品的最终效果,可以有效的帮助开发人员理解需求。

​ 小型的外包公司和个人接私活常实行这套流程,外包公司往往有一个设计师进行原型图设计。个人接私活,很多客户也会拿出原型图,然后让开发人员进行实现。

弊端:代码编写完毕后就直接将项目交付了,项目的各个BUG都是在客户使用中发现的,这时候需要开发人员进行多次修改才能将项目完整交付,和客户的沟通成本是非常高的,这种形式的交付往往非常耽误时间。


阶段四:

请添加图片描述

​ 开发人员实现功能后交由专门的测试人员进行系统测试,测试完毕后由产品进行验收,验收无误才能进行交付上线

  • 外包公司:指没有自己产品的公司,主要承接项目进行开发,需求都是从客户那边过来的。
  • 产品公司:就是有自己的产品,会对自己的产品开发,运营,迭代,需求是业务部门和产品部门提出的。

这套流程麻雀虽小,五脏俱全,每项流程都有专门的人员负责:

  • PM:产品经理。负责需求提出、产品设计
  • UE:交互设计师。负责设计页面布局交互
  • UI:视觉设计师。负责产品的具体样式设计
  • RD:开发人员。负责功能实现
  • QA:测试人员。负责产品的质量检测
  • OP:运维人员。负责上线审批、维护产品所需要的硬件状态

各个人员各司其职,当前环节没有问题后才会推进到下一环节,这时候流程的流转和推进要进行工程化管理

弊端:很多环节在没有准备充足的情况下就开始实施了,质量得不到有效的保障,不如:确定需求和原型就进行编码开发,如果在编码过程中发现技术方案不合理,此时变更会浪费大量的时间


阶段五:

接下来的流程演进基本就是各个中大厂的流程了,每个环节各个公司的取舍不太一样

请添加图片描述

​产品需求评审:需求提出后,产品会拉上各个岗位的人进行产品需求评审,产品经理会将需求项写好,并且整理出低保真原型图、产品流程等,让大家能够对产品和需求有个概念,PRD在原型图上进行标注说明,大家根据原型图进行评审,争取弄清楚产品和需求的每个细节,并且提出自己的想法,各抒己见。

请添加图片描述

意见统一后,产品经理确定版本,然后各个岗位进行自己职责内的设计了。

开发人员:

请添加图片描述

​ 概要设计完成后,就要对细节方面进行完善了,这个细节就是指功能的实现思路,比如一个简单的登录功能,编码时就是看着图开发了,这一块设计得越详细编码时就越轻松,同时测试人员也要对测试进行设计和思考,不然会遗漏功能点。
请添加图片描述

测试人员:

​ 测试要进行测试用例的设计,测试用例可以帮助测试人员理清需求,为后续的测试提供可参考的依据,在测试过程中也可以反应测试的进度。

测试用例:是指需要测试的功能点

请添加图片描述

设计师:

​ 设计师也要进行交互设计和视觉设计,这个环节做出来的高保真原型图,基本就是产品的最终样貌。


阶段六:

请添加图片描述

​ 当开发人员、测试人员、设计师把自己的内容设计完毕后又会凑到一块进行评审,看看互相对功能理解是否一致,产品经理也会看一下大家对需求的理解程度,避免理解产生偏差,这个环节就是对细节进行完善,改动一般不会太大,该环节完成后就是开发人员进行功能的实现,前后端也会进行联调,联调完毕后开发人员会自行测试一番,再交由测试人员进行测试。

​ 弊端:再开发环节前做了充足的准备,但没有在开发环节后做充分的测试验收,产品上线后质量得不到保障。


阶段七:

请添加图片描述

​ 在开发完成后,大厂一般会做代码review,组长和组员会对你的代码进行审查,在业务和技术都会获

得很多建议和意见,对开发人员成长最大的环节

​ 开发人员提交测试申请,将代码交给测试人员发布到测试环境进行测试,因为测试的周期比较长,测

试环境没有问题后就可以将代码分支合并然后由测试人员发布到预发/沙箱环境。

沙箱环境:将系统接入真实的数据,但是系统只能内部访问,用户无法直接访问的,这个环节就是为

了保证上线前不出问题,所以模拟线上真实环境,看看系统能不能真的抗住真实数据,这一轮测试完成

后又可以将代码分支合并一次然后让产品经理验收。

总结:

​ 从需求提出到需求结束还是很不容易的,中途历经多个环节要和多个部门岗位协调各种问题和难点都要面对,每个公司会根据自己的文化和人员配置业务方向以及需求大小做出调整,比如一些小的需求小的改动概要设计和详细设计就不会做了。

流程的最终目的是为了节省时间成本和人力成本,并且提高产品的质量,符合公司实际情况的才是好流程,小公司盲目采用大公司的流程反而会增加沟通成本,大公司明明流程老旧也不进行改进和变动,技术负债就会越来越多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决 java.lang.IllegalArgumentException: Repository interface must not be null on initialization!

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 报错:Caused by: java.lang.IllegalArgumentException: Repository interface must not be null on initialization! Cause…

【狂神说】JVM

文章目录1.JVM的位置2.JVM的体系结构3.类加载器4.双亲委派机制(重要)5.沙箱安全机制(了解)6.native(核心)7.PC寄存器(了解)8.方法区9.栈10.三种JVM11.堆(Heap)12.新生区、老年区13.永…

我们真的需要统一的编程规范?

摘要:仁者见仁智者见智,编码风格的不同,对项目也会有不同的影响,统一的编码规范有益于项目的维护。俗话说,没有规矩不成方圆,在2004年,UNIX创始人之一的Ken Arnold就发表了一篇很幽默文章&#…

百度云重磅发布ABC 3.0 尹世明如何诠释百度云的“新”打法

雷锋网9月4日消息,2018百度云智峰会正式召开,百度总裁张亚勤发表题为《新技术驱动,全面进入Cloud2.0》的演讲并表示,经历了PCClient/Server到MobileCloud 1.0,再到如今的AICloud 2.0过程,新技术推动云计算产…

开发人员眼中最好的代码编辑器是谁?

摘要:对开发人员来讲,开发工具就好比战场上的“兵器”,不同领域的开发人员他们所使用的“兵器”也不完全相同,本文从友好性、功能性、扩展等多方面总结了最受开发人员欢迎的“兵器”。你最爱的那个在这里吗? 如果我们把…

【老杜】MySQL—day01

文章目录day01课堂笔记1、数据库概述及数据准备1.1、什么是数据库1.2、什么是数据库管理系统1.3、SQL概述1.4、安装MySQL数据库管理系统。1.4、MySQL数据库的完美卸载!1.5、MySQL的服务1.6、用命令来启动和关闭mysql服务1.7、登录mysql数据库2、MySQL常用命令&#…

【转载】DRuid 大数据分析之查询

转载自http://yangyangmyself.iteye.com/blog/23217591、Druid 查询概述上一节完成数据导入后,接下来讲讲Druid如何查询及统计分析导入的数据。Druid的查询是使用REST风格的HTTP请求查询服务节点(Broker、Historical、Realtime),这…

记录 Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentExce

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 报错如题: Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentException: Pa…

Springsecurity之AuthenticationProvider

2019独角兽企业重金招聘Python工程师标准>>> 注意:AuthenticationProvider与Authentication紧密联系,关于Authentication,看我的这篇博客。 先上一张图,如下图1 图1 AuthenticationProvider的类图 AuthenticationProvi…

Postman使用入门

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Postman测试管理的单位是测试集(Collections),测试集内可以创建文件夹(Folder)和具体的请求(Requests…

编程需要知道多少数学知识?

摘要:许多人认为在开始学习编程之前必须对数学很在行或者数学分数很高。但一个人为了编程的话,需要学习多少数学呢? 实际上不需要很多 。这篇文章中我会深入探讨编程中所需要的数学知识。 下面是我在reddit的子论坛 r/learnprogramming 看到的…

vue弹窗插件实战

vue做移动端经常碰到弹窗的需求, 这里写一个功能简单的vue弹窗 popup.vue <template><div class"popup-wrapper" v-show"visible" click"hide"><div class"popup-text">{{text}}</div></div> </temp…

【狂神说】Redis笔记

文章目录1、Nosql概述1.1 为什么要用Nosql1.2 什么是NoSQL1.3 阿里巴巴演进分析2、NoSQL的四大分类3、Redis入门3.1 概述3.2 Windows安装3.3 Linux安装3.4 测试性能3.5 基础的知识4、五大数据类型4.1 Redis-Key4.2 String&#xff08;字符串&#xff09;4.3 List&#xff08;列…

Postman用法说明

见&#xff1a;http://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介-Http请求模拟工具 在我们平时开发中&#xff0c;特别是需要与接口打交道时&#xff0c;无论是写接口还是用接口&#xff0c;拿到接口后肯定都得提前测试一下&#xff0c;这样的话就…

Linux核心总结

文章目录1.首先了解一下linux的目录结构2.linux的基本命令之使用命令开关机3.linux的基本命令之目录管理1.ls—列出目录命令2.cd—切换目录命令3.pwd—查看当前所在目录命令4.mkdir—创建文件夹命令5.rmdir—删除文件夹命令6.cp—复制文件命令7.rm—传说中的删库跑路命令8.mv—…

Java多线程系列---“JUC锁”01之 框架

本章&#xff0c;我们介绍锁的架构&#xff1b;后面的章节将会对它们逐个进行分析介绍。目录如下&#xff1a; 01. Java多线程系列--“JUC锁”01之 框架02. Java多线程系列--“JUC锁”02之 互斥锁ReentrantLock06. Java多线程系列--“JUC锁”03之 Condition条件07. Java多线程系…

IDEA配置jdk (SDK)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 提前安装jdk&#xff0c;配置环境变量 一、配置jdk 1、依次点开File -->Project Structure&#xff0c;点击左侧标签页&#xff0c…

Spring Data JPA入门

见&#xff1a;http://sishuok.com/forum/blogPost/list/7000.html Spring Data是什么 Spring Data是一个用于简化数据库访问&#xff0c;并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷&#xff0c;并支持map-reduce框架和云计算数据服务。 Spring Data…

【git】----- clone 及上传文件

在GitHub上创建一个项目首先点击新存储库进入创建的步骤创建完成后跳转到下一个页面复制路径然后在自己的新建的文件夹里面&#xff08;例如:git&#xff09;右键&#xff0c;点击Git Bash Here进入命令行输入 git clone 输入刚刚拷贝的路径&#xff08;https://github.com/nam…

数据结构与算法总结

文章目录线性数据结构1. 数组2. 链表2.1. 链表简介2.2. 链表分类2.2.1. 单链表2.2.2. 循环链表2.2.3. 双向链表2.2.4. 双向循环链表2.3. 应用场景2.4. 数组 vs 链表3. 栈3.1. 栈简介3.2. 栈的常见应用常见应用场景3.2.1. 实现浏览器的回退和前进功能3.2.2. 检查符号是否成对出现…