我们团队的工程系统

首先说一下,写这篇文章是源自看了喵大的这篇:https://xiaozhuanlan.com/topic/7021963485

然后我必须指出的是,以下所有内容仅代表我个人观点,与我的雇主没有任何关系,不能代表 Microsoft 的言论。

团队风格

目前的 Outlook Mobile 团队实际上是源自三个部分:Acompli 收购 + Sunrise 收购 + 新招的 Microsoft 员工,我是属于新加进来的这种。和很多被收购的团队一样,我们很多风格和工具链上面,会选择一些业界比较好的解决方案,虽然我们也在逐步的迁移到 Microsoft 的工具链下,但现今来讲还是有很多保持了原来的风格。

可能也是由于我们不是传统出生的 Microsoft 团队,在技术选型方面也是很少使用 Microsoft 传统的技术栈,所以我们团队 Backend 也都没有 C#,而是在用 Java/PHP/Node 等技术方案,当然移动端就是就是完全的原生解决方案。

开发设备

MacBook Pro 15 + Workstation + 两个显示器,这就是全部设备,当然作为 iOS 开发我基本没有怎么使用过 Windows 机器。MacBook 的配置还是可以的,我这台是 2.5 i7 + 16 + 512 这样一个配置,基本上可以满足需求,和腾讯阿里这些公司一样,都是三年一换。

每年我们还会再买几次移动端设备,组里面可以自己分一下,你可以平常自己使用,我们也鼓励你使用开发设备作为自己的日常机器,这样能更方便的使用和测试自己的产品。

基本上 Microsoft 团队不太可能会在硬件上亏待开发者,因为老板也知道真正贵的不是硬件成本而是员工工资,所以以前有个大老板说过,对于 Engineering 的投入是可以没有 Budget 限制的。。其实无非就是多买点机器,花不了多少钱。

Jira & Confluence

这两个都是 Atlassian 的产品,我们长期使用这两个产品来做项目的追踪和记录,但目前我们可能会把很多需求都转移到 VSTS 上面,这是后话了。

Jira 提供的是项目追踪的功能,这个东西怎么说呢,比较成熟稳定,缺点是交互比较复杂,用起来不是那么舒服。Confluence 则是一个类似于 Wiki 的东西,也是用起来不是特别舒服的一款产品,当然他们都有好处,在功能方面是可以满足要求的,只是可能用起来和看起来不是特别好。

Slack

Microsoft 内部其实使用 Skype for Business 作为沟通工具,但我们依然保持着创业团队时期使用 Slack 的习惯,所以也造成了一些 Partner Team 经常很难找到我们的状况。使用 Slack 一个最大的好处是我们可以集成很多自己的 Bot 进去,与我们自己的系统结合起来。比如做一些 Reminder 可以提醒我们 Release Manager 到了什么时候要做什么事情,或者是又出现了什么新的 Crash,Build 成功或者失败了什么,我们可以收到很多消息。

Slack 上面更有趣的一点是有很强烈的 Emoji 和 Sticker 文化,平添了几分乐趣,同时 Slack 的移动端做的也是不错的。

代码管理

这个部分我们做过几次迁移,首先我们使用的 scm 工具毫无疑问是 Git,但是托管服务经历过几次变迁,最早的时候是在 BitBucket 上面,后来迁移到了 GitHub Enterprise,到现在又迁移到了 VSTS。VSTS 是一个集成了很多功能的 Microsoft 服务,可以做代码托管、持续集成等很多事情。

我们使用 Git 的方式一直没有变过,Core Team 使用各自的 Branch 开发,Partner Team 通过 Fork 来参与开发,最后都是通过 PR 的方式,进行 Review,逐步的合并到 develop,再合并到 release,再合并到 master,完成各个阶段的打包工作。所有的代码都需要经过 Code Review。

我们曾经非常重度的使用 GitHub Enterprise,就连我们的设计师跟我们讨论问题也都是在 GitHub 上面开 Issue,所以设计师 GitHub 也玩得很溜。

持续集成

top Created with Sketch.