结束语
自2008年iOS和Android应用商店推出以来,移动应用的重要性和影响力一直在稳步上升。许多企业越来越依赖于大多数客户所使用的应用程序,一些成功的公司都是建立在单一的、大规模成功的应用程序之上的。
虽然移动应用程序的重要性已经稳步增长,但我们仍在了解如何大规模构建--和维护--这些应用程序的许多挑战。你如何确保一个应用程序为数以百万计的日常用户可靠地工作,同时也比你的竞争对手更快地进行创新?你如何快速行动,并避免在几十个工程师构建同一个应用程序时互相踩到对方的脚趾?
一些移动工程的挑战是这个领域所特有的。 大部分的独特性与通过应用商店分发的二进制文件、移动设备经常离线、深层链接、应用内购买以及我们在第一部分讨论的其他主题有关。
构建Windows、Mac或Linux厚客户端应用程序的工程师最能体会到这些困难;因为许多这些挑战是网络或后端工程师所不知道的。然而,很少有厚客户端应用程序像移动应用程序那样看到很多用户,或者像应用程序那样频繁地--无缝地--推出新版本,或者像移动应用程序那样需要担心不可靠的网络。
许多工程方面的挑战与其他大规模工作的团队所面临的类似。 以可靠的方式建立和运送数百万人使用的应用程序,同时也要快速移动,这是大规模后端或网络团队所经历的类似挑战。同样地,为一个在单一代码库上工作的大型团队寻找良好的工作方式也不是什么新鲜事。
在第二部分和第三部分中讨论的困难和解决方案都与其他非移动工程团队处理类似规模问题的方式相似。
真正的挑战是,许多移动工程师和经理经常发现自己正在处理
由于移动应用程序的快速采用,许多移动工程师和经理经常发现自己在处理最大的客户。除了
本书中的资源外,你能做的最好的事情之一就是与其他公司中从事类似挑战的工程师、经理和团队联系。移动原生基金会的讨论区是一个很好的开始。
不断变化的语言和框架在这个时间点上构成了独特的挑战。
在Swift和Kotlin获得原生开发的牵引力的同时,我们看到新一波有前途的跨平台方法出现了。Kotlin多平台移动、Flutter和React Native以及其他方法都获得了不同程度的发展势头,并提供了不同的权衡。
从来没有像现在这样有这么多不同的方法来构建移动应用。第四部分深入探讨了这种情况。
我敦促你不要抄袭其他公司正在做的或写的东西,而是要了解各种方法之间的权衡,并确定你的团队和公司的优先事项和限制。
构建世界一流的移动应用程序带来了另一系列的挑战。 一流的移动应用程序在各种设备上都有出色的性能,几乎对所有的用户都能可靠地工作,并且安全、合规。它们的构建方式也允许团队在不破坏体验的情况下快速移动并试验新功能。
团队使用功能标记和实验、监控和警报以及随叫随到作为工具和流程来实现这一点。第五部分讨论了一流的工程团队在构建应用程序时采用的方法。
构建与购买工具正成为一个越来越重要的决定。构建大规模的移动应用程序仍然是一个相对较新的领域,而且很难找到工具或供应商的解决方案来应对你所面临的所有挑战。在Uber,我们在内部建立了许多解决方案;从定制的CI/CD系统,到本地化服务,以及我们定制的功能标记系统。
构建和维护不是你业务的核心部分的功能,但随着时间的推移,你的速度会变慢。在Uber,仍然有大型团队在维护所有的定制工具,使移动团队能够快速行动。如果你的公司不是Uber,你可能没有足够的规模来支持这种类型的前期投资。
购买解决方案是许多大公司越来越多地转向的做法。越来越多的供应商开始为应用程序提供规模化服务,其中许多供应商由曾经在其他公司内部从事过完全相同的挑战的人创立或雇用。
你想做好移动工程的最大原因是移动应用对其各自业务的影响。 在研究这本书时,我与几个移动工程的负责人进行了交谈,他们有的来自超高速增长的初创公司,有的来自世界上最大的移动应用。他们都告诉我同样的事情。
大多数企业看到越来越多的人使用他们的移动应用程序,这对于快速、方便、可靠的世界级移动应用程序来说尤其如此。最大的公司正看到客户转向使用他们的应用程序,而不是他们的网站和其他渠道,但前提是应用程序具有他们需要的功能,在他们需要的时候。有几家公司提到,应用程序用户的客户保留率和客户消费额要高于那些不(还)使用应用程序的用户。
所有这些公司都要求他们的移动团队建立更多的功能,更快完成,并保持高质量。他们看到了移动应用程序的价值,并准备投资更多:更多的人,更多的工具预算,更多的资源,以实现这一目标。
移动工程的格局一直在变化,所以要保持你的耳朵在地上。我相信我们仍然处于移动工程的一个令人兴奋和充满希望的时期。那些将成为行业标准工具的解决方案要么还没有建立起来,要么就在我们说话的时候正在组建。
保持好奇心。与业界同行联系。谈论他们是如何解决你所遇到的问题的。加入移动社区、聚会、会议,以便跟上行业发展的步伐。
移动原生基金会是在几个团队和公司意识到他们都在解决同样的问题后创建的,但都是孤立的。该基金会是越来越多的关于移动工具的项目和有趣的讨论的所在地,值得关注和参与。如果你有兴趣了解更多关于大规模的移动挑战,我建议你加入这个社区。我已经是一个会员了。
感谢你阅读本书,如果你有反馈或意见,可以通过scale@pragmaticengineer.com联系作者。
-- Gergely Orosz
用Bitrise管理移动工程的规模!
要成功地建立一个大规模开发的移动工程组织,不是一件小事。 在这本书的几百页中,我们真的只看到了表面。 **但是,正确的做法很重要。
发布频率是应用商店和用户的奖励。这也是你跟上操作系统变化的方式,也是你领先竞争对手一步的方式,或者跟上用户需求变化的步伐。同时,也没有什么出错的余地。对于本书中谈到的许多团队来说,如果一个破损的版本从缝隙中溜走并进入终端用户的设备,那就是一个(昂贵的)噩梦。对于**人来说,它可能会导致评分下降、用户流失,以及在试图重新获得这些用户时的一场艰苦战斗。
成功的团队会在速度和信心之间取得平衡,并将昨天的 "推动和祈祷 "战术换成更有分寸的方法,使速度最大化,风险最小化。Bitrise帮助世界上许多最成功的移动团队,无论大小,都能保持这种平衡。
Bitrise是一个基于云的,安全的,可扩展的CI/CD解决方案,为移动而建。它支持每一个主要的Git服务,移动开发框架,测试服务,以及所有其他你知道和喜爱的工具。通过关闭构建、测试、部署和监控你的应用程序之间的循环,Bitrise的团队更频繁地发布,更快乐,并报告了团队效率的显著提高。美国房地产巨头Compass最近报告说,在迁移到Bitrise的新Gen-2基础设施后,与CI相关的成本下降了71%。
今天,数以万计的移动团队依靠Bitrise来简化他们的构建、测试和部署过程,并因此超越了他们的竞争对手。诸如Transferwise(现在的 "WISE")、Virgin Mobile、Grindr、Tonal、Compass、Mozilla、Philips Hue、Babbel和其他公司都使用Bitrise,使移动工程团队能够大规模地解决移动带来的挑战。客户包括初创企业和移动独角兽企业,以及拥有数百年历史的企业,通过Bitrise构建、测试和部署的应用程序已经进入了全球数十亿的终端用户。
我们可以肯定地说,没有任何地方可以让你找到这些令人难以置信的天才,有效的移动工程组织的高度集中,我们正在利用他们的集体知识和实践,使平台上的每个人都更好。
我们希望你能加入我们。