从“绑好鞋带”谈嵌入式系统开发
曾收到别人寄来的一则网路连结,是连结到TED (Technology, Entertainment Design)网站上一则2005年TED大会中的演讲影片【注一】,影片内容是告诉我们该如何把鞋带「确实」绑好。
这则影片很值得一看,从脸书( Facebook )上围绕着这则影片所作的诸多讨论看来,似乎大多数人习以为常的绑鞋带方法都错了。老实说,我曾经试着用影片中介绍的那套「正确方法」来绑鞋带,结果证明真的有非常显著的改善。试着改用这套「正确方法」来绑鞋带,的确可以让绑好的鞋带看起来比较美观,也更牢固。不过,若要改用这套新的方法,则需要多花点时间努力练习来改变以往绑鞋带的习惯。
您一定觉得奇怪,绑鞋带跟嵌入式系统开发到底有何关系?没错,这两者表面上是有点八竿子打不着,但是箇中隐含的道理却是共通的。要用更好、更有效的方法来做事情,需要具备三个条件:首先必须了解,大家通常是如何做这些事情的(其中的错误症结在哪)?再来是必须拥有足够的知识,知道这些事情应该要如何处理才会比较好(正确的解决方案为何)?最后则是必须投入一定的时间和精力,才能改变原先的做事习惯(如何付诸实行)?
在我们所处的嵌入式系统世界里,常常可以很容易看到到一些很有问题的做事或问题处理方式,无论是太慢、太贵、太多错误(Bugs),或是其他想得或到想不到的问题等等,反正要找出有问题的事情永远都不是件因难的事,反倒是要找出更好或更有效率的方法来做事却是难上加难;此外,该如何找出最恰当的时机和动机作出改变,才是真正最困难的部分。
去年我参加过一场益华电脑( Cadence )举办的活动。活动中有一位讲师指出,硬体工程师的日子可说越来越难过了,因为他们除了要做好手边的硬体设计工作外,还被寄望必须开始去思考如何支援软体开发方面的工作。
请想想,如果你是硬体工程师,怎会有时间去思考那些软体的东西呢?原本你应该就非常忙碌了,忙到就快没办法搞定指派给你的那些硬体设计工作,此时又要你设法去兼顾整个产品设计流程,这种要求无疑是天方夜谭。实际情况应该是,如果真的想作出改变,你就得先有停下脚步喘息的空档,稍稍退一步想想,然后好好思索接下来你应该做什么?又该怎么做?
当我们向新用户介绍Wind River的虚拟化平台「Simics」时,就常常碰到这个问题。理论上,Simics当然可以提供许多非常有用的功能,这些极富潜力的功能有助于改善原先的开发流程,使开发流程变得更好、更有效率(请参考其他文章进一步了解Simics可以做些什么【注二】 )。
但是,若要把Simics所提供的强大功能转化为可实际改善开发流程的助力,那么不仅还需要真正了解其运作原理,同时也需要时间实际导入部署,并改变工作团队原本的思维模式及作业习惯。
说到最后,这一切仍是牵涉到领导以及管理。我们需要给每位工程师足够的时间并提出有效的激励方案,好让他们愿意尝试新的工具,或是找出新的方法来使用旧的工具。对某些案例来说,导入新的作法就像你试着用更好的方法绑鞋带一样简单易行;不过对其他案例来说,导入新作法却困难多了。
就好比得先召集一千个人,然后说服他们为什么要改穿有鞋带的鞋子而不再穿用魔鬼毡固定的凉鞋,接着还得教导他们用特定的方法来绑好这些新奇玩意儿的带子。当然,一定也会有些人根本就还没意会到鞋子是有鞋带的,而这些人也会不断绊倒自己并让自己受伤,因为他们的鞋带一直都是松垮垮的,并没真正绑好。
从上述案例来看,无论是透过哪种途径开始绑鞋带,至少都已经开始尝试绑鞋带了,也就是说你已经开始有所改变并作出改善了,不管如何总是好事一桩。顺带一提,因为某些未知的原因,大部分跟我一起跳摇摆舞(Swing Dancing)的朋友早就都已知道绑鞋带的正确方法了。我猜,或许是正确绑好鞋带这件事,对某些特定的人事物来说格外重要吧?
总之,如果你想要做事快捷有效率,那你一定得先花点时间找出对的方法来做事情!
备注
【注一】TED网站(Terry Moore: How to tie your shoes):http://www.ted.com/talks/terry_moore_how_to_tie_your_shoes.html
【注二】Simics特点介绍:http://blogs.windriver.com/wind_river_blog/simics/
(本文转自电子工程世界:http://www.eeworld.com.cn/qrs/2012/0724/article_11198.html)
程序员需要了解的硬核知识之控制硬件(二) 我们作为程序员一般很少直接操控硬件,我们一般通过 C、Java 等高级语言编写的程序起到间接控制硬件的作用。所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 全权负责的。
程序员需要了解的硬核知识之控制硬件(一) 我们作为程序员一般很少直接操控硬件,我们一般通过 C、Java 等高级语言编写的程序起到间接控制硬件的作用。所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 全权负责的。
相关文章
- 【嵌入式Linux应用开发】温湿度监控系统——学习paho mqtt的基本操作
- 《安富莱嵌入式周报》第273期:2022.07.04--2022.07.10
- 【函数指针的高级应用】嵌入式系统如何从boot程序运行kernel程序?
- Linux嵌入式开发——shell命令
- 嵌入式:ARM嵌入式系统开发流程概述
- 嵌入式系统底层软件的复杂性
- 毫无保留,这是我全部的嵌入式学习&秋招经验!
- 嵌入式Linux编程:从入门到精通(嵌入式linux编程入门)
- 精准的嵌入式Linux地图:改变市场轨迹(嵌入式linux地图)
- 嵌入式Linux系统下的软件键盘(嵌入式linux软键盘)
- 实现自主可控:嵌入式Linux内核移植(嵌入式linux内核移植)
- 嵌入式Linux下数据库助力系统转型(嵌入式linux数据库)
- 开启嵌入式Linux之旅:学习系统编程(嵌入式系统编程linux)
- Linux嵌入式系统设计:激发潜能的崭新之路(linux嵌入式设计)
- 开发基于Linux系统的Qt嵌入式应用(linuxqt嵌入式)
- 探索Linux嵌入式系统之旅(linux嵌入式学习)
- 嵌入式Linux系统的问题及解决方案(嵌入式linux系统缺点)
- Linux嵌入式系统调试实战(linux嵌入式调试)
- Linux嵌入式系统技术实战指南(linux嵌入式的书)
- 实现梦想:开发嵌入式Linux系统(开发嵌入式linux系统)
- 嵌入式裁剪:让Linux系统节约空间(嵌入式裁剪linux系统)
- 嵌入式系统中的Oracle数据库应用(嵌入式oracle)
- Linux:嵌入式操作系统还是传统操作系统?(linux是嵌入式系统吗)
- Linux嵌入式系统内核编译实践(linux嵌入式编译内核)
- 国产嵌入式设备:移植Linux操作系统的成功实践(国嵌linux系统移植)
- 嵌入式Linux开发:从入门到精通的标准教程(嵌入式linux系统开发标准教程)
- Linux下SDCC编译器:高效开发嵌入式系统的利器(linuxsdcc)
- Sam Ba Linux:嵌入式系统开发新宠儿(sambalinux)
- 深入探究Linux串口源代码——学习嵌入式系统开发的第一步(linux串口源代码)