将产品投入市场的速度对产品的成功与否至关重要。对于创业团队和小规模企业来说,面对在尽可能短的时间发布嵌入式软件项目的压力也就更大。下面所阐述的5个加速固件开发的小贴士,尽管它们显而易见,但是在实践中很少得到很好的应用。
1
指定一个可行的计划
在过去的几年内,我曾遇到很多的这样的项目,从项目的开始阶段,开发人员的进度往往落后于计划数个星期。项目管理者在对功能的复杂性和可能遇到的技术难点预计不足情况下,就为产品设定了一个交付日期,如果产品在设定的时间内没有交付,他们就认为项目是失败的。
造成总是落后于进度的原因在于开发人员常常在压力下工作。在高压力的环境下,人体会分泌肾上腺皮质醇供给给大脑。肾上腺皮质醇将会降低人的推理和判断的能力。为了赶进度,而让团队在高压力下工作,这样往往达不到你所想要的结果。制定一个合理的计划,将有效的缓解压力,让工程师更高效的工作。从而保证项目按照计划完成。
2
优先设计架构
当交付的时间很短时,开发人员的第一反应是跳过架构设计阶段,直接开始软件开发。之所以这样想,是因为时间很紧迫,进行软件架构固然好,但是太费时了。
为了更快交付软件,开发人员需要仔细思考软件的设计,并计划好所要做的事项。架构是软件产品的蓝图。没有架构,开发人员是无法交付正确的固件,就如同没有蓝图,建筑工人是无法建造楼房一样。
3
不要重复制作自己的调度器
对于嵌入式软件开发者来说,编写一个实时调度器或者实时操作系统(RTOS)是让人兴奋的有益的尝试。问题是从零开始设计一个调度器,要让这个调度器在所有操作条件下都正常工作,需要很大的努力可以做到的。开发人员需要浪费大量的时间用在设计固件组件,而这些组件已经存在于许多市面上的实时操作系统上了。一些实时操作系统,例如 FreeRTOS,是免费的。其他的也就需要很少的费用。利用商业化现成的调度器,而不是自己开发,这样可以缩短开发周期,甚至有可能大大提高系统的质量和稳定性。
4
利用现有的中间件和驱动框架
微控制器已经变得极其复杂,其功能已经和90年代中期的通用计算机的处理单元相当。高端的微控制器有板载缓存、DMA和大量的外围设备,并以超出200MHz的时钟频率运行。从新开始设计开发这样复杂的设备将会耗费大把的时间。
应该把时间花在寻找设备供应商或者第三方组件提供者,这样可以把注意力从硬件设计转移到软件实施阶段。利用现有的中间件和驱动程序的框架,可以让开发人员把精力放在产品差异性和特性的开发上,而不是放在研究硬件如何工作上。
5
找对人
软件工程师是高智商的人群,他们无所不能。问题是如果工程师是对某个应用领域不熟悉,他们往往会花很多的时间,尽管他们无所不能。
当交付时间很短,不要把没有经验的菜鸟放入项目组中,取而代之的是某个领域的专家。也许大家都知道要用专家,但是由于时间紧迫,许多团队随便调配一些人加入项目组。这样做的结果会使项目失去推动力,造成延迟交付。从短期来看,使用领域专家需要更多的钱,但是从长远看,项目可以按时交付,开发的功能正确,这些远远超出了付出的金钱。
最后一些想法:也许有人会认为这些如何缓解项目时间压力、按时交付项目的贴士说起来很显而易见,做起来难。以上五个贴士看起来都是常识。但是当压力来临,这些常识经常会被抛出九霄云外。只有认真和纪律性强的工程师和团队才能时刻保持警醒,按照这些常识来行事。