前言
最近一段时刻在忙着开发公司的产品,第一阶段也结束了,今日想跟我们聊聊一个产品的正常的开发流程。正常的流程应该是:前期需求对接;中期研发进程;后期测验与版别。
需求对接
需求来历
- 来自客户的直接需求,日常售后运维收集的;
- 参考资料,其他公司的竞品;
- 与项目部、售后部分等交流,需求调研;
- 公司产品规划;
- 主要准则,不凭空捏造,不想当然,参考已有成熟产品或业界标准,或许最新的政策文件;
输入输出
- 需求标准阐明书,或许简略的阐明文档;
- 功用脑图、原型图 Axure RP;
- 产品预期的目标;
- 产品与相关研发人员,进行需求阐明评定会议;
- 会议前,相关文档提前发给相关人员(UI、开发和测验),供阅读考虑;
- 会议时,产品司理按需求点逐个解说,待解说完一个大的功用点,我们发问评论,统一对需求的了解;
- 一个简略的会议纪要,记载一下我们有矛盾的点;
处理方案编写
- 需求会议后,研发人员针对需求编写处理方案;
- 处理方案包含功用模块区分、表结构规划等,产出一个处理方案文档,包含对需求的了解,功用完结方式,包含一些事务流程图、架构图、布置图、SQL脚本等;
- 假如是完全的新项目,或许还需要考虑技术选型,例如运用哪种编程语言、开发框架、数据库等,是否需要集群布置,一般与团队原有常识系统坚持一致;
- 处理方案,经研发负责人评定后,进行使命分化分配,到具体人员;
- 依据现有资源状况,进行大致工期规划,列一个时刻表;
- 项目进度工期能够运用project等办理,明确使命时刻点,人员等;
- 需求能够运用JIRA、禅道等东西进行办理,能够将资料作为附件放在记载里;
- 注意:一般依据项目状况,要依照1.5倍时刻预估,因为总有突发状况,而且前期的估算不必定准确;
需求改变处理
- 关于新产品研发,或许客户项目开发,需求改变无法防止;
- 主要是新的东西,我们无法一开端就能明确其一切特性,后续或许有一些更好的想法,或许发现现有规划有严重缺陷;
- 需求改变,则需要对改变需求进行对接、评定(对现有框架、工期等的影响)、处理方案编写、工期方案的调整;
- 关于需求改变处理,要有准则,并不是一切的改变都要当即承受处理;
- 关于严重缺陷,或越往后期改动本钱越大的,可优先处理;
- 关于一些不影响运用的优化或需求,可按列入写一个版别方案;
- 一切的需求改变,需要在JIRA或禅道里记载,新增一条记载;
研发进程
功用开发
- 重点使命,及时盯梢,依据需要加班完结;
- 进行阶段性短会,或许周会,每周要有项目进度阐明;
- 前后端分离,要做好API接口保护,要尽量确保一个稳定环境和数据,供前端调试;
- 针对部分疑难问题,短时刻无法处理掉的,及时汇报,我们一同处理;
- 宜早不宜迟,前中期多干点,留出冗余时刻处理突发状况,尽量不要卡着时刻点去完结使命;
- 及时保护JIRA或禅道里的使命状况,使命完结状况作为一项查核目标;
- 不能简略粗暴运用,因为有的关键使命或许要好几天完结,小使命或许半小时完结,所以数量和按时完结率也仅仅参考;
代码检查
- 编码标准,约定大于配置,阿里编程标准、数据库规约等;
- 合理的类和变量命名,合理的注释,合理的办法长度;
- 代码静态检查 sonar cube;
- 人工检查,代码走读;
- 检查完结后,收拾呈现的问题并宣讲,我们一同学习下,防止类似问题;
常识库
- 产品相关文档,包含需求文档、规划文档、用户手册等;
- 功用模块的文档,开发人员编写和运用,包含功用完结逻辑,在什么方位、有哪些类和表、有哪些接口等,可作为阶段性的工作文档,减少后续保护本钱;
- 疑难问题的文档,记载遇到的问题,处理进程,处理结果等;
- 常识共享文档,产品中用到的关键技术,或许新技术,进行简略的介绍,包含特性、运用方式等;
测验与版别
测验要求
- 首要要按层功用自测,自己测验通过,再交由前端联调或测验人员测验;
- 保留必要的测验数据,接口测验要保留好输入输出;
- 对测验人员的测验要继续跟进,关于影响测验的问题优先处理,其他缺陷或优化,后续处理;
- 关于多变的阶段,来不及运用JIRA禅道等办理东西时,能够运用腾讯在线文档,运用表格办理;
- 关于稳定期,能够运用JIRA禅道等办理东西,对问题追踪;
- 测验介入越早越好,最好在需求阶段介入,便利更早的开端编写保护测验用例,测验完结后要有测验报告;
- 假如条件答应,一个大的功用模块完结后,能够让测验人员对这个功用先行测验;
- 至少两轮完整测验,一轮集成测验,一轮测验问题修改后的回归测验;
版别办理
- 代码主线分支办理;
- 产品代码办理;
- 项目代码办理;
- 发布版别办理(程序包、文档、SQL/shell脚本);
- 布置文档(自动化布置脚本,数据库初始化脚本);
后记
坚持学习
- 学会使用互联网,开源免费的各种资料,源码;
- 引荐掘金、B站、腾讯课堂、开源我国等;
- 学习的广度和深度,依据需要针对性学习,学了要用起来,要有总结和记载;
- 有方案、有必定强度的继续学习,铢积寸累;
经验共享
- 工作中提高开发功率,每天要完结的使命列个列表,按优先级和紧急程度次序完结,真实无法按时完结要及时主动的和上级领导交流;
- IT职业加班是常态,简直一切公司都无法防止,要尽量按时吃饭。身体是自己的,照顾好自己,每周进行锻炼(例如跑步/打篮球等);
- 学会理财,人生本就起起落落,没有谁是一往无前的,但只要存下来的钱,是你失落时最大的支撑;
- 办理自己的情绪,而办理情绪最好的方式是,不生闲气、不争对错、不理烂人。