读书笔记 | 产品经理必懂的技术那点事儿 ( 1 )
从事产品经理这一职业将近3年,一直没有系统化地去学习技术体系,让我很是惭愧。恰巧在亚马逊看到本书,如获至宝,于是便买下来通读,发现书中的内容完完全全覆盖到了我工作中接触到的技术知识点,可以说是对我认知的一种巩固。有产品行业的老司机曾嫌弃该书,认为这本书没什么营养。的确这本书后半部分有一定的车轱辘话,然而一本书是否有价值,因人而异。这本书就是针对那些不怎么懂技术又想把产品做好的“0-3岁”产品人及准产品人准备的。
在通读两遍后,我替大家淬炼了没有废话的部分,将其整理成笔记分享给需要的朋友,将会分为3期发布。
书名:《产品经理必懂的技术那点事儿》
作者:唐韧
出版社:中国工信出版集团/电子工业出版社
1.产品思维与技术思维
1.1 产品经理为什么要懂技术
思维模式差异:
在实际工作做不难发现,当产品经理与工程师就某一个具体问题进行讨论时,双方站在各自角度就问题进行分析和讨论,固有知识结构的差异导致思维模式和视角的差异,工程师通常就是路径推理的技术思维,产品经理通常是用户场景的产品思维。
产品思维与技术思维从职能角度解释为什么产品经理要懂技术:
对产品经理这一职能来说,需要掌握更多的语系,因为产品经理是信息的衔接者,在一个产品项目中起到信息中枢的作用,产品经理需要与老板、业务人员、市场人员、设计师、工程师等进行合作,他们有各自不同的背景和沟通方式,要求产品经理具备与不同职能的人打交道的能力。对于合作最为密切的工程师来说,这就要求产品经理具备一定的技术知识,在于工程师合作和沟通时需要切换至技术语系。
1.2 产品经理和工程师分别是干什么的
产品经理:产品职能属于信息上游,负责发现并定义需求,将用户需求通过具体的产品功能设计呈现为用户可用的产品,包括需求分析、功能定义、原型设计等。
工程师:技术职能属于信息下游,负责从技术实现角度评估产品设计,设计技术方案,最终将产品设计实施落地为用户可用的产品。
作为产品经理,需要了解一个技术团队中各个职能分别是做什么工作的,下图所示为一个常规技术团队的组织结构和基本职能分布。
技术职能架构CTO(首席技术官)是管理和领导的角色,是技术团队的负责人,统筹技术和产品相关工作的开展。
产品设计包括了产品本身的功能和流程设计,同时也包括产品的交互和视觉设计。在大公司里,交互和视觉设计分工比较明确,职能更细。在创业公司里,产品经理通常承担了产品功能流程设计和交互设计,视觉设计一般由专业的设计师负责。产品设计师在整个工作流中类似建筑规划总设计师,负责设计整体蓝图。
研发板块是技术团队的主要构成部分,一般是人数最多的职能板块,研发分为前端开发和服务端开发,前端开发又可细分为Android开发、iOS开发、Web前端开发等,服务端开发可以细分为应用接口开发、数据库开发等。虽然都属于开发人员,但是同样是术业有专攻,每个开发人员都有各自负责的技术领域,当然也有跨技术领域的工程师,比如既能做前端开发又能做服务端开发的。
技术团队通常都有一个架构师,架构师是一个高级技术职位,一般是一位具有丰富经验和技术能力的技术人员,架构师负责系统的整体架构和规划,类似于建筑实施总设计师,设计整体实施方案。
测试是保证产品高质量上线发布的保障职能,测试具体可以细分为黑盒测试和白盒测试。
黑盒测试是指一般的功能测试,测试人员会从用户视角对产品进行全方位多角度的使用,模拟出各种可能出现的用户场景对产品进行全流程测试。
白盒测试是比黑盒测试更进一步的测试,白盒测试会深入到代码层面进行测试,使用测试用例对某一代码模块进行测试,白盒测试对测试人员的要求更高。测试人员类似建筑工程中的质检人员,负责对实施的工程进行质量控制和把关,对于不合格的部分进行标注并返工处理,测试通常有一套严格的测试标准,叫测试用例,测试用例覆盖越全,测试所覆盖的可能性问题就越全,更有利于遍历所有可能的问题。
运维是对系统进行持续稳定运转的保障职能,需要持续监控和优化系统的运行状态,比如对带宽的监控、对系统负载能力的监控和优化等。运维类似于建筑工程中的交付保障部门,对交付后的产品进行持续维护,当出现问题时及时响应并处理。运维是系统工程,而且是持续进行的工作,对系统的要求是7×24小时全天候无故障运行。
我们每天所使用的各种互联网产品能正常工作,一方面是在开发和测试阶段解决问题,另一方面就是在后期运维阶段持续保障。例如,当用户量或访问量达到一定阶段后,运维需要提高服务器的处理能力,所以运维是产品的后勤保障。
以上各职能相互配合,为产品的整个生命周期服务。
1.3 产品设计中需要注意的技术边界
技术边界是指在现有技术水平之下,可以被实施运用的有限范围。对于产品设计者来说,在设计产品时需要了解技术边界在哪儿,需要知道什么样的设计在今天能被满足,但同时也不要受制于技术边界,想象的空间无限大,在思考层面需要无边界。
1.4 工程师的思考方式:“工程思维”
工程思维往往是理性的逻辑思维,从实现的难易程度和系统的角度去定义产品和设计产品。
1.5 入门产品经理的思考方式:“功能思维”
功能思维是从软件产品本身角度出发的思维模式,是从系统功能的角度来评判产品的完整性和实用性。
1.6 高阶产品经理的思考方式:“产品思维”
产品思维是一种结合工程思维、功能思维及商业思维的综合思维模式,包括对商业目标的理解、对目标用户及用户使用场景的理解。在充分理解商业战略的前提下来完成产品定义和产品设计,通过了解产品所围绕的业务场景去提升产品的可用性和易用性,改善业务体验和产品体验,提升整体的用户体验。
产品思维其实可以大大简化产品工作,按《用户体验要素》一书的观点,整个产品体系从下往上分为战略层、范围层、结构层、框架层和表现层,如下图所示:
用户体验的五个层次最下层的战略层决定了业务和产品需要实现什么目标,为谁和什么场景服务,范围层需要定义清楚在既有战略的基础上做哪些东西来实现战略目标,结构层需要基于范围层的内容完成基础信息架构和交互设计,框架层完成我们能看得到的界面设计,表现层则是视觉表现设计,让产品看起来更友好。一个完整的产品定义和设计过程都需要经历这5个阶段。
2.互联网技术与产品
2.1 互联网技术发展史
互联网技术一直在更新换代,产品形态也在持续演进。纵观互联网技术发展历史,大致可以分为三个阶段,如下图所示:
互联网发展阶段2.3 互联网开源社区和技术
互联网的基础技术大部分都是开源的,所谓开源,就是开放源代码,开源技术可以被任何人、任何组织以无偿的方式直接使用。互联网产品本质上都是由一行行的代码构筑起来的,这些代码组成了一些通用的技术平台。这些通用的技术平台往往由一些对技术痴迷而且有奉献精神的人群维护着,以开放源代码的方式共享给互联网产品的生产者和使用者。例如,风靡全球的技术社区GitHub就是一个完全由技术人员参与并维护的线上开源社区。
2.3.1 使用最广泛的服务器操作系统:Linux
我们每天都在接触Linux,如今使用广泛的Android手机其底层系统使用的就是Linux,世界上很多超大型计算机使用的操作系统也是Linux。谷歌、百度、淘宝通过Linux为我们提供着每天都使用的互联网服务。Linux是一款免费的操作系统,操作系统提供人与计算机交互的界面。
Linux系统应用得非常广泛,可以安装和运行在各种计算机硬件设备中,比如台式计算机、智能手机、平板电脑、路由器及大型计算机或者超级计算机。Linux系统以可靠、安全、稳定、可扩展的特性在互联网技术领域得以广泛应用。Linux系统内核发布后,因其开源的特性和不受商业软件版权的限制,被全世界的技术人员持续完善和更新。
2.3.2 网上支付的基础保障协议:OpenSSL
如今OpenSSL被运用到互联网产品的各个领域,比如我们习以为常的在线支付、网银、电商网站及门户网站和电子邮件等。今天我们能在互联网上进行在线购物交易及网上业务,在数据加密和安全性保障上都归功于OpenSSL。
OpenSSL全称Open Secure Sockets Layer,是一个开源且强大的安全套接字层密码库。最初由Eric A. Young和Tim J. Hudson在1995年开发,后来由OpenSSL开发组持续维护更新。OpenSSL是一个基于密码学的软件开发包,具备完整的加密算法和数据加密功能,是网络通信及数据完整性的一套安全协议,通过OpenSSL可以为数据在互联网的传播提供安全保障,使数据以加密安全的方式进行传输,防止核心保密数据被窃取或者监听。
2.3.3 数据库标杆:MySQL
我们每天使用的互联网产品产生大量的数据,金融交易平台采用MySQL作为数据库引擎,电商网站会使用MySQL来存储商品信息。
MySQL是一个开源数据库管理系统,属于关系型数据库。MySQL以开源的方式提供给互联网应用使用。MySQL的适用性非常广泛,为C、C++、Java、PHP等主流开发语言提供了使用接口,使基于任何技术语言开发的系统都可以使用MySQL作为数据库。
2.3.4 服务器的“温床”:Apache
Apache为我们每天访问的网站提供着最基础的容器支持,是一款服务器运行软件系统,Apache HTTP Server(简称Apache)是Apache软件基金会(Apache Software Foudation)维护的一个开放源代码的网页服务器项目。它可以运行在大多数计算机操作系统中,以期跨平台、快速、简单的特性被广泛使用,也是主流的Web服务端软件之一。
2.3.5 工程师的造物利器:Eclipse
Eclipse是一个开放源代码的基于Java的可扩展开发平台。Eclipse本身是一组开发服务框架的合集,简单说,Eclipse是提供给软件开发人员进行软件开发的工具。很多实用Java语言的系统都使用Eclipse作为开发工具来开发,现在,Eclipse不仅仅是Java开发工具,还可以进行C、C++和PHP语言的软件开发。Eclipse已经逐渐形成了一个集大成的开发工具平台,作为软件开发人员的利器,大大提高了软件开发人员的工作效率,也让整个开发和集成过程变得更加精简。
2.4 互联网产品技术架构
互联网产品技术架构整体分为两部分,分别是前端和服务端,前端和服务端通过中间网络进行数据传输。前端就是用户使用的客户端,包括最初使用个人电脑通过浏览器进行网页浏览,现在通过智能手机使用APP进行一系列操作。服务端包括应用服务器和数据库,应用服务器用来部署服务端程序,处理前端请求并进行服务响应,数据库用来存储数据,服务器通过专门与数据库进行交互的程序对数据库进行读写操作。
2.3节提到的各种开源技术,在互联网产品技术架构中的各个环节都会被用到,比如服务器可以使用Linux作为系统来运行服务端程序,前端与服务端通过网络进行数据传输可以使用OpenSSL进行数据加密与安全保护,可以使用MySQL进行数据存储,可以使用Apache服务作为网页服务提供运行容器,前端和服务端的程序可以使用Eclipse进行开发,以上都是对具体技术的具体运用。当然,每一个环节都可以选择其他技术,例如在数据库的选择上还可以使用甲骨文退出的oracle数据库。
- 未完待续 -