1.市场调研/需求分析/项目立项
通过市场调研,产品经理会出一份需求文档,陈述用户痛点或行业需求,分析解决方案,通过文字或图文的方式描述清楚逻辑关系。
经过需求分析阶段,就可以进入项目立项。
2.原型与交互设计/APP开发
根据需求文档,产品经理进行会进行原型图的设计,包括功能的结构性布局、各分页面的设计和页面间业务逻辑的设计,最终输出原型设计图。UI设计师会对原型设计图进行界面相关的配色设计、功能具体化处理、交互设计以及各种机型、系统的适配,最终输出高保真设计图。
APP工程师根据高保真设计图进行界面开发;服务端工程师会进行编写API接口、服务器环境架设和数据库设计;开发进行到一定阶段,APP工程师会和服务端对接,通过服务端的接口获取数据,编写功能上的逻辑代码。
3.硬件开发
在产品立项后,硬件工程师需要根据需求着手选择硬件平台,从功能需求、性能要求、技术支持、成本评估和供货情况等方面来进行评估。
硬件功能和性能需求的评估主要是对主芯片的选择,需要对主芯片资源、存储容量及速度、IO口分配、接口资源等进行具体分析和对比。主芯片确定后,还需要根据分集功能来确定其他关键器件,达到整体方案性能最优和成本最优。主芯片确定后,基本就确定了软件驱动层设计的细节实现。
硬件整体方案确定后,那么进入开发阶段:硬件原理图设计、PCB板设计与制作、BOM清单、PCB板贴片。
3.1原理图设计
3.2PCB设计
PCB制作回来后,需要对PCB板焊接2~4块单板转交软件工程师调试,对原理图设计的各个功能模块进行调测,经过调试后在原理及PCB布线方面如果有调整,那么需进行第二次投板。
做一个硬件产品比单纯做软件产品的周期和链条更长,而且硬件是一个很靠经验的技术活,任何的试错都要付出高昂的成本,只有丰富的经验才能够避免走弯路。硬件平台的稳定是产品稳定的基石,只有基石稳定了,才能支持软件开发的丰富性。
4.嵌入式软件开发
嵌入式软件开发的一般流程为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。与一般的软件开发区别主要在于软件实现的编译和调试为交叉编译与交叉调试。
在需求明确后,可以先进行软件详细设计:软件架构设计、功能函数接口定义(函数功能接口完成功能,数据结构,全局变量)、完成任务时各个功能函数接口调用流程。在完成了软件模块详细设计以后,就进入具体的编码阶段,在软件模块详细设计的指导下,完成整个系统的软件编码。
软件工程师在拿到硬件PCBA板子后,会用设计好的PCBA进行软件验证与实际调试,发现实际与理论中存在的细节问题,改进设计过程中的不足之处。
5.工业和结构设计
工业设计主要进行产品的外观造型设计,比例是否协调,产品看起来是否漂亮?手稿往往能快速表现创造者的想法。
外观造型确定后,结构工程师会根据PCBA板的尺寸大小进行内部结构设计,考虑可靠性、强度和防水性能等。
结构设计完成,可以进行模具的开模。
6.小批试产/公测/量产
小批试产时,生产工程师需要跟踪SMT贴片和组装工艺问题,优化测试工艺,提高生产良率,为量产铺平道路。
有的电子元器件在特殊温度下,参数就会异常,导致整个产品出现故障或失灵现象的出现;有的产品在零下几十度的情况下,根本就启动不了,开不了机;有的产品在高温下,电容或电阻值就会产生物理的变化,这些都会影响到产品的质量。
对于小批产品,我们需要进行功能测试、压力测试、性能测试、抗干扰测试、产品寿命测试、高低温测试等可靠性和性能测试。
小批试产后的产品,一部分会投入到研发测试和可靠性测试中,一部分产品会投入到公测,直接面对种子的试用和评测。
经过研发测试和公测的验证,确认产品所有流程没有问题后,可以进入产品量产。
7.质量反馈/大数据分析
产品批量生产后投入市场,用户经过一段时间使用(一般3~6个月),可能会反馈测试中不能发现的隐蔽或小概率发生的问题,那么研发会根据具体案例进行详细分析,找到根本原因来改进和优化产品。