百战程序员的咨询老师经常会遇到这样一些问题:完整的开发流程应该包括几个环节?每个环节的人员配置如何?每个阶段的工作都要用到哪些软件?针对以上问题,这篇文章将一一作答,为每个有同样问题的小伙伴消除疑惑。
软件项目开发过程一般需要以下九个阶段:产生想法需求—可行性分析—分析、策划、建模—UI设计—开发(前端+后端)—测试(黑盒+白盒)—上线部署—运维—迭代。下面将对这九个阶段进行具体的介绍和说明,好奇的小伙伴赶快搬好小板凳,拿好小本本——
01 产生想法一个软件没有出现之前,只是有一部分人有一个想法,需要一个东西实现某种功能,这个时候一个想法出现了,就会有需求。这个需求一般由甲方或者boss提出。
参与角色:老板、甲方、产品经理
常用工具:Word、Excel、PPT等
02可行性分析需求产生之后,接下来就需要从市场、政策、经济、技术、人员等各方面因素来分析这个软件项目开发的可实行性。做市场调研,通过请教行业专家或者分析市场同类型的产品,来判断这个项目的开发是否有发展前景。
参与角色:产品经理、甲方、老板
常用工具:Word、Excel、PPT等
03需求分析、原型策划、数据建模待需求分析通过之后,进入到开发需求的分析和设计阶段。这部分主要由产品经理完成业务梳理。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。确定软件的体系结构、数据结构、算法、模块功能,以及用户界面的设计等等,如果这些事情没有设计好,接下来的设计可能会变得一团糟。
参与角色:产品经理、甲方、老板;
常用工具:
通用工具:Word、Excel、PPT等;
产品经理专业软件:Axure、墨刀、Sketch、Principle;
开发软件:powerdesigner、Workbench(配合MySQL较好)
04UI页面设计UI设计师根据产品的需求,输出界面效果图,并提供界面的标注,最后根据主要的界面,提供一套UI设计规范。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。产品经理在界面效果图,输出需求规格,需求规格应包含最终要实现的内容的一切要素。
参与角色:产品经理、设计人员
6~10人团队,设计人员需要1~2人
常用工具:
PS(平面设计)、Illustrator(AI,插画、字体)、CorelDRAW(排版)、Dreamweaver(网页设计)
05开发在软件编码阶段,开发人员根据软件系统详细设计对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间。编码时的相互沟通和应急的解决手段都是相当重要的。
参与角色:开发人员(前端、后端)
6~10人团队,前端人数:1-3;后端人员:1-3人,
常用工具:
Java:ideal、eclipse、vscode;
python :pycharm、vscode;
c/c++:vscode;
php:sublime;
前端:webstorm、vscode;
Git版本控制软件;
jira、bugzilla(bug追踪管理软件)。
06测试一款软件从开发出来到正式的发布,一定需要经过不断的测试,才能尽可能的发现更多的错误,然后做出相应的修改,而且修改之后还需要重新测试。
参与角色:测试人员
6~10人团队,测试人员0-1人,小团队的测试岗位可由产品经理(黑盒测试)和程序员(白盒测试)兼任。
常用工具:Python(写脚本)、jmeter(性能测试)、qtp、selenium(黑盒)、jira、bugzilla(bug追踪管理软件)
07上线部署 与客户或者上级达成一致后,系统进行试运行,稳定后上线。 6~10人团队需运维人员0~1人,小团队可由程序员兼任参与角色:开发人员、运维人员
常用工具:Apache、Redis、NGINX、Tomcat等
08运维运维人员根据用户在使用过程遇到的错误,或者由于硬件设备不断更新等外部因素引发的问题,或者为了完善用户的体验度等等而做出的相应的完善和维护。
参与角色:开发人员、运维人员
常用工具:Linux系统、Python(写脚本)
09升级、迭代软件开发后续根据需求调整分析、软件功能拓展、优化系统等要进行升级迭代。将整个开发流程再次按照顺序依次完成。
参与角色:以上全部角色
常用工具:以上所有工具
软件项目开发流程详细描述了软件在开发过程中产品调研、设计、开发、测试等各个阶段中各个角色,包含产品经理、研发、测试、用户等需要处理的事情。每个阶段环环相扣,需要阶段间人员彼此不断的沟通、交流、反复测试、修改,最终才能让一个满足各方需求的产品成功面世。
不知这波介绍够不够良心,有没有消除小伙伴的困惑?不过不理解也不要紧,慢慢的深入一个行业就会越来越清楚了。百战程序员是在线教育的高端IT品牌,为自学者提供一个随时随地轻松学习编程的在线学习平台。很多人从百战出发,实现了自己的IT梦想。
想更了解IT行业,欢迎关注我们的公众号,后续将为大家继续推出更加良心的回复帖,更多彩蛋为你而来!