查看原文
其他

是时候开始招募移动架构师了

2015-12-09 徐川 InfoQ


短短几年时间,我们已经走进了一个“移动应用决定一切”的时代。移动应用的创意、功能、质量的好坏,决定着用户口碑、留存率等关键指标,能够左右创业公司的成败,也对行业竞争和营销效果有着重大影响。


在这种情况下,移动开发变得至关重要,每一个公司都希望招到更多更好的移动开发者,它们需要一个更好的职位来吸引和留住真正的资深人士。另外,移动开发领域技术更新换代很快,随着设备能力的提升,技术也越来越复杂,需要整体的掌控者来决定移动客户端的架构和技术选型,市场呼唤着新的工种降临,而我们将它称为移动架构师。


为什么要有移动架构师


从开发年限的角度来看,iPhone初代发布至今已经超过8年时间,即使不算功能机时代,我们也有超过5年经验的移动开发者,已经满足了大部分设有架构师的开发领域的年限要求。当然,这只是必要而非充分条件,要回答为什么要有移动架构师,我们可以从两个角度来看,一个是移动开发的发展,另一个是移动开发者。

越趋复杂的移动开发


如果你今天要开发一个移动应用,相关的技术选择会让你眼花缭乱:开发iOS应用,从语言上就有Objective-C和Swift可以选择;开发Android应用,使用MVC还是MVVM;如果同时开发两个平台,是否要尝试React Native;甚至到底有没有必要开发原生应用,还是要用HTML5技术解决?


这些只是移动开发技术选型很表面的一部分,深入到细节,你会发现需要做更多的选择,需要了解更多的技术。要掌握它们,需要长时间的学习和实践。


之所以出现这种情况,是因为随着移动设备能力的提高,以前很多无法使用的技术现在有了用武之地,而苹果和谷歌在很多地方并没有标准化,反而在推出更多的技术,比如Swift,比如近来的Flutter(前Sky框架),开发者可以灵活使用多种开发手段来实现想法。但对于开发团队来说,过于灵活有时候反而是有害的,团队成员需要遵循相同的规范,谨慎的选择技术,才能进行高效的协同开发。


对于这种情况,目前有些团队采用模块式开发,除了一些规范以外,自行决定、或者经过商讨决定各自负责的部分该使用何种技术。这在一定程度上能解决问题,但是这种模式会遇到单点问题,一旦某个模块由于意外无法及时更新,会拖慢整个项目的速度。因此,移动开发团队需要有确定整个架构的技术决策者。

无处安放的移动开发者


移动开发人员越来越吃香,初出茅庐的新手就能够获得不错的薪酬,而有2-3年经验的移动开发者更是抢手的香饽饽,其薪酬直逼其它开发领域的中高端水平。但有一部分移动开发者却很焦虑,他们是那些拥有超过4、5年经验的资深开发者。


他们焦虑的来源,来自于移动技术的快速演变和后辈开发者的追赶:如Swift的出现,将iOS开发者拉到了同一起跑线,开发者的经验虽然仍然有用,但也大大贬值;90后、甚至95后也开始进入移动开发领域,他们的精力更加旺盛,对于新技术接受更快,面对优秀的年轻开发者,自然会涌起落伍的恐慌和焦虑。


面对这种情况,有的资深移动开发者转向其它领域,比如后端开发,因为这是一个经验可以更好发挥价值的领域;有的去钻研Android源码、Objective-C Runtime,希望对技术了解得更深入从而让自己难以替代;还有的干脆转向技术管理,从此渐渐挥别技术,走上另外一条职业路线。


资深的开发者,有家庭、房贷等的拖累,却还要和年轻人比谁的代码写得更多更快,这是很悲哀的事情,也难怪他们做出这样的选择。给他们一个更好的职位,打消他们的不安,让他们的经验更好的发挥价值,是公司的管理团队必须做的事情。


移动架构师能带来什么


移动架构师并不是笔者生造出来的,在国外,Mobile Architect是一个受认可的职位,在国内,阿里系设有移动端架构师,手机百度也设有类似的系统架构师,不过相比于国外中小型公司招募移动架构师,国内的中小型公司还没有这个意识。


类比其它领域的架构师,架构师首先要做的两件事是架构设计和技术选型,如果从时间维度来考虑则是:


  • 设计当前架构。包括新技术方案的制定或review。

  • 改进过去架构。根据业务的发展或者技术债务的原因,重构当前技术方案并且推进实施。

  • 前瞻未来架构。技术方案调研和分析,随时准备好对新技术的使用。


除此之外,移动架构师能为公司和团队带来的价值还有:


  • 知识传承和分享。架构师需要让团队成员理解自己的架构设计,了解各自需要负责的部分,这可以帮助团队更加快速的成长,同时将知识沉淀起来,降低团队减员带来的伤害。

  • 技术方案的协调和推进。架构师要保证自己设计的方案能顺利执行,因此需要对此进行关注。

  • 人员招聘。架构师需要将技术方案划分到岗位,如果没有相应的人来做,那么需要招募到合适的人。

  • 解决技术难题。这条应该是技术专家的职责,但在移动开发里,资深开发者多半会深入钻研某一个领域,成为技术专家的可能性很大。


除了对公司带来的价值,移动架构师对开发者本人来说,可以从重复编码的体力劳动中抽离出来,从更高的层面来思考技术,对于他的技术能力提升也很有帮助。另外,这也是他除了转其它开发岗、转管理的另一条职业晋升路线。这条路线将是技术路线,可以贯穿终身。


比如Delphi、C#之父Anders Hejlsberg现在的职位就是C#和TypeScript的首席架构师,对于终身编程的他来说,这是一个非常适合的头衔。

技术负责人还是移动架构师


有人也许会说,已经有移动技术负责人了,还要移动架构师做什么。在小团队里面,也许技术负责人不仅要管团队、带新人,还是主力编码人员,在这种团队也许并不需要架构师,但如果他们能招到另一位资深的移动开发者,让他来担任架构师,不仅能让他安顿下来,相信也能大大减轻技术负责人身上的重担。


另外,技术负责人的晋升路线是移动技术负责人-移动研发总监/技术经理-项目经理的一条管理路线,即使在当前仍然需要和代码打交道,在未来也必然会越来越减少这方面的工作,所以,技术负责人和移动架构师从长期来看并不冲突。技术负责人一般只有一个,架构师可以关注不同的领域,在大型团队里可以有多个。


所以,无论是大公司还是中小团队,如果有余力,还是需要招募移动架构师。

未能解决的问题


当然,由于笔者调研所限,并不能完整的讲清楚移动架构师的方方面面,比如下面的问题:


  • 移动架构师有没有一个公认的职位描述?

  • 移动架构师是否还要日常编码,如果需要,比例是多少?

  • 移动架构师的成长路线是什么样的?

  • 移动架构师是否需要学习前端、后端开发技术?

  • 移动架构师是否需要设计整个C/S架构……


对于这些问题,以及文章没有提到的问题,欢迎大家在下方评论探讨,另外,我们也将在ArchSummit北京2015全球架构师峰会上举行移动架构师闭门会议,邀请国内资深的一线移动开发者,来共同探讨这些问题。

ArchSummit北京2015全球架构师峰会

『 移动应用专场 』日程安排


演讲时间演讲专题演讲嘉宾
09:30-10:15阿里巴巴技术专家
10:30-11:15豌豆荚移动技术负责人《Android开发精要》的作者
11:30-12:15阿里巴巴资深架构师,钉钉CTO
13:30-14:15Twitter Senior Staff Engineer [海外专场]
14:30-15:15360手机助手安卓技术负责人
15:35-16:20 携程移动开发总监
16:35-17:20百度系统架构师




点击“阅读原文”了解大会日程👇

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存