IoT 時代可以說是互聯(lián)網(wǎng)的下一代,將更多的物和設(shè)備連接起來。IoT 時代硬件,已經(jīng)不再是做一款獨立的硬件,IoT 研發(fā)已經(jīng)進入困境,為此Ruff 進行了一次破局 IoT 研發(fā)困境的嘗試。
提及 IoT(物聯(lián)網(wǎng),Internet of Things),幾乎整個 IT 行業(yè)的共識是未來一定會是一個 IoT 時代,繼互聯(lián)網(wǎng)時代將更多的人連接到一起之后,IoT 時代將會把更多的物(Thing)連接起來。但是,一說到 IoT 的研發(fā),人們的第一反應(yīng)通常是,物就是硬件,做硬件就要懂嵌入式,所以,IoT 開發(fā)就是嵌入式開發(fā)。于是,我們看到在 IoT 的指引下,各大硬件廠商和嵌入式操作系統(tǒng)廠商搖旗吶喊,紛紛暢想著 IoT 的未來,而現(xiàn)在的 IoT 行業(yè)狀態(tài)卻是,只問腳步聲,未見人下來。為什么會這樣?我們不妨簡要分析一下。
1 IoT 研發(fā)困境
• 產(chǎn)品經(jīng)理與硬件工程師難以協(xié)同
在 IoT 時代,做一個硬件,已經(jīng)不再是做一款獨立的硬件,本質(zhì)上,它就是一個產(chǎn)品,與這個時代的其它產(chǎn)品沒有區(qū)別。無論是硬件廠商,還是操作系統(tǒng)廠商,他們擁有的都是研發(fā)實力,但在產(chǎn)品上卻不是強項。而哪里擁有最多的產(chǎn)品經(jīng)理呢?現(xiàn)在的答案是互聯(lián)網(wǎng)公司。但為什么互聯(lián)網(wǎng)的產(chǎn)品經(jīng)理不來做物聯(lián)網(wǎng)呢?
不是沒有,而是很難。
曾經(jīng)有一個互聯(lián)網(wǎng)產(chǎn)品經(jīng)理看到了 IoT 的未來,決心投身這個未來,做一款改變世界的硬件產(chǎn)品。根據(jù)互聯(lián)網(wǎng)思維的做事方式,他說,我先要做一個東西先試錯,因為我也不確定對這個產(chǎn)品是否是對的。他把這個想法給了硬件工程師,硬件工程師說,我要做六個月。當時這個互聯(lián)網(wǎng)產(chǎn)品經(jīng)理就崩潰了,說我從來都有想法大概兩周試出來,你告訴我要六個月。雙方很努力的協(xié)調(diào)之后,硬件工程師按照他把初步的想法做出一個東西。臨近實現(xiàn)結(jié)束,產(chǎn)品經(jīng)理出來說,我有一個新的想法,這回輪到硬件工程師崩潰了。
• 瀑布式研發(fā)
雙方之所以會有如此大的差異,本質(zhì)上,是因為雙方在用不同的工作模式在工作。硬件研發(fā)屬于瀑布式開發(fā),而互聯(lián)網(wǎng)產(chǎn)品研發(fā)則采用的是敏捷軟件開發(fā),雙方對于開發(fā)節(jié)奏的理解截然不同。瀑布式要求一次性做好所有的事情,而敏捷開發(fā)則要不斷地試錯。在20年前,軟件行業(yè)的主流開發(fā)方式也是瀑布式的,但對于這個需要快速響應(yīng)變化的年代,瀑布式研發(fā)顯得越加不合時宜了。
• 重復(fù)造輪子
在硬件行業(yè)里,有一個典型的現(xiàn)象,在一個項目做好的東西很難用到另外一個項目上,比如,TCP/IP 協(xié)議棧,即便你已經(jīng)爛熟于胸,拿到一款新的硬件,往往要重來一次。對于這種現(xiàn)象,在軟件行業(yè)里,有一個常用的說法:重復(fù)造輪子。這在某種程度上是一種浪費,放在行業(yè)的角度,這種浪費現(xiàn)象更加嚴重,你在一個硬件上做的一個工作,在其它公司,會有另外的工程師做著同樣的事情,然而你不知道,沒法用。在行業(yè)中,如此大規(guī)模的浪費導(dǎo)致整個行業(yè)進展緩慢。
• 系統(tǒng)與應(yīng)用一體
IoT 時代需要的必然產(chǎn)品本質(zhì)上就是一個應(yīng)用,但在硬件行業(yè)里,大多數(shù)人并不能將應(yīng)用與系統(tǒng)分開,做一款硬件產(chǎn)品,往往需要從硬件到系統(tǒng),再到上層的應(yīng)用一起做。這樣的做法帶來的后果往往是,系統(tǒng)與應(yīng)用常?;煜谝黄穑鲞^開發(fā)的人都知道,這也通常意味著代碼混雜在一起,維護的難度系數(shù)便直線上升。此外,這還有一個隱含的要求,做硬件的人要懂得從系統(tǒng)到應(yīng)用的各種知識。
今時今日,前端工程師已經(jīng) IT 行業(yè)里一個主流的職位。但你不妨同前端工程師交流一下,看有多少前端工程師知道,屏幕上顯示的點到底是怎么顯示出來的,總的來說,比例不會高,除非他自己非常有熱情的去研究這些東西。而在嵌入式領(lǐng)域,要做一個應(yīng)用必須知道各種細節(jié),包括底層的寄存器。從某種程度上說,這是對人的要求非常非常高。
這種高要求導(dǎo)致嵌入式行業(yè)人才培養(yǎng)也極其困難,即便是一個計算機專業(yè)的學(xué)生,真正理解操作系統(tǒng),理解硬件底層是怎么運作都是一件有很高難度的事情。我們看到一個很無情的現(xiàn)實是,雖然我們以為嵌入式領(lǐng)域人才已經(jīng)很多了,但是與做軟件的人比起來做嵌入式的人,數(shù)量還是太少。