techlead

Tech Lead Toolbox

要 Tech Lead 还是不要 Tech Lead

原文链接:https://www.nikosraptis.com/single-post/2017/01/21/Tech-Lead-or-no-Tech-Lead

什么是 Tech Lead?

“领导一个开发团队并非易事。一个高效的 Tech Lead 与开发团队建立技术愿景,并与开发人员合作将其变为现实。在这一路上,技术主管承担其他角色可能具有的特征,例如 团队负责人,架构师或软件工程经理,但他们仍然亲自动手编写代码。“

资料来源:https://www.thekua.com/atwork/2014/11/the-definition-of-a-tech-lead/

我相信上面的文章很好地解释了 Tech Lead 是什么。我可以提到一些更多的细节,比如代码审查员或者负责合并到生产等。所有这些以及更多其他的工作内容,使得 Tech Lead 角色成为团队内外人员的参考。

编码怎么样?

技术领导通常至少编码30%的时间,因为

  • a)通常他们擅长
  • b)他们的代码风格(应该)是其他人遵循的一个例子。

他们不能 100% 编码的原因是:他们必须在设计、思考和分析解决方案的更大领域方面迈出一步,并为其他领域做好准备。   有时代码而不是代码,它们会生成文档和图表,这些文档和图表将成为其他开发人员的一种要求,并且它们还提供有关技术问题,以及如何解决这些问题的有用信息。

Scrum 团队怎么样?

让我们记住 Scrum 指南所说的内容。

“开发团队具有以下特点:

  • 他们是自组织的。没有人(甚至不是Scrum Master)告诉开发团队:如何将产品的 Backlog 转换为潜在可释放功能的功能;
  • 开发团队是跨职能的,具有创建产品增量所需的所有技能;
  • 除了开发人员之外,Scrum 不会识别开发团队成员的任何称号(title),无论该人员正在执行哪些工作;这条规定没有例外;
  • Scrum 不会识别开发团队中的任何子团队,无论需要解决哪些特定领域,如测试或业务分析;这条规定没有例外;和,
  • 个人的开发成员可能拥有专业技能和重点领域,但问责制属于整个开发团队“

资料来源:http://www.scrumguides.org/docs/scrumguide/v1/scrum-guide-us.pdf

我有意强调了这两个要点,因为它们似乎提出了这些问题:

  • a). Tech Lead 是 Scrum 无法识别的称号,如果是这样的话会是什么?
  • b). 这个角色可以由具有一些广泛技术知识的高级开发人员中取代吗?

显然它是一个称号,而 Scrum 不承认它。但是,让我们看看在每种情况下哪些是优点和缺点。

创建具有官方 Tech Lead 角色的团队的优点和风险。

有时当 Scrum 团队形成时,成员技能就不一样了。这导致一个简单的管理决策,给高级开发人员提供 Tech Lead 头衔。这有一些优点和风险的。

优点:

  • 大多数技术决策都来自这个人,没有太多争议。这将导致更快的结果。
  • 人们会感到更加宽慰,他们不必采取艰难的技术决策
  • 团队之外的人使用这个人作为参考点,沟通渠道较小,因此对他们来说更好(至少他们是什么东西)
  • 通常,如果这个人“真的”是一个拥有广泛技术知识的优秀开发人员,那么将会产生良好的技术解决方案

风险:

  • 其他开发者可能不同意 Tech Lead 的建议,但由于他拥有头衔,他们犹豫不决地说出自己的想法
  • 人们可以保持被动模式,等待他们如何实施某些事情的指示
  • 如果缺席,团队无法轻松前进
  • 结果的责任可被视为只有 Tech Lead 才有的东西
  • 可以减少 “团队” 精神,并导致经理-开发人员架构
  • 如果你愿意,以后很难改变心态

在没有官方 Tech Lead 角色的情况下,创建团队的优点和风险。

另一方面,Scrum 没有发现任何角色。这意味着团队可以在没有 Tech Lead 角色的情况下开始。让我们看看哪些是优点和风险。

优点:

  • 团队成员可能会更自在地谈论技术问题和决策。
  • 引导有凝聚力的决策,因此团队成员共同承担责任。
  • 可能会导致更积极的人采取主动并建议替代方案。
  • 可以增加 “团队” 精神

风险:

  • 人们可能会对他们做出的决定感到不安全,所以他们开始隐藏在“后台”
  • 由于分歧导致决策缓慢
  • 如果他们缺少高级软件开发人员,可能会产生技术债务的决策

团队中出现了一位 Tech Lead 呢?

这就是大多数时候,当你创建一个没有任何成员的官方 Tech Lead 角色的团队时,会发生这种情况。你只需要有一两个高级人员,可能在一段时间后,其他开发人员,将开始更容易地听取他们关于技术决策的建议。

这也很好,因为标题大部分时间都是团队中提到风险的原因,这个风险始于官方角色。可能一个人从团队内部出现,从未获得正式的头衔,但他的行为非常接近这个角色所承担的责任。不同之处在于她不会承担所有这些责任,这将是好事,因为它可能“迫使”其他团队成员采取主动。  

如果事情没有按计划进行怎么办?

这是你需要敏捷教练(或scrum master)的另一个原因。因为大多数时候事情往往不顺利,敏捷教练必须在那里提高敏捷世界中最佳实践的意识。

敏捷教练必须保持警惕,注意团队中的行为,使他们远离敏捷价值观。她必须立即采取行动指导人们,并试图明确希望的心态。