《IT项目管理与职业生涯规划大型论坛》中国.苏州
免费报名:http://www.hdb.com/party/b8an2.html?hdb_pos=manager_info
在我转产品之前,虽然我混迹IT行业,做过实施和售前,也跟研发打过交道,但我一直都不知道一个软件是怎么开发出来的。直面客户,扛着压力,在对程序一无所知的情况下,很容易产生一些想法:为什么产品的结果是这样?为什么产品开发的速度不能再快一点?为什么程序员经常加班?他们都在忙些什么?测试是不是就是每天忙着点点程序看会不会报错?
所以本文面向的对象是,适合和我当初一样对软件开发一无所知的IT从业者(或者有兴趣者),另外也欢迎我的程序员小伙伴和测试小伙伴,因为你们也懂这个过程,所以我们可以作更多探讨,这个过程中我们可能会发现大家对同一件事的理解并不一致,也许经过碰撞,我们能共创智慧的果实。
一、开发流程图
为使流程更清晰,本图省略了各环节的评审,如有更好的表现形式,欢迎提出建议。
二、过程产物及要求
本表主要列出开发阶段需要输出的过程产物,包括产物名称、成果描述、负责人及备注,即谁、在什么时间、应该提供什么内容、提供内容的基本方向和形式是什么。
项目启动阶段
产物名称成果描述负责人
调研文档了解项目背景,了解项目干系人目标方向产品经理
团队组建确认团队人员及配置产品总监
业务梳理明确项目的目标、角色、各端口及模块产品经理
需求阶段
产品原型产品的线框图产品经理
需求概要基于线框图,作技术评估,达成业务理解的一致性研发工程师
项目里程碑确认项目重大时间节点研发项目 经理
项目开发计划梳理各阶段、各端口的开发计划研发项目经理
项目任务分解表将计划分配到团队研发项目经理
设计阶段
界面效果图及标注基于线框图,作效果图,须适量考虑交互内容UI设计师
UI设计规范在UI界面基础上,输出主要界面的设计规范UI设计师
需求规格基于效果图,明确业务实现细节,消除对最终成果理解的不一致研发工程师
概要设计功能实现的可视化,有助于理清思路,减少技术盲区和低级缺陷,实现并行开发,提高效率研发工程师
通讯协议通信协议是指双方实体完成通信或服务所必须遵循的规则和约定研发工程师
表结构设计确认要建的数据库表及其表结构研发工程师
开发阶段
产品代码代码
测试阶段
测试用例明确测试方案,包括测试模块、步骤、预期测试工程师
测试结果报告输出测试结果测试工程师
用户手册系统操作手册测试工程师
常规文档
项目周报每周开发内容及下周开发计划研发项目经理
测试周报每周测试内容及下周测试计划测试工程师
评审会议纪要评审的过程文档整体团队
三、过程说明
项目启动
产品经理和项目干系人确定项目方向,产品型项目的干系人包括公司领导、产品总监、技术总监等,项目的话则包括客户方领导、主要执行人等。
公司领导确认项目组团队组成,包括产品经理、研发项目经理、研发工程师、测试团队等。
明确项目管理制度,每个阶段的成果产物需要进行相应的评审,评审有相应的《会议纪要》;从项目启动起,研发项目经理每周提供《项目研发周报》;测试阶段,测试工程师每周提供《项目测试周报》。
产品经理进行需求调研,输出《需求调研》文档。需求调研的方式主要有背景资料调查和访谈。
产品经理完成《业务梳理》。首先,明确每个项目的目标;其次,梳理项目涉及的角色;再来,每个角色要进行的事项;最后,再梳理整个系统分哪些端口,要有哪些业务模块,每个模块再包含哪些功能。
需求阶段
进入可视化产物的输出阶段,产品经理提供最简单也最接近成品的《产品原型》,线框图形式即可。在这个过程中还可能产生的包括业务流程图和页面跳转流程图。业务流程图侧重在不同节点不同角色所进行的操作,页面跳转流程图主要指不同界面间的跳转关系。
产品经理面向整个团队,进行需求的讲解。
研发项目经理根据需求及项目要求,明确《项目里程碑》。根据项目里程表,完成《产品开发计划》,明确详细阶段的时间点,最后根据开发计划,进行《项目任务分解》,完成项目的分工。
研发工程师按照各自的分工,进入概要需求阶段。《概要需求》旨在让研发工程师初步理解业务,评估技术可行性。
设计阶段
UI设计师根据产品的原型,输出《界面效果图》,并提供界面的标注,最后根据主要的界面,提供一套《UI设计规范》。UI设计规范主要是明确常用界面形式尺寸等,方便研发快速开发。UI设计常涵盖交互的内容。
研发工程师在界面效果图,输出《需求规格》,需求规格应包含最终要实现的内容的一切要素。
研发工程师完成《概要设计》、《通讯协议》及《表结构设计》,及完成正式编码前的一系列研发设计工作。
开发阶段
研发工程师正式进入编码阶段,这个过程虽然大部分时间用来写代码,但是可能还需要进行技术预研、进行需求确认。
编码过程一般还需进行服务端和移动端的联调等。
完成编码后需要进行功能评审。
测试阶段
测试工程师按阶段设计《测试实例》,未通过的流程测试提交至Jira,分配给相应的开发人员调整。
研发工程师根据测试结果修改代码,完成后提交测试,测试通过后完成。
测试工程师编写《测试结果报告》,包括功能测试结果、压力测试结果等。
测试工程师编写系统各端口的《操作手册》、维护手册等。
系统上线
与客户或者上级达成一致后,系统进行试运行,稳定后上线。
最后,以上内容仅限于我所在公司,不代表绝对专业意见,不知道其他行业的IT小伙伴和我们是否一样呢,欢迎与我交流
本文转自:人生如轻尘栖弱草
以上内容为原创,转载请标明来源,谢谢。