研發團隊管理:IT研發中項目和產品原來區別那麼大,項目級的項目是項目,產品級的項目是產品!!!

若該文爲原創文章,轉載請註明原文出處
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/116087039前端

紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點擊傳送門)算法

其餘(編程相關)


前言

  從事IT行業多年,一路從小雜兵成長爲大團隊Leader,對於研發整個體系比較清楚,其實大多人都經歷過可是都忽略了的研發成本管控的一個關鍵的點就是研發過程當中項目級產品級的區別。編程


市場基本狀況

  在IT行業飛速發展的今天,能夠將IT公司分大致分爲兩類:windows

  • 一類是軟硬開發公司:多數定位是項目類公司,如某國際,某爲外包,此類型也可能是外包公司,小部分公司也作一些產品級的定製開發(通常是解決方案或者按照license出貨)。
  • 一類是產品提供商(服務類公司):有特定的產品,持續迭代,特定的時候,該類主體爲產品類公司。同時,不乏產品類公司作一些項目定製開發。

  其實以上二者並非必定區分那麼明顯,會根據市場發展須要進行轉變,大部分公司的路線都是項目級養活公司,逐漸走向產品級,最終轉爲產品提供商並作一些產品相關的項目開發,如國內某GPU廠。
  (PS:實際上稍微大一點的公司業務複雜程度,多樣化程度不亞於過年回家應付七大姑八婆,此處只粗略加以區分)服務器


請先思考如下問題(文章末尾解答)

  • 思考問題1:老闆1(你的老闆或者甲方客戶)但願作一個即時通信軟件,能實現聊天功能,文件傳輸功能,能查看哪些人在線,能發表情等等,是否能作?多長週期?成本多少?
  • 思考問題2:老闆2想要作一個三維引擎開發,但願將給的圖進行三維點雲渲染,能將其給的demo點雲進行展現和基本的三維場景功能,是否能作?多長週期?成本多少?
  • 思考問題3:老闆3想要作一個白板軟件,但願擁有某大廠的白板基本功能,是否能作?多長週期?成本多少?
  • 思考問題4:老闆4想要作一個物聯網服務器平臺,實現mqtt通信,從前端看便可,是否能作?多長週期?成本多少?
  • 思考問題5:老闆5想要作一個數據處理平臺,實現給定的幾百文件數據處理,達到功能,是否能作?多長週期?成本多少?
    (請帶着以上問題,往下看)


關鍵點

  作產品與作項目有哪些區別,大多數的人面對這個問題仍是較爲模糊的,甚至簡單認爲二者是沒有區別的,均是程序開發而已。但事實並不是如此,作產品與作項目二者之間既存在本質的區別。網絡


側重點不一樣

項目的側重點:時間和基本功能

  作項目側重於時間驅動,由於時間就是成本,要壓縮成本就要壓縮時間,在功能上力求操做敏捷、易用、友好,若是在項目時間緊迫的狀況下,至少要能保證每一個功能都基本能用、主流程不出現bug,如有功能性bug會進行修復。
  作項目是以客戶的需求爲根本,按照客戶的商定的需求進行定製開發,不明確的需求要第一時間與客戶進行溝通,不在溝通內的將會存在後期扯皮現象。框架

產品的側重點:時間、基本功能、體驗優化、方案優化、代碼優化和需求迭代升級

  作產品側重於功能體驗,作產品的時間相對來講比較充足,前期可採用帶產品型思惟的項目型管控方式,達到項目要求以後,進而不斷迭代優化修復優化非功能性bug。(團隊管理上,可稱之爲項目級Demo階段,即第一階段)
  要開發出有競爭力、受廣大客戶歡迎的產品爲原則,功能響應速度要相對體驗好,操做要簡便、界面要美觀,是多方努力的結果,並且週期每每以半年開始計算。(團隊管理上,可稱之爲產品級Demo階段,即第二階段,該階段的週期爲0.5~3倍時間於項目級Demo階段)
  作產品是爲了知足某一應用市場而針對性進行一套裝軟件或一個產品的開發,對於產品的性能以及快速迭代擴展的要求更高,產品的需求也並不像軟件項目同樣徹底明確,存在着後期根據需求、迭代升級的狀況。(團隊管理上,可稱之爲產品迭代升級階段,即第三階段)運維


構架與代碼質量要求

項目的質量要求

  作項目的第一準則是客戶的需求,項目的開發人員須要依據客戶的需求進行定製開發,而且項目須要保證功能適用於當前客戶的使用習慣,性能穩定,主功能流程不存在功能性bug;
  項目的質量更加側重於某一客戶的具體需求,保證交付的軟件項目程序可運行、維護,實現基本功能便可。
  簡單來講,項目的代碼怎麼方便怎麼來,通常不會考慮耦合度、代碼規範問題,研發儘快完成對應的任務便可,固然技術好的就算是項目型也會有統一的代碼規範和較低的耦合度。性能

產品的質量要求

  產品的質量要求更加側重於某一行業領域的應用場景,除主功能流程以外,對其餘體驗細節等進行優化,對代碼進行優化,最開始時就會進行總體的一個基本構架,包括編碼風格,模塊劃分等等,同時具有較好的可讀性,可維護性和持續開發,使其所匹配的應用性更爲普遍,而且對產品邏輯、代碼可運維的要求更高。
  作產品的性能必須持續優化,由於產品爲提高競爭力就必須比同類產品更好用,更敏捷,並且產品是一個不斷完善升級的過程,對代碼的框架以及維護性都具備更高的要求。
  簡單來講,產品的代碼兼具考慮後期拓展和總體構架,各開發者統一的代碼規範,較好的可讀性等等,代碼也比較健壯,邏輯清楚。測試


時間投入

項目的時間投入:

  作項目的時間投入通常是根據項目的需求,進行評估。一般是從項目啓動、需求調研、功能設計、業務開發、測試運行、驗收交付爲一個週期。
  項目有明確時間約束,何時開始,何時結束,每一個節點都須要一目瞭然。一般以項目的驗收單做爲分項的里程碑及總體驗收單做爲項目的交付證實。

產品的時間投入:

  作產品的時間相對來講比較長,產品一般更加關注的是整個產品的規劃、開發、推廣、維護等。
  產品時間通常來講能夠明確開始時間卻不能明確真正的結束時間,由於產品是一直在進行迭代完善的過程,一般會經過不一樣的產品版原本區分維護、優化、升級。能夠劃分爲三階段時間:

  • 項目Demo階段:考慮構架等時間會比純項目長
  • 產品Demo階段:基於以前的功能開始初版本的穩定性,體驗,各類非功能的bug和小優化
  • 產品優化迭代需求升級階段:對已有的功能進行各類優化,如播放器優化編解碼性能,如原來使用的延時500ms,提高爲400ms,看似小的優化,每每付出倒是比其Demo功能開發的週期更長。


解析文前的問題

思考問題1

  老闆1(你的老闆或者甲方客戶)但願作一個即時通信軟件,能實現聊天功能,文件傳輸功能,能查看哪些人在線,能發表情等等,是否能作?多長週期?成本多少?
  該問題須要進一步的溝通需求細節,實現通信軟件達到的具體功能點,以某種形式列出,而且列出相似的幾款產品相似的功能,具體確認其功能須要達到哪一種程度。才能進一步明確是否可行,週期,成本等,如下列出幾種常見的狀況:
-狀況一:老闆1要求的及時通信是知足基本要求,爲人相對好說話,公司內部使用,能基本聊天實現基本功能便可,完成驗收。
-狀況二:老闆1要求的及時通信是知足飛Q要求,實現基本要求,要達到200人同時在線羣聊溝通等,還須要表情文字,gif,文件傳輸須要達到10MB/S,同時不影響聊天,基本很難驗收。
-狀況三:老闆1使用後發現,QQ能作到多個羣聊多人在線,你這個爲何不行,QQ能夠同時作屏幕互動,語音這都是基本功能,以前說的基本功能就包括這些,根本沒法驗收。
-其餘狀況:只列舉三種相對結果好、中、差的狀況(日後的問題都是)。
  以上第一種狀況通常是合做愉快,二就比較棘手,三最後通常是不歡而散,一方吃虧或者可能在法院上見。

思考問題2

  老闆2想要作一個三維引擎開發,但願將給的圖進行三維點雲渲染,能將其給的demo點雲進行展現和基本的三維場景功能,是否能作?多長週期?成本多少?
-狀況一:老闆2要求引擎後,可以將其給的點雲打到展現的效果,評估時使用該點雲評估,完成驗收
-狀況二:老闆2要求引擎後,可以將其給的點雲打到展現的效果,進一步測試時,發現幾千萬的點雲加載慢,上億的點雲面渲染卡頓,進一步探討可行的解決方案,看狀況是否驗收
-狀況三:老闆2要求引擎後,可以將其給的點雲打到展現的效果,進一步測試時,發現幾千萬的點雲加載慢,上億的點雲面渲染卡頓,當初要求就是點雲渲染不卡頓,拿行業較好的軟件對比,如用opengl只顯示不卡,爲何用已有的開源引擎就卡,項目前的點雲給的幾千幾萬的點雲,評估天然也不一樣,包括費用,此種狀況根本沒法驗收

思考問題3

  老闆3想要作一個白板軟件,但願擁有某大廠的白板基本功能,是否能作?多長週期?成本多少?
-狀況一:前期對標某大廠的白板,基本功能,按照項目評估費用週期,後期達到基本功能需求,完成驗收
-狀況二:前期對標某大廠的白板,基本功能,按照項目評估費用週期,驗收時,如某某白板書寫的比較順和天然,能夠同時播放4個4K視頻,能夠各類繪製操做帶各類資源,老闆3仍是懂,一切商討,看狀況是否驗收
-狀況三:前期對標某大廠的白板,基本功能,按照項目評估費用週期,驗收時,如某某白板書寫的比較順和天然,能夠同時播放4個4K視頻,能夠各類繪製操做帶各類資源,此種沒法驗收,談的是項目,作的是產品,根本沒法驗收

思考問題4

  老闆4想要作一個物聯網服務器平臺,實現mqtt通信,從前端看便可,是否能作?多長週期?成本多少?
-狀況一:前期以單個傳感器談,能夠實現便可,mqtt本身能夠撐幾千個,達到基本功能,mqtt是否能撐住不在負責範圍內,按照項目評估費用週期,完成驗收
-狀況二:前期以單個傳感器談,能夠實現便可,達到基本功能,按照項目評估費用週期,後續說mqtt能夠承載幾萬,單實際沒法承載,一口說就是以前談的這個方案行得通,是你代碼問題,否則這個方案行不通,項目無心義,不付款,此種狗血劇情,只收了基本功能的錢,還讓承擔服務器,基本沒法驗收」。
-狀況三:前期以單個傳感器談,能夠實現便可,達到基本功能,按照項目評估費用週期,後續說mqtt能夠承載幾萬,單實際沒法承載,一口說就是以前談的這個方案行得通,是你代碼問題,否則這個方案行不通,項目無心義,不付款,與此同時,提供其餘方案,讓乙方寫一個能夠支撐幾萬人同時在線的交互服務器,此種狗血劇情真實存在,只收了基本功能的錢(幾千),還讓承擔幾十萬項目沒法實現的後果(其方案自己存在問題,非不積極解決),還要告乙方,基本沒法驗收

思考問題5

  老闆5想要作一個數據處理平臺,實現給定的幾百文件數據處理,達到功能,是否能作?多長週期?成本多少?
-狀況一:前期以處理的數據做爲理論依據,完成功能,基本知足便可,完成驗收
-狀況二:前期以處理的數據做爲理論依據,完成功能,回去測試以幾萬幾十萬的數據去測試,發現沒法承載,雙方溝通,自己作的是基礎的錢,不可能對大數據專門作優化處理,看狀況是否驗收
-狀況三:前期以處理的數據做爲理論依據,完成功能,回去測試以幾萬幾十萬的數據去測試,發現沒法承載,遂說未達到要求,必須達到要求才能給驗收,基本沒法驗收


建議的解決方法:最關鍵的需求評估溝通階段

需求評估階段,儘量細緻到功能,事先說明,積極配合

  不少東西看起來簡單,單功能較多,純工做量都較長,致使原先簡單的東西估算成本低於實際付出太多,致使虧本,企業虧本那怎麼可能作好。
  好比計算器,windows的計算器用起來還不簡單嗎,但請您認真查看他的功能,發現windows的計算器真不簡單,徹底複製一個沒有十天半個月作不出,並且達到其優化程度,又要付出十天半個月,不信你就本身試試。
  好比windows畫圖,windows的畫圖看似簡單,但請您認真查看其填充的功能,填充功能是要基於算法去作的,而不是簡單繪製一下。
  因此功能要了解到具體的功能點,模糊的功能點跟甲方溝通好,可能存在的狀況,雙方達成一致,儘量對雙方有利,輸和贏其實並不重要,重要的是你合適我也合適,生意才能長久

需求評估階段,儘量細化性能,事先說明,積極配合

  不少東西看起來簡單,如理論上mqtt能夠承載幾萬,QChart能夠承載幾萬點,nigix服務器能夠承載幾百人流媒體延遲500ms之內,這些都是理論上的,實際和理論多半都存在的差距都挺大的,也有確實是符合理論的狀況。
  好比nigix流媒體,在局域網能夠達到500ms,但在多終端的時候,其延遲就會逐漸增大,好比放到公網上,其延遲遠遠大於3000ms,請不要懷疑,筆者深刻研究過某爲、某訊、某牛、某構、某家雲、某度各家的流媒體服務器方案以及開源的方案,都作過具體的測試,結果其方案官方給出的是3-10s之間,實際根據網絡情況有時候啥都沒有,有時候5s左右,要500ms之內必須使用其rtc服務。而對應的延時優化,是須要大量的專業人士在服務器、編解碼、播放器各端進行各類優化,甚至是私有協議,如某家雲的就基於rtc本身二次三年優化升級的,其延時比大廠的還低。
  好比一些局域網同傳開發,軟件號稱局域網每秒幾十MB,1對60同傳,確實能夠,忽略了網絡條件,如無線狀況下,P2P也好,傳送120MB的文件同傳,實際時間將近2小時,包括某大廠飛屏,過來測試1對多也是直接看不到影子,最後研發了rtp+fec+組播的方案,120MB同傳文件能夠達到2分鐘傳完便可。這也有個問題,幾年後續由於外圍測試環境被拆,更換新環境(干擾比較大),致使5分鐘才能傳完。


後話

  這篇文章想寫好久了,以上的思考問題都是博主9年多以來親身經歷的,尤爲最近五年對於項目、產品加上自身組建團隊0到1的成功經驗,一直想進行必定的概括整理思考。


時間倉促,本文僅表明我的觀點,不喜勿噴


若該文爲原創文章,轉載請註明原文出處
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/116087039

相關文章
相關標籤/搜索