背景
传统的终端设备研发生产公司,虽然在专业领域有固定的客户市场,但受限于客户需求多样化定制的研发模式,产品销量达不到批量化生产,设备型号多,业绩有限。
本文尝试总结下公司在成长过程中,软件开发现状以及面临的一系列问题。
开发模式
- 程序员单兵作战,对个人能力要求高,开发过程涵盖底层硬件芯片协议、操作系统下多任务、上位机网络监控及OS驱动,要能搞定多种处理器、微控制器;
- 缺少团队配合,多程序员团队开发时效率低;
- 技术共享氛围不浓,各扫门前雪;同事新员工技术培训不够“落地”,培训内容缺乏实用性。
需求变化
- 客户对设备的个性化要求高,从外观结构到通信协议,均需要适应用户需求;
- 公司设备只是客户业务系统里的一小部分,设备在联试过程中需要适应客户的系统变化;
- 配套PC软件前期需求不明确,只提大概要求,当软件成形后,客户根据偏好随意增减功能。
质量控制
- 合同签订周期短,要求快速交付定制类设备,当前期硬件设计和元器件采购占用太多时间后,后期软件调试时间短,在交付压力大的情况下又缺乏测试时间,难免出现软件质量问题;
- 终端设备软件跟硬件耦合紧密,当设备出现质量问题时,问题解耦困难,定位排查将花费大量人力;
- 公司缺乏专业领域的通用设计规范和通用测试手段,软件功能设计难以约束,一旦监管新手不到位,后期少不了出差修修补补。
思考:怎么解决硬件设备公司的软件之伤?
- 不管公司规模大小,人员要分梯队,设计测试流程不能少,团队技术要共享,避免“小作坊式开发”模式;
- 从产品角度与硬件设计部门协调确定通用的设备内部架构和模块,底层硬件模块固定才能提前备货,才能加大测试力度,才能快速出货。
以上,我想职业的态度应该是能利用争取到的资源解决难题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。