产品开发各环节的定位与反思

对整个开发环节的思考

从整条开发链路来讲,可以分为如下模式(这里只是给出一条简单的便于辅助思考的链路,实际上该关系要复杂的多)

数据采集 -> 数据存储 -> 数据提取 -> 数据理解 -> 业务服务 -> 交互页面 -> 决策支持

  • 交互页面部分是前端的主要工作,其作用是衔接人类的思考与决策,将其接入整个数字系统中。
  • AI方向的工程师会负责从数据理解到决策支持的部分
  • 后端往往会负责数据存储到业务服务的部分

当然如果对于业务最更为专精的细分,则细分职位会负责某一个环节的子部分。如数据科学家负责数据理解(数据探索性挖掘),图形学方向的工程师则负责交互页面中的一部分。每个领域下的细分都会产生许多可以深入挖掘产生知识壁垒的方向,这也说明某一个领域的深入程度与负责的业务链路长短无关。

但当从主流价值观与会计准则出发,对每个环节进行收益与成本核算,则各个环节的轻重的会有所划分。

基础设施技术

对于业务链的低端(基础设施部分),这部分会被上层各种不同形态的业务进行高频复用,业务越多,则其产生的价值越大。但此部分的工程师由于可以使用低成本从社会上获取到大量成熟的现有技术方案,故如果不是创新型的研究性开发,则其对外提供的服务的价位上会被压低许多,即其创造的大部分价值会被核算为社会平均生产力水平下应有的价值,此部分价值由于给企业带来的竞争优势小,相对剩余价值小,则不会被认为存在壁垒。

算法支持

对于算法工程师而言,由于AI带来了一定的对相对剩余价值的提升空间,所以在AI业务尚不稳定的阶段,尤其是当前时期,大部分AI业务都在初始阶段,会带来大量短期红利,而改红利也会抬高该职位的价值,但本质上讲,算法层是一个基于数据层的基础设施层,对于特别细分的算法,则会被划归到末端产品层进行讨论。但通用性较高(这个说法不太好)或者有一定复用性的算法往往最终都会被沉淀为基础设施。当整个行业基本都完成某一个阶段的基础设施建设(即工业届基本实现了学术界新推出的理论)时,红利则会消失。我们这里只是拿算法举例,实际上,端技术、区块链等任何细分领域都有着相同的规律。底层设施建设完成后,开发者则可以以很低的成本与门槛完成该领域的应用开发,故该领域壁垒降低。

末端产品

对于末端产品而言,其被复用性低,但往往差异性很高。这里要区分一个概念,即差异性与可带来竞争优势的差异性。但该部分ROI计算难度较高,如交互上的改版究竟对业务带来了多大收益。如果细分到前端技术上,则交互与UI与前端的相关性便不高了(除非是有壁垒的前端实现,如动效与交互的确是其他竞争者无法实现的)。从现在的主流业务上来讲,更偏向于前端性能的提升(页面渲染速率,响应速率等)会带来一定的收益。另一部分收益则是前后端共有的模式,即工程化与架构设计带来的开发成本的降低所带来的额外收益。

而该成本的优化极限是开发出一套前端开发工具,使得交互、UI、前端、产品经理被融为一体。即便职位不进行融合,也可以使得每个环节都进行可定量产出,并对整体的产品进行集成。本质上是删除掉“提供一个模糊的想法”的相关职位带来的不科学的高成本。所以,与其说前端的自动化开发系统(包含UI与具体的交互逻辑)是干掉前端,不如说干掉交互设计师与参与产品设计的产品经理(这里是指产品经理对市场的调研与用户的理解不会被该系统所覆盖)。一个开发系统不需要交互设计师来提供模糊的想法,必须将次想法与流程具体化成可用的产品组成部分。短期来讲,即交互设计师必须处理具体代码逻辑,或者前端开发必须设计交互逻辑。

对于基于心理学的交互理论,则应将团队重构为少数的交互专家设计交互准则与交互检验评分系统,而不应招募大量底层交互设计师对每个产品线进行模糊逻辑设计。

对前端的反思

过去一年里,一直以来困扰着我的一个问题是关于个人的定位问题。这也源于从大二暑假以来误入前端至今一直对前端定位的困惑。外界的普遍声音认为前端是开发岗中最为低端的职位。如果从整个社会的角度分析,这种看法大多源于对于前端的认知停留在15年以前,甚至是10年以前,那时的前端角色基本上扮演简单html模板的渲染。但客观的分析,即便我们来讨论15年以后前端的技术爆炸,然而表面上的社区技术快速革新其背后的本质仍是伴随浏览器性能的提升,前端工程可以分担更多的计算任务,从而使得前端对工程化的需求增加,由此从后端引入了大量工程化的思想与工具。这实质上不能称之为创新,原因是其并没有创造出“软件开发”领域新的理念与方法。

另一个被认为是前端优势领域的是数据可视化方向。然而目前该领域仍然面临性能瓶颈。即使从数据可视化学科知识的层面提供了许多理论规避直接对大规模数据进行渲染,但前端所能渲染的数据量级仍不能覆盖大部分场景。

对于强交互而言,多数强交互设计对于3D图形渲染、计算性能的要求极高。为了减轻计算压力,也会预加载大量提前渲染好的模型与素材。虽然近期5G的出现一定程度上也以为着前端可以加载较大的模型与素材,但内存的瓶颈又很快会显现出来(1.6G的浏览器内存限制)。而这种限制背后的根本不在于浏览器,而在于js本身的垃圾回收机制。当内存占用过大时,每进行一次垃圾回收,其耗时都是在人类的可感知范围内。这个问题则是中长期内js都会存在的问题。

无论前端在哪个方向上进行突破,其都不会包含对“软件开发”领域的创新,而是将其他子领域已经解决的问题在前端再重新解决一遍。

Author: Lobay Kanna
Link: http://lobay.moe/2019/02/03/2019-2-3/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.