軟體開發中,做產品與做項目有什麼區別?


在一個軟體工程中,金錢投入、時間、功能、質量,只能保證三項。

如果你的項目核心功能(must have)很少,nice-to-have 功能很多。要保證的是時間投入和質量,而非功能。那麼你很可能在做一個產品。

如果你的產品質量投入不高,但是 must have 功能很多。那麼你很可能在做一個項目。


1、用戶群體不同,項目可能針對某些特定的用戶,產品針對特定的群體;

2、需求獲取不一樣,項目需求從特定用戶需求,產品,除了做需求調研外,還需要做策劃;


軟體作為一種產品,它的生命周期有投入期、成長期、成熟期和衰退期四個階段。

而作為項目來說,無論是什麼類型的項目,都具有啟動、計劃、執行、收尾四個階段。這四個階段可以存在於產品生命周期的任何一個階段。具體針對軟體來說,作為產品主要關注的軟體的功能是否滿足客戶需要。而作為項目,軟體功能滿足客戶需要只是項目管理中「範圍、時間、成本、質量」四大因素中的一部分,而且只是屬於」範圍「和」質量「的一部分。作為項目還需要考慮項目進行時間,也就是進度的掌控,還有項目成本的把握。


對於項目跟產品的區別我覺得 @王春生 已經說的非常清楚了,我想補充一點的是對於個體程序員對於產品與項目的選擇性問題。

我始終不能避免的是程序員的最終歸宿,人都有老的一天,也有很多人在討論程序員的碼代碼的壽命,有的人說是35歲,有的人說60歲,有的人說退休了也能寫個八皇后出來。不錯,每個人的能量不一樣,每個人的歸宿也不一樣。

在我看來程序員這個職業是體力跟腦力都消耗十分嚴重的職業,我不是研究人類肌體的所以歸納不出腦力嚴重消耗後對於體力的影響,但是現實是經過一天高強度的腦力活動後,你基本上吃飯都不會香,掃地都不太願意去,各種體力的活動,運動都不會無意識的去觸發;除非你給自己定了一個計劃,每天跑五公里之類的運動環節。所以程序員在沒有無意識的運動消耗的時候,說自己還有體力那純粹是扯淡。

所以我的結論是大部分程序員的碼代碼的壽命取決於身體的素質。

回到主題上面來,項目跟產品的區別,我想歸納一些現象,首先是項目,項目的公司大的分為兩種,小分類分為3種:

一種是在項目公司辦公樓做日常的項目開發,需求都是產品經理從客戶那邊得到的,不用全國各地跑,不用在奔波中體會【快感】或者是【勞累感】,這樣的項目少則半月,多則一年,在互聯網時代超過一年的項目基本應該歸納為產品了。說說最常見的三個月的周期,如果你在一個項目公司做兩年的話,按三個月算的話,你要經歷過八個項目的周期,如果你碼代碼還算不錯的話,項目中的技術也掌握的八九不離十,往多了說等於你通過兩年時間學習了八項計算機技術,好一點的也許能做項目管理,項目架構,年輕的時候【通常是23-30歲】這樣的經歷足夠讓你在跳槽到下一家的時候漲一倍工資,甚至再多一點。

第二種是你簽約的是一家人力外包公司,他們專門做人力外包,哪裡有項目,就招人投放過去,這個也就不談了,基本你就是一個工具,或者高級工具。

第三種是公司派往客戶現場駐地開發,這個跟第一種的區別在於你需要奔波,你在奔波中要忍受無法見到妻子,家人,客戶現場自己有陌生感,對方也會把你當做一個過來的苦工看待,沒法在公司內部享受到同事的親密,這樣的工種需要人有很強的適應能力跟變化能力。

好,問題就來了

你的歸宿信仰呢?

這樣的工作,換了一個項目等於像換了一個工作一樣的,有新鮮感?有刺激感?有強烈的征服欲?這些都可能短暫的存在在腦海中,但是對於做過的項目,你覺得哪一個最能代表你的成功?哦,那個技術用的最深的,耗了我兩周的。這也許在我眼中算是影響你最深的,但不能代表你的成功,因為你的成功整體來概括就是:做了八個項目,經驗不錯,很多點都涉及到了。

然後呢?

然後就沒有然後了。

難道一個程序員就不需要有信仰么?

難道是最越來最越多的項目,用最牛逼最牛逼的技術就是成功?就是你的終極目標么?

在我看來這樣的想法只會拖累你在前進過程中步伐,而不會加快自己的成功,不成功便成仁不應該用在無休無止的路上,不要迷失,不要彷徨在pi的小數點上,因為沒有人能做完全天下的項目,沒有個體能在如此繁忙的項目中思考如何前進,因為你剛開始想的時候,產品的人就在旁邊說,「你這個地方跟我的原型有點衝突需要修改一下」。

我概括一句,項目是沒有靈魂的,產品是有靈魂的。

說說你的八個項目是不是真正的掌握了,是不是真正的進入到了你的程序員素質體系裡面

我只能說人的記憶有衰退期

說說你最得意的一個項目,用了最複雜的技術,這個你認為最自以為豪的項目一直在你腦海中揮之不去。我想問一個問題,下一次有多大的幾率你還會用到這麼複雜的技術選型組合,這麼變態的業務規則?我想應該是過了這家店沒這個村了吧?這個只能會沉澱在你所謂的個人榮譽殿堂的最底層,時不時的用來慰藉自己的心靈,找一點還是個程序員的存在感,最終會在簡歷上面揮毫一筆。很多人招聘的人會注意到這個點,但是我想說,我不會。(有關篩選簡歷跟閱讀個人經歷的經驗有時間再聊。)我想說的是你對於最得意的技術配套著最複雜的業務還有多少記憶?對於一個長期沒有繼續使用的技能到底還能在新環境中使用多少?這個對於新環境招一個技術能力差不多,沒有熟悉這塊業務的人替代你做的事情的成本有多高?我想如果你不自降身價的話,估計是拼不過人家的。因為你貌似經驗十足,可是可替代性也十足。

對於自己做的東西沒有歸屬感的人,自己內心其實是飄著的,只是等待,等待,等待下一個落腳的項目,或者是新環境。

最後說一說歸宿

做技術的有很大一部分很多年輕人,被現實生活壓迫的遍體鱗傷,在風雨中前行,很不容易!很少能有機會靜下來想一想自己的歸宿,自己的未來。

問一個問題:如果在醫療行業做某個產品做了5年的人,跟在醫療行業做項目做了5年的人走到了一起,他們如何競爭?

項目:我做過第一人民醫院某某系統,用了java,redis,oracle……

產品:我做過用藥助手

項目:我做過瑞金醫院某某系統,用了c#,http://asp.net,nodejs……

產品:我做過用藥助手

項目:我做過長海醫院某某系統,用了django,twisted,beautifulsoap……

產品:我做過用藥助手

項目:你能不能換一個啊,不要老說用藥助手

產品:我做過家庭用藥

項目:……

這個純粹是一個笑話啊,嚴肅一點就是:做項目的人,你的核心競爭力在哪裡?

你不覺得,做的東西不成體系么?假如有這麼一個機會,大佬發話:給我找這個行業最牛逼的技術人才。我首先想到的是一直在堅持做產品的人主持工作,而你只會又一次作為高級工具出現在這個行業中。這也就是隨著時間的推移,你的工作的價值曲線會遠遠被一直在這個行業做產品的人拋開。歸宿感也是在一直做產品的人中有流傳。想要回歸,為時已晚。

可能在下說的有點偏頗,可是我能這麼思考一下子,也算是對得起整體忙碌的自己。

我還是建議,能確定自己方向的碼農,儘早能規劃好自己的願望跟理想,朝著一個方向奔去,在選擇的道路上盡量能沉下去一直在精心打磨一個東西。

項目跟產品也沒有我說的這麼極端,有很大的共同性。如果沒有選擇,你就繼續做下去,如果有選擇還是選擇一直做一個行業的項目,如果還有選擇還是選擇一直做一個行業的一個產品,把自己的最終歸宿,歸宿在為廣大使用產品的人身上,不要歸宿在自己做的八個項目的某個牛逼項目上,因為那是虛假的。


你所指的產品應該是值公司自己研發的產品,項目是給客戶做得合同類項目吧。

1. 從利益相關者來看,內部產品代表是公司的利益,合同項目代表是客戶的利益。

2. 從需求範圍來看,內部產品可以由公司內部的產品經理負責,合同項目則由客戶來確定。

3. 從時間來看,內部產品的交付時間可以內部決定,合同項目則往往有固定的時間期限。

4. 從最終的用戶來看,內部產品有更廣泛的用戶,合同項目的直接用戶則是客戶一家。

但其實產品和項目也是有很多的關聯的。產品也都是以項目的形式來進行開發的。


產品就是自己發現市場需求,做好了拿出去賣,賣出去才有錢,也可能賣不出去;項目就是別人提出需求,你幫忙做,只要做出來就有人給錢。產品一般具有通用性,項目一般具有針對性。


項目:各種功能疊加,強調項目交付,滿足客戶需求即可。(反正單子已經簽了 做完就成

產品:抽象出來的功能組合,強調用戶體驗等等(做不好沒人用啊。。。


做項目和做產品過程類似,都大致經理分析、設計、實現的過程。

但區別也很大:

1、做項目主要靠關係,市場拉到項目就賺到錢;但產品賺錢主要靠眼光定位,不好的產品沒人用沒人買。

2、做項目主要風險在拉項目和首尾,直接決定資金;做產品主要風險在產品和市場定位,直接決定產品有沒有市場

3、做項目的企業多數是系統集成或者外包,頻繁換行業換項目,只為多拉項目多掙錢,不利於員工的技能積累;做產品一般只專註一個行業,有利於員工的技能增長。


就像包工頭跟建築師的區別


簡單的說,好的產品可以變成N個項目,但是一個項目可能變不成產品


鄙視上面一個簡單的問題長編大論的回答,答覆如下:

一個是當作事業來做,另一個是當作工作來做。

所以做產品的往往做出了優秀的作品,而當作項目來應付,導致爛尾的項目也就必然多了。

碼客幫 http://make8.com


項目成功了可能會變成產品,產品失敗了就會變成項目。

項目經理關心的是按期保質上線,產品經理關心的是運營數據和結果。


產品應該是通過項目的執行產生的最終的deliverable, 它會給用戶帶來價值解決問題,至少是期望帶來價值解決問題。

項目未必都能有最終的結果,沒有統計但是感覺失敗或終止的項目應該占多數。


請記住:做項目本質上是委託開發合同,意思是業主單位給你錢,讓你們公司來做,項目是誰的項目?是業主的項目,這個項目成功與否,最重要的角色是誰?——業主負責人,這就是很多做項目經理的沒搞清楚自己定位,把項目搞糟糕的本質原因。

產品更多的公司自己針對基於市場分析後,自主後起的一種研發、生產製造的成果,產品的成敗公司負責,其實這個和是不是軟體開發沒什麼關係,製造業也一樣。


做產品與做項目之間的區別

1. 對質量要求

做項目的第一要求是在要求的時間內開發出滿足客戶需求的軟體,它的第一準則是客戶永遠是對的,開發者必須按客戶要求的做,但是因為客戶提出的要求往 往是發散的、弱邏輯的、非系統的,所以開發出的軟體需要很多硬編碼,再加上時間緊迫,不能對已經開發出來的模塊進行必要的重構,項目最終越來越難以維護, 性能越來越差。

而做產品則會很注重質量,第一準則是開發出比其他同類產品更好用,更快的系統,當發現某模塊的架構不合理時,能夠花人力和時間去重構它,最終使產品 越來越快,越來越好用。

2. 團隊構成不同

做項目,特別是外包項目,開發人員可能來自不同公司,技術水平參差不齊,開發思想不統一,大家的目標是寫出能運行的代碼就可以了,而即使這一點,實 現起來難度也很大。

做產品的團隊一般都是精兵強將型的,因為目標是跟同類產品競爭,這就要求必須有好的PM,好的Developer,好的Tester,一套科學高效 的開發流程被植入每個人的頭腦,工作配合起來比較協調。

3. 驅動因素不同

做項目側重於時間驅動,因為時間就是成本,要壓縮成本就得壓縮時間,而功能只要能用就行。

做產品側重於功能驅動,時間比較充足,以開發出有競爭力的產品,功能不光能用,而且速度要快,操作要簡便。

做產品與做項目之間的聯繫

產品和項目有時候是交織在一起的。一個產品可能在不同時期以項目的形式來進行開發,另外產品還有不同的版本,有時候需要同時維護幾個版本,有的新功能以項目的形式設定截止時間開發完成,功能完成後進入運維進行持續改進。

同一個工作,可能對一些人是產品,而對另外的人是項目。例如,一個互聯網公司,準備開發網站和移動應用,然後把這個產品分成幾個小項目外包出去,對甲方是產品,包括拆分項目,討論實現,驗收和後續運維。對承接外包的乙方,就是一個個項目,按合同規定時間完成特定功能就行。後續運維可以甲方當產品自己持續做。

做產品與做項目對員工的影響

國內互聯網公司,大一點的,BAT等,基本都是以產品為主導,需要自己運維,包括知乎。

以項目為主導的主要是外包公司。

所以,如果能進入以產品為主導的公司,員工是可以長時間很多年的學習改進。

如果進入以項目為主導的公司,一般項目周期比較短,經常會遇到有的時間段項目超多忙不過來,有的時間段項目少沒事做,擴招和裁員比較常見,技術開發員工一般很難呆5年以上。


做產品更多的是有一份激情在裡面,而做外包就感覺做完這一個項目就往下一個項目走,雖然學的東西都不少


推薦閱讀:

有了BIM, 還需要施工承包商介入到設計階段嗎?
關於信息系統項目管理師的幾點疑問?
請問PMP(項目管理專業人士資格認證)考試的含金量高嗎?PMP除了應徵PM職位外還有哪些職位可能會用到呢?除了培訓班外是否可以自學並報考?報考的最佳途徑是什麼呢?
PMP(Project Management Professional)證在哪個行業比較有用?
怎樣的可行性報告才會讓客戶滿意?

TAG:軟體開發 | 項目管理 |