不同的软件开发团队做事风格迥异,即使在企业内部,团队与团队之间也存在诸多差异。作为一名软件工程师,和新的伙伴一起工作、开发新的软件通常是件令人兴奋的事情,同时他们还应考虑很多问题。最近,软件工程师 Thomas Stringer 就从技术、协作、外部、产品多个角度进行了分析。

技术

1. 如何在本地构建软件?

这是你应该学习的第一件事。毕竟,对于开发和运行软件来说,构建是第一步!

2. 如何在本地测试软件?

CI pipeline 对于纠正测试错误非常有用,同时它还可以缩短内部开发循环周期,确保测试顺利进行,同时检查回归。该 pipeline 不应成为创建或导致测试失败的首个迹象。

3. 如何设置开发环境?

团队文档应对此有明确要求。此外你还应了解在开发机器上要使用哪些不同的工具,以便使自己成为团队的生产者。一次性设置好环境来处理 95% 的需求,要比在开始开发后遇到错误和 gradle 依赖好得多。

4. 源代码在哪里?

通常情况下,在新团队中你将在一个预先存在的代码库中工作。因此,你需要知道代码在哪里,如何在本地机器上获取代码。

5. CI/CD pipeline 在哪里,它是如何工作的?

希望你能加入一个确保交付产品质量的团队。最常见的工具之一是 CI/CD pipeline。找出它的位置,并简单了解其工作原理,查看最近的一些运行,了解已经进行的步骤。

6. 产品 backlog 在哪里?

你面临的是软件的当前状态,但最好先了解其未来状态。快速浏览 backlog,查看产品即将推出的一些优先事项。

7. 预生产和生产测试是如何进行的?

新团队有集成环境吗?团队用 canary build 和部署来进行测试吗?团队是否引入混沌工程?你需要了解新团队如何确保其生产软件保持在特定标准。

8. on-call 以什么形式进行?

这款软件需要 on-call 吗?如果是,怎么轮换?事故发生频率是多少?on-call 是否有非工作时间要求?当我执行 on-call 时,如何得到通知?通常在你加入新团队时不会立刻开始 on-call 轮换,因此随着时间的推移,你可以在执行 on-call 前得到一些答案。

9. 内部文档在哪里?

新团队在哪里维护内部文档?是最新版吗?