前言
无论是半路转行的准程序员,还是正在读书的大学生,大家都比较关心一个问题:「企业中真实的研发流程是怎样的」。有一些在小公司的程序员,也会好奇大厂的研发流程。
为什么这么多人关心研发流程呢,因为一个合理完善的流程代表着稳定、高效。一个公司有了好的流程,就能极大节约人力成本和时间成本;一名开发人员体会了好的流程,就能极大锻炼自己的项目 / 代码掌控能力。
本文就和大家分享一下,如今互联网大厂的研发流程。
大厂流程虽好,但也不是一蹴而成。每个公司体量不一样,流程也不一样,我们就从最简单的流程讲起,看看这些环节是如何一步一步演进过来的。
流程演进
草台班子
这套流程非常简单,从需求提出到需求结束就只有一个「开发」环节。
该流程可以说是没有流程,往往只会在「个人接私活」中这样做。我曾经接私活,许多客户只有一个简单的需求场景,比如「用户输入一些数据,根据一定公式给出分析建议」,像这种程序,开发人员直接根据描述完成功能即可。
流程弊端:
需求不明确,容易陷入无尽的「扯皮」中。
用户一开始要的是 A 功能,你做出来后,客户改口说要的是 B,那么你之前做的就白费了。
所以,明确需求是软件开发的大树之根,这一点没做好,后面所做的一切都没有意义。
明确需求
「初创的外包公司」或者「个人接私活」常实行这套流程。
该流程多了一个「需求确认与分析」环节,顾名思义,这一环节主要是对用户提出的需求进行确认和分析,最后确定好需求是会写在合同中的,后续一切按照合同中的需求项进行开发。
这个环节上限极高,下限也极低。做得好,自然能够很大程度上避免用户反复无常;做得差,需求不明确,依然会让开发人员返工。
需求变更是程序员最痛苦的事情,所以该环节会随着流程的完善而不断升级。
流程弊端:
客户的需求一般就只有文字描述。这