不要在小公司做底層軟件開發


       本博客與本人在csdn上的博客同步:https://blog.csdn.net/qiuzhizhecsd/article/details/78993953 轉載請注明出處

  在這里makekam對底層軟件的理解就是指驅動開發,代碼移植等工作。其中也包括底層的算法。在小公司做軟件不要做底層軟件開發,猶如在公司做硬件開發不要只是焊接電路板。
        小公司處於產業鏈的最末端,沒有自己的核心技術,只是針對用戶需求完成一些系統集成和定制。而核心技術具有普遍適用性如“組合導航技術”、“操作系統移植與軟件框架”等技術並不局限於某個領域,這些技術大公司可以集中力量突破,然后將技術賣給各個小公司。所以普遍適用性的技術往往來自大公司。因此,小公司的底層軟件要么是測試供應商的軟硬件產品,然后與供應商溝通測出的問題,要么是讓自己公司的代碼匹配供應商的產品,比如驅動開發、代碼移植等。這些工作往往代碼量奇少無比,體現不出高級程序員和低級程序員的區別,因為做這些事主要是看外設文檔,與供應商溝通。只要花費人和時間,這些事情都能完成。

        除此之外,做底層開發還要替硬件填坑背鍋。小公司缺少硬件測試流程,問題往往在產品運行時才能發現。假設makekam是做底層軟件開發的,當做硬件的人焊接的板子有問題時,這些問題往往無法徹底排除是軟件導致的,所以做底層軟件的makekam就要花幾天時間把底層代碼查個遍來分析問題,最后才能讓硬件的人用十五分鍾解決問題。

        也許你會說,做底層軟件做的多了不就積累了很多經驗嗎?其實不然,只要公司決定出錢購買另一款外圍設備,那么之前的經驗就很難用得上了。而且底層開發代碼量很小,只是匹配主控芯片和外設,哪里有什么創新,哪里有什么復雜度?而且更重要的是,公司的領導心里永遠不惦記你,這是因為,公司領導想的都是公司的項目,而這些項目的主要困難是什么?絕不是底層軟件開發!底層軟件開發只需要人和時間就一定可以完成,這是一個必然事件。而充滿不確定性的應用層開發和項目成本估算還有項目需求分析才是這個項目成敗的關鍵。因此,對於領導來說,在項目確定之前需要和三個人溝通,第一是和客戶溝通,因為客戶決定產品研發方向,第二是和外設供應商溝通,因為只有外設供應商才知道項目的開發平台的屬性與成本。第三是和做應用開發的人溝通,因為項目的主要工作量是在應用層。領導不會和做底層軟件的人溝通,因為底層軟件只是一個橋梁,一個台階,一個墊腳石。底層軟件做的再好,也只不過是把系統做穩定,項目的價值的提升取決於業務目標和應用開發。

        總之,在小公司,面向客戶,面向應用才有前途。因為小公司存在的意義就是面向客戶整合產業鏈上游資源。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM