- UID
- 856476
|
起因:
我在一个小公司工作,主要领域是嵌入式测试测量。去年,得到个消息,某上市公司对于一款仪器有需求,该仪器国外有现成产品,但是贵。国内也有类似产品,但是不太符合需求。简单说,他们想定制一款仪器。
和他们技术人员接触后,他们提供了技术指标,指标虽然有些苛刻,但是经研究,我们基本还是能实现的,而且指标高能体现出我们的技术实力。还有对于仪器稳定性要求非常高,要求能连续稳定运行1000+小时。这对于一款最大200W多路输出的功放类仪器来说,工艺要求很高。
经过简单研究,我们觉得能实现,就立项了。双方没有签署任何协议,我们想,东西好了,自然会要,而且初期小公司人家也看不上,只有硬着头皮上。
经过:
第一阶段,我们加工机箱外壳,设计电源,设计控制电路,功放输出电路,很快组装了第一台样机,软件实现了基本功能。硬件基本达到指标(指标定的太高,可能是对方技术人员想考研我们实力,后来他说按照芯片手册定的)。在对方催促下,我们去第一次样机演示,他们还是比较感兴趣的。当然,这里还有很多问题,软件,硬件上的。
第二阶段,根据提供的反馈,把技术指标又提高了,软件功能继续完善后,第二次拿去试用。试用过程中,发现在某些边界条件下,检测出现误判。拿回来修改。
第三阶段,继续完善软件,长期测试后,又拿去测试,这回发现,长时间运行中,有随机通道会出现检测错误,甚至输出电压过高,这个是对方零容忍的。这次明显感觉到对方态度有些转变。
第四阶段,又做了一台样机,两台仪器运行测试,修正优化了很多软硬件问题。发现了数据传输随机错误原因(FPGA时序问题,可能代码编写不规范,优化不到位,导致有概率很低的随机错误。后来进行了时序约束,软件仿真大大改善,但仍然未完全解决。但是硬件随机错误再也没出现,为了赶进度,先凑合用,后面再继续找解决办法)。
我们带着两台样机信心满满去了,结果接上电,对方一操作,就出现个软件bug。还好不影响,运行一夜,一台死机。当时想死的心都有了,拉回来查了一下午,发现cpld有两根引脚虚焊,也不知道怎么回事,反正我强迫自己和对方相信是路上颠的。修好了,拿去演示,一操作又发现个软件bug。疯了。对方试用时,明确说了,这是最后一次机会了。
反思:
目前还在试用中,但是我觉得不管以后怎样,在我心里这个项目已经是失败了,失败总结如下:
1. 没有上层路线
我们走的是小众,定制路线,也承认想拼命往大公司靠。但我们从得到信息与一直接触的,都始终是实验室技术人员,也就是最终使用人员。做的不好,他们*毙;做的好了,他们往上申请,成不成还要看上意。而且前期样机研发没有任何经费,就算要了,如果达不到一定数量,也无法稀释研发成本。
而且在大公司的打工者,如果不是特别有把握,否则他们宁愿延续旧的瑕疵,也不太接收新的事物。明哲保身的想法,这也正常。
2. 不了解需求
搞技术出身的,拿到技术指标后,认为能做,就上马。对技术指标更像是答一份试卷,进行技术能力的展示,并乐此不疲,从中得到满足。
指标提高10%,对时间精力成本则是数倍的投入。在使用中,发现用户对这些不是特别感兴趣,定的1%精度,5%他们也没问题。
但他们真正需求是长时间稳定性。感觉我们80%精力花在他们20%需求上了。
3.测试问题
深刻体会到“你觉得可能有问题,演示时肯定出问题。你觉得肯定没问题,演示时可能会出问题”。有时候总爱拿比尔盖茨98蓝屏来安慰自己。
使用者和设计者思路是不一样的,使用者总会出乎你意料的进行操作,软件保护防御做的不够好,就会引起各种bug。
前面提到的时序问题,虚焊问题,回想起来也是有先兆的,后来现象不明显或暂时消失,就祈祷别再出现了,可是事与愿违。
看人月神话,不负责任的回忆,里面有一章好像说,一个软件产品前期规划设计1/3,编码1/6,测试1/2。现在想想看,是有一定道理的。
对于一个较为复杂的设备,3-6个月设计出样机,感觉已经到了我们最大能力范围了。对于所有部分测试难免会有疏漏,而且理论上,软件每修改一次,都需要重新全面测试。这个是我们所不能承担的工作量。而且每修改一次,我们都至少7x24连续运行一周空载,轻负载,重负载测试。不管时间上还是精力上,都是一种考验。
很多公司很看重time to market,哪怕产品有缺陷,先把坑占住,后面再慢慢弥补,比如Xbox游戏机。
但有些地方可能不适用,比如我们,给专业人员试用,从无到有给自己创造机会,每出现一次错误,就会减分。做的好的,这时候是看不到的。问题确被无限放大。所以还是那句话,给客户展示时,一定要充分测试,否则事倍功半。当然,有爹拼的除外。
4.没有签署协议
对技术过于自信,对市场过于乐观,对口头承诺过于信任。导致后期很被动。
签署协议,对大家都是一个负责任的做法。
我们当时是赌博的心理,如果成功了,那就不说啥了。但是对一般公司决策来说,要有“逢赌必输”的觉悟。输得起,再赌。 |
|