互联网公司的完整开发流程是怎样的?
作者:鱼仔
博客首页: https://codeease.top
公众号:Java鱼仔
# (一)前言
对于很多还没进入社会或者之前没有在互联网公司呆过的人来说,会很好奇互联网企业的开发流程是怎样的,正好借着我最近这段时间的经历写下这一篇介绍开发流程的文章。
# (二)开发流程
对于有自研系统的企业,程序员往往是和产品经理在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,在一段时间内都不会动生产环境的系统,接下来的改动会按照版本进行迭代,这里刚好和第一步形成了一个闭环。
# (三)总结
总体来讲,开发人员越多的公司往往整体的流程会越规范,对企业来说肯定是好事,但对个人来说也要看两面。流程越来越规范,能让你在开发方面的能力越来越强,但让你遇到问题解决问题的场景也就变少了,运维人员会帮你解决运维上的问题,产品会帮你对需求。如果你是在初创公司或者是面向客户的软件行业,往往是一个人一手抓,也能锻炼自己各方面的能力。
具体如何选择,看你自己对未来的规划如何。我是鱼仔,最近真的好忙,我们下期再见。