项目立项时,产品经理该了解和注意的事。还有关于项目开发、开发任务评估、技术选型,技术框架等常识。
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或IntelljIdea;
(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-多年的大哥
伊始,Java由于其优秀的语言特性,被大家推举为大哥。大哥宝座一坐23年了,期间php、ruby等试图挑战,其地位,但坚如磐石。
后端时代:
那时候,还没有前后端,只有后端。Java工程师写完后端逻辑,随便再把数据包在网页,传给浏览器,一人包办。这里不得不介绍下,汤姆猫web服务器。
web服务器有哪些:
Tomcat:汤姆猫;Weblogic:微波炉。
Java程序员每天的工作,就是把逻辑实现好,打包成一个war包,扔进web服务器,看下浏览器运行效果,正常的话,就下班回家了。
Java的编辑器
写过Java的应该,都用过eclipse,现在用Idea的比较多了貌似。Java的集成开发环境,就长这样了,其他语言的也差不多。左边是项目文件,会有主入口文件,其它的包、类文件,中间是某个文件,的代码编辑区。
类与对象Java是面向对象编程语言,类和对象,应该是编程初学,必知的。科普下类和对象,假如猫a、b是对象的话,那么类是什么?
类就是动物,类是抽象化的,对象才是具体的。
父类:动物publicclassAnimal{}子类:猫publicclassCatextendAnimal{}对象:a猫Cata=newCat