Ruff破局IoT 困境的思考
扫描二维码
随时随地手机看文章
IoT 时代可以说是互联网的下一代,将更多的物和设备连接起来。IoT 时代硬件,已经不再是做一款独立的硬件,IoT 研发已经进入困境,为此Ruff 进行了一次破局 IoT 研发困境的尝试。
提及 IoT(物联网,Internet of Things),几乎整个 IT 行业的共识是未来一定会是一个 IoT 时代,继互联网时代将更多的人连接到一起之后,IoT 时代将会把更多的物(Thing)连接起来。但是,一说到 IoT 的研发,人们的第一反应通常是,物就是硬件,做硬件就要懂嵌入式,所以,IoT 开发就是嵌入式开发。于是,我们看到在 IoT 的指引下,各大硬件厂商和嵌入式操作系统厂商摇旗呐喊,纷纷畅想着 IoT 的未来,而现在的 IoT 行业状态却是,只问脚步声,未见人下来。为什么会这样?我们不妨简要分析一下。
1 IoT 研发困境
• 产品经理与硬件工程师难以协同
在 IoT 时代,做一个硬件,已经不再是做一款独立的硬件,本质上,它就是一个产品,与这个时代的其它产品没有区别。无论是硬件厂商,还是操作系统厂商,他们拥有的都是研发实力,但在产品上却不是强项。而哪里拥有最多的产品经理呢?现在的答案是互联网公司。但为什么互联网的产品经理不来做物联网呢?
不是没有,而是很难。
曾经有一个互联网产品经理看到了 IoT 的未来,决心投身这个未来,做一款改变世界的硬件产品。根据互联网思维的做事方式,他说,我先要做一个东西先试错,因为我也不确定对这个产品是否是对的。他把这个想法给了硬件工程师,硬件工程师说,我要做六个月。当时这个互联网产品经理就崩溃了,说我从来都有想法大概两周试出来,你告诉我要六个月。双方很努力的协调之后,硬件工程师按照他把初步的想法做出一个东西。临近实现结束,产品经理出来说,我有一个新的想法,这回轮到硬件工程师崩溃了。
• 瀑布式研发
双方之所以会有如此大的差异,本质上,是因为双方在用不同的工作模式在工作。硬件研发属于瀑布式开发,而互联网产品研发则采用的是敏捷软件开发,双方对于开发节奏的理解截然不同。瀑布式要求一次性做好所有的事情,而敏捷开发则要不断地试错。在20年前,软件行业的主流开发方式也是瀑布式的,但对于这个需要快速响应变化的年代,瀑布式研发显得越加不合时宜了。
• 重复造轮子
在硬件行业里,有一个典型的现象,在一个项目做好的东西很难用到另外一个项目上,比如,TCP/IP 协议栈,即便你已经烂熟于胸,拿到一款新的硬件,往往要重来一次。对于这种现象,在软件行业里,有一个常用的说法:重复造轮子。这在某种程度上是一种浪费,放在行业的角度,这种浪费现象更加严重,你在一个硬件上做的一个工作,在其它公司,会有另外的工程师做着同样的事情,然而你不知道,没法用。在行业中,如此大规模的浪费导致整个行业进展缓慢。
• 系统与应用一体
IoT 时代需要的必然产品本质上就是一个应用,但在硬件行业里,大多数人并不能将应用与系统分开,做一款硬件产品,往往需要从硬件到系统,再到上层的应用一起做。这样的做法带来的后果往往是,系统与应用常常混淆在一起,做过开发的人都知道,这也通常意味着代码混杂在一起,维护的难度系数便直线上升。此外,这还有一个隐含的要求,做硬件的人要懂得从系统到应用的各种知识。
今时今日,前端工程师已经 IT 行业里一个主流的职位。但你不妨同前端工程师交流一下,看有多少前端工程师知道,屏幕上显示的点到底是怎么显示出来的,总的来说,比例不会高,除非他自己非常有热情的去研究这些东西。而在嵌入式领域,要做一个应用必须知道各种细节,包括底层的寄存器。从某种程度上说,这是对人的要求非常非常高。
这种高要求导致嵌入式行业人才培养也极其困难,即便是一个计算机专业的学生,真正理解操作系统,理解硬件底层是怎么运作都是一件有很高难度的事情。我们看到一个很无情的现实是,虽然我们以为嵌入式领域人才已经很多了,但是与做软件的人比起来做嵌入式的人,数量还是太少。