先别急着往下拉文章,现在思考一个问题:你现在的软件开发团队或之前的团队,带领团队的人处于软件开发职能的哪一个岗位?产品经理,UI设计还是前端开发,后台开发,测试人员,运维人员?(专业团队除外) 给出上面的答案后,咱们继续往下看。
不知道你有没有见过比较粗糙的团队,里面只有后台开发,其它岗位全部缺失,但一样能出结果。外包拉私活,是不是能少个角色就少个分钱的人,一样也能干。回到题目,我认为还是后台开发人员居多,为什么,简单看看各个岗位的职能来拆解下原因。
题图 from unsplash
产品经理,一个离CEO最近的人,业务能力突出,能将需要转化成需求,同时挖掘出内在的业务逻辑,结果交付给设计人员、开发人员去实施,但有一个弊端,多数PM同志不懂开发技术,不能很好的与开发人员深入沟通,往往也会被开发人员的"这个难度比较大","这个做不了"给怂回来而茫然。这是硬伤,PM与Coder天生的冤家一般存在于各大中小微公司中的各种团队里。虽然有PM驱动产品开发的说法,但往往领导技术开发的人是个懂技术开发的,交流起来才更顺畅。
UI设计?可以将产品人员粗糙的原型变的华丽丽,感观体验爽爽的,硬伤在于内在实现逻辑欠缺,由于是"表面功夫",数据的来龙去脉比较模糊,数据存储更无从谈起,往往在开发团队中处于前期紧张,中后期空闲的状态,一般也是"共享"状态,哪里有活哪里搬。
前端开发有没有可能呢,当然有。简单的前端开发,甚至不能称之为前端开发,称为"网页制作",不需要懂业务逻辑,只是将UI图变成静态网页、相应的交互效果,数据展现部分交付给后台开发人员来套入。这是前几年的状态,有些同学还没有转变过来。现在讲"前端开发",大多是前后端分离,职责清晰,交付压力转移到前端,后端开发变成了一个前端口中"写接口的"。如果此时前端人员的业务逻辑不清,这个工作是没法开展的,当然前端依旧对存储设计、复杂的后台逻辑无感知,都是有接口在支撑。第三种情况是前端全栈(我也不清楚为什么前端通到了存储层,就称自己为全栈),这种情况从前端展现到后台服务都能经历到,承担项目团队管理工作,顺理成章,但前面的第一种情况基本无可能。
为什么是后台开发人员承担项目/产品管理的居多?软件开发早期,职能岗位不全时,就是后台开发通吃,后台开发贯穿整个产品周期,从需求分析阶段介入,各环节的评审都有参与,一直到后期的运营维护,直至停机运行。业务逻辑不通、数据流程不通基本也合格的,后台开发对每个环节都有一定的掌控。这样的角色与其它角色沟通时,除了一些专业交互之外基本没什么障碍。管理的要素之一就是要降低成本 ,提交效率。沟通成本是产品开发中比较隐性的大成本。
测试人员不行吗?懂业务是首要任务,不然无法开展测试工作。另外,不懂开发技术是硬伤(白盒除外),同样存在沟通的问题,另外黑盒测试仅是初级入门,进入门槛很低,可替代性很强,业务拼不过产品,技术拼不过产品,话语权相当低,多数情况做为产品质量的保证。虽然TDD喊的亮,但这里的T是由开发人员完成,而非专职测试人员。
运维岗,懂业务的话更好,不懂也没关系,关联度不是很强。目标只有一个,保证产品运行良好。与UI岗一样,可以"共享",与业务关联度不大,所以大多数情况下没有高度去管理其他岗位。随着DevOps、SRE的推行,开发运维的界线也越来越模糊,专职运维岗位也在慢慢向开发岗靠拢,进行技术学习,参与到产品研发过程中去。
拆解完,发现上面的岗位后面的演进方向貌似也有了,要走的高走的远,都需要深耕细作。当然也有不少愿意在本岗位上深扎的同学,不想搞管理,志向选择,无对错之分。
祝好。
-End-
拓展阅读: