软件开发的流程可以分公司性质来说一个软件的开发流程:
软件公司和非软件公司
非软件公司
需求分析-概要设计-程序编码-程序测试-软件交付-客户验收-码农维护
软件公司
需求分析-概要设计-详细设计-程序编码-程序测试-软件交付-客户验收-码农维护
我们一步一步的说:
(一)需求分析:
一个软件没有出现之前,只是有一部分人有一个想法,我需要一个这样的东西(想要一个孩子了)用来管理我的什么什么,这个时候一个想法出现了,就会有这个需求,他会找软件公司需求分析师来商量,这个时候一个软件就怀孕了,相当于开始发育了.需求分析是听完要求以后会将大概的功能描述一下,用Word或者Axure画出一个简单的Demo给用户看,经过几次确认以后需求分析师会最后确认功能是不是完善的,确认了以后进行我们的下一步,概要设计
(二)概要设计:
这个功能主要是干嘛的呢?很多的公司觉得没必要,其实是很有必要的,这个就是相当于先规划一下怎么平安度过怀孕期,对于软件来说就是软件的处理逻辑,大概的一个流程是怎么走的,大概需要哪些模块,怎么运行,需要大概多少接口,后期怎么维护等问题,做这些干呢吗?为了下一步-详细设计
(三)详细设计:
有人说,详细设计是很麻烦的一步,其实不是很麻烦的一步,我觉得是最难的一步,详细设计主要是用来确认细节的,接口的名字啊,控制器的名字啊,多少个控制器,谁来调用谁,这个不可以有错,因为后期码农是需要看这个开发的,你怎么起名字,他们就怎么写,所以这里出错也就意味着编码的时候也会错,最后会有一份详细设计书出现,这个就是告诉孕妇具体吃什么,怎么吃,多少量。
(四)码农编码:
很多人觉得这个就是搬砖,看着设计书就直接写就可以了,理论是这样的,但是为什么还有很多的bug出现呢?很大一部分原因并不是设计的原因(当然也有可能),很大原因是不规范造成的,还有就是是不是一个项目组的人可以协作处理代码,怎么做可可以提高编码的效率,这些问题都是在编码的时候出现的问题。这个是相当于孕妇实施那一套套餐的时候具体是不是按规范来吃的。
(五)程序测试:
这一步是里面很重要的一步,测试,我们不可能说写好直接就给用户用了,这个是不现实的,我们需要做的是先给测试部门进行系统的测试,当然这个测试不是按照用户的想法来的,他们会很暴力,举个栗子,一个按钮,正常的用户使用的时候会直接点击一次,看到效果就可以了,但是测试的时候不是,他们会疯狂的点击,知道他们觉得这个世界上不会有人比他们暴力的时候他们会停止,当然这是一个好的测试人员,很多的测试不会是这样的,他们觉得正常使用没问题就是没事的,其实一个软件好不好,很大一部分在于测试人员的测试力度。最后写一份测试报告就可以了。
(六)软件交付:
测试结束以后没有任何的问题的话,就可以写安装手册了,这个其实就是用户使用指南。
(七)客户验收:
交付后客户简单的测试以后觉得是和自己想的一样的,就收货,交钱.
(八)码农维护:
是不是验收以后就没事了呢?当然不是,一个软件很多时候是在用一段时间以后才会出问题的,所以会一直需要人来维护他们,当然不是说只是出问题才会维护的,主要的原因是软件会根据不同的需要更改功能,这样的过程也是维护的过程,QQ已经更新多少代了,是不是,这也是一个维护的过程。
(九)项目重构:
这个是一个项目如果出现了新的技术,功能没有改变的时候,为了用户体验,例如之前是SSH写的,但是运行的速度很低,用SpringBoot,大家都在用,用户反映很好,那么这个时候就需要项目重构了,用新的技术将之前的功能重新实现。
*以上两种的区别:非软件公司是没有详细设计的,这个解释一下,为什么呢?很简单,其实详细设计是和耗费时间的,非软件公司的人不会花费这个时间在设计上,他们就是直接告诉你需求,码农只需要直接编码就可以了,一般这样的对你用什么技术,什么框架是没有要求的。
我们团队进行讨论后最喜欢的时交响乐模式各司其职发挥自己的长处:
顾名思义,对于交响乐我们都不陌生,交响乐的特点是家伙什多,门类齐全;各个表演者各司其职,各自有专门的场地,演奏期间没有聊天走动的现象;还有就是演奏都靠谱,平时看指挥;再者演奏的都是经过多次练习的曲目,重在执行,交响乐是人类音乐文化的高级形式,这里说到了交响乐团模式,整个团队中的成员对于整体而言自然不可或缺,但是还有一点就是个人的成功并不是整个团队的成功,我觉得这种模式是软件开发团队必须要有的基本素质,如果在项目中只想着自己出风头,全然不顾团队利益,那么这个团队最后的结果必然是一盘散沙,同时这里谈到了指挥者,我觉得这个就是整个团队的领导者,即项目经理,作为指挥者,其要具备的实力不用多说,还有的恐怕就是组织协调能力,如果不能很好地带领自己这个“交响乐团”,即使队员有天大的才能也是白搭。