进入IT行业这么久,你知道完整的软件开发流程是什么样吗?(一)

一、本文背景

在我转产品之前,虽然我混迹IT行业,做过实施和售前,也跟研发打过交道,但我一直都不知道一个软件是怎么开发出来的。直面客户,扛着压力,在对程序一无所知的情况下,很容易产生一些想法:为什么产品的结果是这样?为什么产品开发的速度不能再快一点?为什么程序员经常加班?他们都在忙些什么?测试是不是就是每天忙着点点程序看会不会报错?

所以本文面向的对象是,适合和我当初一样对软件开发一无所知的IT从业者(或者有兴趣者),另外也欢迎我的程序员小伙伴和测试小伙伴,因为你们也懂这个过程,所以我们可以作更多探讨,这个过程中我们可能会发现大家对同一件事的理解并不一致,也许经过碰撞,我们能共创智慧的果实。

二、CMMI的组织成熟度

在讲解正式流程之前,我们先花一些笔墨讲一下CNMI(Capability Maturity Model Integration)组织成熟度,这样读者可以大概知道我司开发的水平,也可以知道本文撰写的基本根据。

CMMI是美国产业界、政府和卡内基梅隆大学软件工程研究所于2002年推出的集成了软件工程、系统工程、集成化产品和过程开发等学科的综合成熟度模型。模型总共分五级,目前我司是CMMI5级,具体每个等级达到的水准请见下图。

CMMI组织成熟度评级

三、软件开发流程

现在开始文章重点,目前我司一个完整的开发流程是什么样的?(本文的流程适用于纯开发型项目,涵盖服务端、APP、H5的开发)

目前可以大致分为四个里程碑:

一、需求;二、设计;三、编码;四、测试;五、上线。

里程碑仅是一个比较重要的节点,其实每个节点再拆开,还有许多关键的步骤以及重要的产物输出,下面先简单说一下每个过程:

1、需求

包括需求梳理、需求设计,需要产品经理输出《产品原型》并进行讲解,研发根据产输出的线框图,完成《概要需求》并评审;

2、设计

包括UI界面(含交互)及研发设计,需要UI界面设计师输出《界面效果图》,研发根据界面效果图再输出《需求规格》,评审过后进行研发上的一系列设计,包括《概要设计》《通讯协议》;

3、编码;

这个阶段是研发真正去写代码的阶段,写代码的依据就是前两个阶段的过程产物,目标就是完成需求规格的内容。

4、测试;

测试过程主要是测试工程师来发挥力量,不过程序员也需要根据测试包括最基础的功能性测试、压力测试等,功能性测试的依据是测试根据需求撰写的《测试用例》来的。

这里在多啰嗦两句,其实测试的主要目的不是为了找出软件有哪些地方无法正常运行,那是最基础的找bug,测试更主要的工作应该是测出功能与需求不一致的地方。

5、上线

产品上线前通常会有一些准备工作,包括相关数据的维护,培训资料的准备等。上线前通常会有一段试运行的时间,最后才正式上线。


未完待续……

附:后面的内容,主要想更详细地讲解每个过程,写的过程可能更多的是站在前端、站在老板站在上级角度来写的。这几个利益方都会关注的一个点是——怎么控制成本?而要控制成本,则开发过程要尽量一步到位,减少返工;要实现减少返工,则要在每个阶段要有相应的成果及评审。我接下来要写的就是我们应当输出什么成果,我们怎么做评审。

最后,在说完这些基本事项之后,再提出一些想要探讨的开发过程问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容