因为从1985年开始的20年时间里,在中国单片机几乎成了嵌入式系统的代名词。大多数单片机应用程序在1~8K之间,代码量相对来说比较少,以至于大量电子产品的软件开发模式几乎还停留在单兵作战的状态。
近年来,随着嵌入式技术的高速发展,代码量越来越大,不可移植且不可复用的代码从而导致产品上市时间一再延误,在将软件交付使用之前依然无法找到所有的错误,代码的维护难度也越来越大,以及软件开发与维护的过程仍旧难以度量,企业被竞争对手打败的现象累见不鲜,开发成本居高不下,软件呈现危机。我从业三十年来,不仅见证了IT技术的高速发展,而且也经历了新产品的开发由单兵作战到团队开发的痛苦转变过程,事实上软件在创新中所起到的作用越来越大。
那么,软件的核心竞争力是什么呢?软件的核心竞争力就是一个软件做出来难以模仿。当一个软件上市后,通过使用即可知道具有哪些功能,因此功能性需求是很容易模仿的,而难以模仿的主要是软件设计方法、数据结构与算法(请注意:不是指我们在学校学到的所谓排序、搜索、链表等数据结构与算法,而是指数据结构与算法工程),这也是卓越工程师与普通工程师的差别所在。事实上,算法与数据结构以及库与模块化软件设计是软件技术的核心,而代码重用则是程序设计的重点之一。 |