一、要搞清楚客户的需求。客户写的需求书不一定全面,在与客户进行沟通的时候应发挥自己在电子设计领域的所长,帮助客户分析需求。一定要知道产品设计完成后客户的应用场合是什么。这一点非常重要,因为客户可能知道想要什么,但按需求书上设计出来的产品不一定就能满足应用。如果不了解,设计完成后客户发现不能用就不会愿意付后续的开发费用,大家不欢而散,浪费了双方的时间和经费。如果客户对应用场合保密,那在合同里就要注明开发方不为此负责。
二、设计上要有冗余。如果严格按照客户提出的技术指标进行设计,设计完成后往往难以达到要求的指标,比如采样率要求为40M,在设计上要往60M以上靠才有比较有把握的解决问题。
三、设计上尽量做到灵活。尤其是第一套设计方案,要尽可能考虑到如果这样设计不能解决问题,还应该有其它办法,在设计电路的时候把它也加上去。这样可以省去再一次画板、制板这个时间周期。
四、充分利用电路板加工中的时间。画好电路后要到厂家里去加工,多层板一般需要花1个星期的时间,在这段时间里可以编写代码,比如单片机的代码、DSP的代码或FPGA的代码,至少把软件的流程框架要设计完并进行仿真。电路板回来后就可以尽快调试软件。如果是进行FPGA设计,制板前最好在程序里把引脚绑定编译一次没有问题再发出去制板。
五、硬件要尽量软化。如果不影响技术指标,能软件解决尽量不要用硬件解决。这样可以比较灵活,出了问题调整软件可以大大的缩短开发时间。
六、基本功能实现后要尽快与客户沟通。听取客户的意见,客户看到实物后可能会有些新的想法和要求,这也是合理的。如果有必要,把需求在小范围内再调整一次。最重要的是要敲定硬件输入输出用什么插座,尺寸及安装问题,不要因为一个小的安装问题再多制一次多层板,花了时间还费钱。
接过项目的兄弟都知道,客户一旦提出需求,恨不能第二天你就能把它设计出来。在开发周期上需要注意的是产品从样机到稳定也需要时间。比如一个项目我估计两个月可以完成样机,我会把时间结点放在六个月上,两个月完成样机,一个月应付没有预计到的问题,另外三个月交样机给客户试用,在试用的过程中调整设计。把这个过程给客户说明白,一般而言是能得到客户的理解的。对于客户不能理解这种产品设计周期就可以考虑放弃这个单子,不然最后容易搞得大家都不愉快。
当然,要提高硬件开发的效率,设备也很重要,好的仿真器、示波器等都能给开发提高效率。说一点题外的,程序员有句口号“死了都要改”,这是目前开发者面临的现状。投资方要求总是会很多。一般而言,做好前期的需求分析最为重要,在设计基本完成后可以允许客户提出不过份补充需求,目的都是想把事做好,产品能为客户带来经济效益。