一、软件开发从0到1的各个阶段
- 启动阶段
公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周 》;测试阶段,测试工程师每周提供《项目测试周 》。
负责人 |
输出产物 |
描述 |
产品经理 |
调研文档 |
了解项目背景,了解项目相关人员的工作方向 |
产品总监 |
团队组建 |
确认团队人员及配置 |
产品经理 |
业务梳理 |
明确项目的目标、角色、具体到各端及模块 |
- 需求阶段
- 进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。产品经理面向整个团队,进行需求的讲解并完成《需求评审》
- 研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。
- 研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。
负责人 |
输出产物 |
描述 |
产品经理 |
产品原型 |
产品的线框图 |
产品经理 |
需求评审 |
让项目参与人清晰的了解需求 |
研发经理 |
项目里程碑确认 |
确定项目重大时间节点 |
研发经理 |
项目开发计划 |
梳理各阶段、各端的开发计划 |
研发经理 |
项目任务分解表 |
将计划分配到团队 |
研发工程师 |
需求概要 |
基于线框图,作技术评估,与产品经理达成业务理解的一致性 |
- 设计阶段
- UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸、配色、字体等,方便研发快速开发。UI设计常涵盖交互的内容。
- 研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。
- 研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。
负责人 |
输出产物 |
描述 |
UI设计师 |
界面效果图及标注 |
基于线框图,作效果图,须适量考虑交互内容 |
UI设计师 |
UI设计规范 |
在UI界面基础上,输出主要界面的设计规范 |
研发工程师 |
需求规格 |
基于效果图,明确业务实现细节,消除对最终成果理解的不一致 |
研发工程师 |
概要设计 |
功能实现的可视化,有助于理清思路,减少技术盲区和低级缺陷,实现并行开发,提高效率 |
研发工程师 |
通讯协议 |
通信协议是指双方实体(软件个各个端)完成通信或服务所必须遵循的规则和约定 |
研发工程师 |
表结构设计 |
确认数据库表及其表字段 |
- 开发阶段
研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认与需求调整。
编码过程一般还需进行服务端和移动端的联调等。
完成编码后需要进行功能评审。以确定功能实现的完整程度,是否满足需求。
负责人 |
输出产物 |
描述 |
研发工程师 |
编写代码 |
按功能按模块编写代码 |
研发工程师 |
编写代码相关文档 |
包括软件构架文档,模块接口文档、模块流程图等文档 |
研发经理 |
项目周 |
每周开发内容及下周开发计划 |
测试工程师 |
测试周 |
每周测试内容及下周测试计划 |
整体团队 |
评审会议 |
纪要评审的过程文档 |
- 测试阶段
测试工程师按阶段设计《测试实例》,未通过的流程测试提交至Jira,分配给相应的开发人员调整。
研发工程师根据测试结果修改代码,完成后提交测试,测试通过后完成。
测试工程师编写《测试结果 告》,包括功能测试结果、压力测试结果等。
测试工程师编写系统各端口的《操作手册》、维护手册等。
负责人 |
输出产物 |
描述 |
测试工程师 |
测试用例 |
明确测试方案,包括测试模块、步骤、预期 |
测试工程师 |
测试结果 告 |
输出测试结果 |
测试工程师 |
用户手册 |
系统操作手册 |
- 系统上线或项目交付
- 如果是需要上线运行的软件,则上线并交付运维部门维护。如果是独立的软件则,制作软件安装包。
- 整理归档源代码与文档。各个开发工程师,归档自己负责的部分,然后交付给研发项目经理统一归档,然后交付给公司的档案部门。归档的文件一般包括:源代码、安装包、说明书等。
-软件开发完成之后,就可以申请《软件著作权》。
负责人 |
输出产物 |
描述 |
* |
完成的软件 |
用于上线或用于分发安装包 |
* |
归档 |
归档,软件、源代码、说明书、软件设计文档、项目文档等 |
* |
软件著作权 |
开始申请软件著作权 |
- 软件维护
软件产品交付后,需要改正软件的缺陷、提高软件性能或其他属性、使软件产品适应新的环境。
负责人 |
输出产物 |
描述 |
研发经理 |
整理bug与新需求改进 |
确认需要改进与修正的功能 |
研发工程师 |
编码 |
编码实现新需求与bug修改 |
测试工程师 |
测试 |
测试新增功能与bug修复确认 |
二、敏捷开发中常用的三种图
软件设计中,现在常用的设计图包括:思维导图、原型图、UI设计图。以下分别详细介绍。
- 思维导图
思维导图是使用一个中央关键词或想法引起形象化的构造和分类的想法;它用一个中央关键词或想法以辐射线形连接所有的代表字词、想法、任务或其它关联项目的图解方式。思维导图可以帮助你整理并分析软件需要的功能,根据需求设计软件功能的时候,需要用思维导图。推荐的软件有:MindMaster、MindNode、 XMind、百度脑图。
- 原型图
原型图可以完全的模拟出一个真实软件在使用时候的样子,客户或领导能和你一起看到软件未来交互界面、功能和效果,获得较真实的感受,从而可以不断讨论来完善现有的设计。推荐的软件有:Axure RP、墨刀。使用原型图的好处如下:
- 自我验证的方式
很多时候和领导沟通需求(或者和客户沟通需求)的时候,聊了很多功能与细节。但是自己对软件真实的样子还是很模糊。这个使用使用“原型图绘制工具”开始设计并绘制软件的界面布局和交互页面。在设计的时候对需求的理解也会越来越清晰。
- 给客户或领导看产品的原型,验证是否满足需求
所谓“所见即所得”,一幅图画给人的感觉是直观的具象的。因此原型图不仅方便自己理解需求,也可以让需求方来确认设计是否满足需求,从而确定软件最终的功能和页面布局。从而避免双方对最终产品的不同理解。
- 给设计人员设计ui的依据
美工设计人员所关注的重点在于,软件控件的布局、控件的样式、交互效果等。因此在和美工人员交流ui设计的时候,原型图就是关键方式。原型图可以快速、准确的把软件的目标需要展示出来。(从而避免美工人员深挖需求,造成人员浪费、耽误项目开发进度。)
- 给开发人员开发作为开发依据
开发人员比较有自己的个性,如果给入需求比较模糊,开发人员就会按照自己的理解来制作软件界面或实现功能。尤其人都有惰性,同样一个功能怎样实现最简单开发人员就怎样开发。这就导致最终软件效果让人不满意,然后从头开始修改。需求方觉得不开心,开发人员也不爽,就会出现“互相指责”的情况。但是有原型图就不一样了,原型图可以精细的描述软件的功能和界面布局,以及界面交互方式。开发人员按照原型图开发出来的软件,就会完全满足需求方之前通过原型图确认过的功能了。
- 给测试人员作为测试的依据
测试人员可以通过原型图快速了解软件的功能、页面布局、和交互方式。因此客户提前制定测试计划和编写测试用例。
- UI设计图
UI设计是指软件的界面设计。UI设计图一般以“原型图”作为基本依据。设计出软件最终呈现在用户面前的样子。一般由专业的美工(UI设计师/UE设计师)设计。UI设计图不仅设计软件页面控件的布局和样式,还要设计软件的交互方式、软件页面中每个控件的尺寸和位置、以及字体和动画效果。效果图的作用如下:
- “UI设计图”是给开发人员开发时候的主要参照;
- “UI设计图”是和需求方确认最终效果的一种方式;
- 软件开发人员在实现页面或控件的时候,常常需要UI设计图中某一小块图片,这个图片就是从UI设计图中拆出来的;
三、上位机软件程序员需要了解的设计图
从第一小节可知,软件开发之前,需要根据需求确定软件的功能和界面布局。一般“上位机程序员”所在的研发部门,并没有互联 公司常见的“产品经理”和“美工”等(由于硬件为主的公司对配备的软件外观要求相对不高)。但是简单的“软件功能设计”和“软件布局界面”设计还是需要的。因此这个部分的工作就落在了“上位机程序员”身上。
对于“上位机程序员”来说,这个设计工作,一般用一张纸和一根笔就就完成了设计工作。但是缺点也很明显,如下列所示:
- 不便与部门领导或硬件开发人员交流“软件功能设计”和“软件布局界面”;
- 用纸笔设计的界面布局比较粗糙,自己看还行,别人不易看懂;
- 不便于文档化储存。设计的纸张容易丢失;
- 不便于开会讨论软件功能以及软件界面设计和布局;
因此,建议”上位机程序员“适当学习一些基本的设计工具,从而更出色得完成自己所负责的软件开发工作。考虑到编程人员不适合太过深入学习与”美工“相关的工作。这里建议,学会绘制思维导图、学会绘制简单的原型图(界面线框图)、以及学会基本的UI设计图绘制方法(制作漂亮软件界面的关键)。具体学习的内容参见4.2、4.3、4.4章。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!