前言

最近一段时刻在忙着开发公司的产品,第一阶段也结束了,今日想跟我们聊聊一个产品的正常的开发流程。正常的流程应该是:前期需求对接;中期研发进程;后期测验与版别。

需求对接

需求来历

  • 来自客户的直接需求,日常售后运维收集的;
  • 参考资料,其他公司的竞品;
  • 与项目部、售后部分等交流,需求调研;
  • 公司产品规划;
  • 主要准则,不凭空捏造,不想当然,参考已有成熟产品或业界标准,或许最新的政策文件;

输入输出

  • 需求标准阐明书,或许简略的阐明文档;
  • 功用脑图、原型图 Axure RP;
  • 产品预期的目标;
  • 产品与相关研发人员,进行需求阐明评定会议;
  • 会议前,相关文档提前发给相关人员(UI、开发和测验),供阅读考虑;
  • 会议时,产品司理按需求点逐个解说,待解说完一个大的功用点,我们发问评论,统一对需求的了解;
  • 一个简略的会议纪要,记载一下我们有矛盾的点;

处理方案编写

  • 需求会议后,研发人员针对需求编写处理方案;
  • 处理方案包含功用模块区分、表结构规划等,产出一个处理方案文档,包含对需求的了解,功用完结方式,包含一些事务流程图、架构图、布置图、SQL脚本等;
  • 假如是完全的新项目,或许还需要考虑技术选型,例如运用哪种编程语言、开发框架、数据库等,是否需要集群布置,一般与团队原有常识系统坚持一致;
  • 处理方案,经研发负责人评定后,进行使命分化分配,到具体人员;
  • 依据现有资源状况,进行大致工期规划,列一个时刻表;
  • 项目进度工期能够运用project等办理,明确使命时刻点,人员等;
  • 需求能够运用JIRA、禅道等东西进行办理,能够将资料作为附件放在记载里;
  • 注意:一般依据项目状况,要依照1.5倍时刻预估,因为总有突发状况,而且前期的估算不必定准确;

需求改变处理

  • 关于新产品研发,或许客户项目开发,需求改变无法防止;
  • 主要是新的东西,我们无法一开端就能明确其一切特性,后续或许有一些更好的想法,或许发现现有规划有严重缺陷;
  • 需求改变,则需要对改变需求进行对接、评定(对现有框架、工期等的影响)、处理方案编写、工期方案的调整;
  • 关于需求改变处理,要有准则,并不是一切的改变都要当即承受处理;
  • 关于严重缺陷,或越往后期改动本钱越大的,可优先处理;
  • 关于一些不影响运用的优化或需求,可按列入写一个版别方案;
  • 一切的需求改变,需要在JIRA或禅道里记载,新增一条记载;

研发进程

功用开发

  • 重点使命,及时盯梢,依据需要加班完结;
  • 进行阶段性短会,或许周会,每周要有项目进度阐明;
  • 前后端分离,要做好API接口保护,要尽量确保一个稳定环境和数据,供前端调试;
  • 针对部分疑难问题,短时刻无法处理掉的,及时汇报,我们一同处理;
  • 宜早不宜迟,前中期多干点,留出冗余时刻处理突发状况,尽量不要卡着时刻点去完结使命;
  • 及时保护JIRA或禅道里的使命状况,使命完结状况作为一项查核目标;
  • 不能简略粗暴运用,因为有的关键使命或许要好几天完结,小使命或许半小时完结,所以数量和按时完结率也仅仅参考;

代码检查

  • 编码标准,约定大于配置,阿里编程标准、数据库规约等;
  • 合理的类和变量命名,合理的注释,合理的办法长度;
  • 代码静态检查 sonar cube;
  • 人工检查,代码走读;
  • 检查完结后,收拾呈现的问题并宣讲,我们一同学习下,防止类似问题;

常识库

  • 产品相关文档,包含需求文档、规划文档、用户手册等;
  • 功用模块的文档,开发人员编写和运用,包含功用完结逻辑,在什么方位、有哪些类和表、有哪些接口等,可作为阶段性的工作文档,减少后续保护本钱;
  • 疑难问题的文档,记载遇到的问题,处理进程,处理结果等;
  • 常识共享文档,产品中用到的关键技术,或许新技术,进行简略的介绍,包含特性、运用方式等;

测验与版别

测验要求

  • 首要要按层功用自测,自己测验通过,再交由前端联调或测验人员测验;
  • 保留必要的测验数据,接口测验要保留好输入输出;
  • 对测验人员的测验要继续跟进,关于影响测验的问题优先处理,其他缺陷或优化,后续处理;
  • 关于多变的阶段,来不及运用JIRA禅道等办理东西时,能够运用腾讯在线文档,运用表格办理;
  • 关于稳定期,能够运用JIRA禅道等办理东西,对问题追踪;
  • 测验介入越早越好,最好在需求阶段介入,便利更早的开端编写保护测验用例,测验完结后要有测验报告;
  • 假如条件答应,一个大的功用模块完结后,能够让测验人员对这个功用先行测验;
  • 至少两轮完整测验,一轮集成测验,一轮测验问题修改后的回归测验;

版别办理

  • 代码主线分支办理;
  • 产品代码办理;
  • 项目代码办理;
  • 发布版别办理(程序包、文档、SQL/shell脚本);
  • 布置文档(自动化布置脚本,数据库初始化脚本);

后记

坚持学习

  • 学会使用互联网,开源免费的各种资料,源码
  • 引荐掘金、B站、腾讯课堂、开源我国等;
  • 学习的广度和深度,依据需要针对性学习,学了要用起来,要有总结和记载;
  • 有方案、有必定强度的继续学习,铢积寸累;

经验共享

  • 工作中提高开发功率,每天要完结的使命列个列表,按优先级和紧急程度次序完结,真实无法按时完结要及时主动的和上级领导交流;
  • IT职业加班是常态,简直一切公司都无法防止,要尽量按时吃饭。身体是自己的,照顾好自己,每周进行锻炼(例如跑步/打篮球等);
  • 学会理财,人生本就起起落落,没有谁是一往无前的,但只要存下来的钱,是你失落时最大的支撑;
  • 办理自己的情绪,而办理情绪最好的方式是,不生闲气、不争对错、不理烂人