項目立項時,產品經理該了解和注意的事
項目立項時,產品經理該了解和注意的事。還有關于項目開發、開發任務評估、技術選型,技術框架等常識。
1. 產品經理和包工頭
小奈:怎么了解開發實現功能的方式和難度?
大仁:上次不是寫了這篇,產品經理如何與開發溝通?
小奈:怎么準確分配需求給各個端的開發?
大仁:好吧,要了解的那么細,那我就深入講解下。
2. 項目:打地基+蓋房子
大仁:如果你奶奶問你,產品經理是做什么?小奈:額,就是負責產品設計、管理、協同開發、市場,推進項目落地的。
大仁:錯,如果項目開發是蓋房子,那么產品經理就是建筑設計師,項目經理就是包工頭,開發就是水泥工。
和蓋房子一樣,最重要的是打地基,地基決定了房子的高度,打地基就是技術架構選型,例如淘寶前期是php,后期由于業務發展,數據庫瓶頸,換成Java。
項目一般分為前后端,無論是什么前端項目,都需要后端支持,正常的開發人員配備,也是兩個后端對四個前端(web、pc、Android、ios)對4個產品。
3. 敏捷開發-小步快跑
項目開發模式
- 瀑布開發:傳統的項目型軟件開發,流程、周期較長,常見于外包團隊;
- 敏捷開發:互聯網的產品迭代,每周一個小迭代,mvp小步快跑,常見于互聯網創業項目。
小奈:瀑布開發,什么鬼來的?還是不懂啊。
大仁:假如說項目開發,是蓋房子的話,那么數據庫設計、架構搭建,就是打地基,地基不打,如何蓋房子?
大仁:瀑布開發就是,給包工頭,包工頭按照設計圖,蓋了1年房子后,你終于去看蓋好的房子了,一看不是自己想要的,又叫包工頭,又開始項目二期;
敏捷開發,就是你要求挺多的、而且沒有最終確定的,然后包工頭,快速打了個地基,你每周過去看房子,蓋得怎么樣了,這樣子,蓋出來的房子,可以讓你比較滿意;
4. 項目立項-產品篇
項目立項時,產品經理要做些什么呢?
- 大公司產品和項目經理分開;
- 小公司產品兼任項目管理。
產品和項目是有差別的,產品無邊界(版本管),項目有邊界(可拆解成固定的開發任務、有驗收標準)。
- 產品經理決定做什么,在立項時(第一個版本),需求分析基本完成,不會有大的改動,否則項目經理砍死你。
- 兼任項目管理,要有任務開發時間表,一般用project/jira/excel來進行管理。
5. 開發任務如何量化?
大仁:好問題,其實開發的工作,是可以量化,標準化的,有個外包網站,它里面有個估價的功能,估價會按照標準(項目類型、模塊分類、功能點)進行評估,最后得出一個報價。
報價/工作量
大概需要耗費21-29w左右,假如一個開發工資1w,那就是需要4個開發(2個后端+2個前端),大概6個月時間,那么如果你把這個人物和需求關聯后,大概要做多久,應該可以衡量了吧。
6. 編程語言圖鑒
隨著互聯網的發展,技術不斷更新,日新月異,后端開發語言眾多,php、java、c#、python、golang,百花齊放,百家爭鳴。
Java: 20多年后端語言,sun公司的;c#:微軟的后端開發語言,為了對抗Java;
python:谷歌的,隨著人工智能一起變熱;
golang:號稱是后端里,最快的男人;
python和golang處于快速上升,Java常年霸主,堅如磐石;php、c#則隨著歷史,滾滾車輪,慢慢退出舞臺。(個人觀點,如有不對,請指正。)
PHP還是Java
小奈:PHP和Java的區別、優缺點,適用場景是什么?大仁:Java和php都是后端開發語言,Java適用于中大型企業級服務器開發,PHP適用于中小型服務器。
(1)上手難度比較
– php易學易懂,非技術的人,稍稍學習,可以上手,環境搭建用LAMP/WAMP一鍵安裝包,常見開發工具,phpstorm。– Java則要求理解,Java語法和核心架構(jar包)以及JVM,環境配置也較為麻煩,常用開發工具eclipse或Intellj Idea;
(2)優劣勢比較
- Java的優勢:從數學運算、數據庫訪問、技術架構上,優于php,所以對于跨平臺大型,的企業應用系統,Java幾乎已成為了唯一的選擇,阿里就是全線Java系列,水平也是國際前沿;Java的劣勢:Java架構、性能強大的背后,或者說代價,就是復雜性,尤其是在web框架,用Java開發一個web客服系統,可能需要9個月、看9本書,而php可能只需要2個月,3本書;
- php的優勢:php吸收了Java、c和perl的有點,專注于互聯網web領域,很適用于快速開發、維護,中小型網站;
- php的劣勢:php項目后期,隨著業務發展,對數據庫要求高,php這方面支持以及架構均弱于Java,還有php程序員較少,不像Java程序員的生態那么強盛。
(3)適用階段
創業初期:php,后端;中期:php、c++,cto+后端;
后期:java、c++,cto+架構師+后端。
其實,為什么多了個c++呢?
其實創業項目初期,它是一個小項目(后端+數據庫),隨著業務的發展,對數據庫要求高了,再后來就對架構有要求了。所以一個大的系統,可能由多個子系統組成,子系統可以是不同的語言開發,只要遵循協議(soap/websevice/restful),就可以并行,形成架構了,所以中期就會需要DBA, 后期就要架構師了。
Java-多年的大哥
2000伊始,Java由于其優秀的語言特性,被大家推舉為大哥。大哥寶座一坐23年了,期間php、ruby等試圖挑戰,其地位,但堅如磐石。
后端時代:那時候,還沒有前后端,只有后端。Java工程師寫完后端邏輯,隨便再把數據包在網頁,傳給瀏覽器,一人包辦。這里不得不介紹下,湯姆貓web服務器。
web服務器有哪些:
- Tomcat:湯姆貓;
- Weblogic:微波爐。
Java程序員每天的工作,就是把邏輯實現好,打包成一個war包,扔進web服務器,看下瀏覽器運行效果,正常的話,就下班回家了。
Java的編輯器
寫過Java的應該,都用過eclipse,現在用Idea的比較多了貌似。Java的集成開發環境,就長這樣了,其他語言的也差不多。左邊是項目文件,會有主入口文件,其它的包、類文件,中間是某個文件,的代碼編輯區。
類與對象Java是面向對象編程語言,類和對象,應該是編程初學,必知的??破障骂惡蛯ο?,假如貓a、b是對象的話,那么類是什么?
類就是動物,類是抽象化的,對象才是具體的。
?父類:動物
public class Animal{
}
子類:貓
public? class Cat extend Animal{
}
對象:a貓
Cat a = new Cat()
相關閱讀
作者:Jack,新零售數據PM,公眾號:產品經理的技術課堂
本文由 @Jack 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Pexels,基于 CC0 協議
看上你的兩個圖啦,哈哈,收走
想了解下目前后端有.net開發跟JAVA開發有什么優勢和劣勢?
.net已經淘汰了,應該是老舊項目才用了
我也這么認為,但目前公司這邊還是用.net做開發,一直存在著一個服務器不穩定問題。我對這開發語言沒有過多研究,想了解下JAVA開發相比.net開發有什么優勢?
你知道生態么? Java可以是服務端開發 也可以用于安卓開發 Java和數據庫并發也更好 生態好 開發者眾多
大神,那個估價外包網址能發一份嗎?,謝謝
為免打廣告嫌疑,微信公眾號回復“外包網站”,可以獲得。
厲害?。⊥ㄋ滓锥?!
感謝認可
比喻很好,收藏了!
感謝認可,覺得不錯可以,轉發給更多人看喔。
麻煩問一下,外包估價的網站能說一下嘛,謝謝!
為免打廣告嫌疑,微信公眾號回復“外包網站”,可以獲得。
請問初期用php,后期用Java的話,是不是有兩種方式,1.全部重新用Java寫,2.部分子系統用Java?
看系統的架構,一個大的系統,可以有很多子系統,一般是沒有架構師,重寫的情況比較多。