Tag: Matt Winn

iOS @ Over:成立平台团队

所有扩展团队都面临的挑战是处理越来越多的技术债务和性能问题。 团队中只有几个人,在重构和知识共享上进行协调就更容易了。 随着团队的扩大,协作和沟通变得越来越复杂。 一旦这些团队开始更快地行动,放慢速度并处理越来越多的技术债务就变得更加困难。 在本文中,我们将说明Over团队内部发生的情况以及导致iOS平台团队创建的原因🚀 a扩展团队的裂缝 随着我们团队的扩展,我们的代码库也是如此。 我们主要在Swift中进行开发,这对我们的总体构建时间有很大的影响(希望这可以改善WWDC🤞)。 Buddybuild上的构建服务器大约需要20分钟的时间来构建并运行我们对Pull Request的所有测试。 干净构建Over可能最多需要3分钟的时间。 这些时间每天都会加起来,当我们开始注意到如何切换到Slack或等待时浏览网页时,情况会变得更糟。 等待构建时进行的所有上下文切换确实损害了我们的生产力。 我们经历的另一个痛苦点是不断增加的技术债务。 一个这样的例子就是我们用团队替换了圈子功能。 这是一个很大的重构,也已实现为功能标志。 这意味着Circles和Teams并存。 一旦我们最终发货,团队就继续为团队提供支持,并且无法真正证明删除旧代码所花费的时间是合理的。 毕竟,将有意义的功能交付给我们的用户是我们的首要任务。 以上问题只是众所周知的冰山一角。 一旦我们退后一步,很明显,我们需要一支专门的团队来完成产品工作,并且可以专注于帮助我们的iOS团队更加成功。 我们确定了我们团队中的一个人Jamie Raad,他愿意潜入创建平台团队并定义工作量和优先级工作。 让我们看看它是如何下降的……😃 ✍️定义我们的平台团队 平台团队的存在是为了确保面向用户的功能团队的持续成功。 由于平台团队不受功能工作和产品截止日期的束缚,因此可以自由地关注更广泛的挑战,这些挑战会阻止团队更顺畅地进行运输或提高生产力。 这是我们作为团队优先考虑的任务列表,我们应该从以下几项开始: 缩短构建时间(在本地和在Buddybuild上)。 研究新的崩溃报告工具。 从应用程序中删除领域。 来自各个部门的临时请求。 平台团队还负责倾听团队的技术需求,并研究新的和改进的API,以协助软件交付。 拥有一支专门的团队还意味着我们有资源来调查诸如难以复制的模糊错误,图像预加载机制以及可重复使用的通用提要的方法。 这些只是平台团队可以改善我们工作方式的一些现成示例。 👀第一组结果 随着平台团队的建立和准备就绪,我们开始了第一个挑战: 构建时间 。 此处的目标是尝试确定构建哪个框架花费的时间最长,以便我们可以准确地确定优化的地方。 最终,能够将构建时间减少至少50%将是一项巨大的成就。 为了获得结果,我们遵循将不同的诊断选项传递到编译器的这些准则。 我们通过了-driver-time-compilation和-Xfrontend -debug-time-compilation 。 这里有更多关于他们的信息。 xcodebuild -destination ‘platform=iOS Simulator,name=iPhone 8’ \ -sdk iphonesimulator -workspace […]