谁是技术主管?
简而言之,这是公司中最有经验的开发人员之一,他管理开发团队并负责项目上所有技术工作的质量。更详细地说,高效 Tech Lead 的主要职能之一是为开发团队制定项目技术部分的愿景,并与其他团队成员一起实施。这就是技术主管角色与其他重叠职位(例如团队主管、软件工程经理和架构师)的不同之处。稍后我们将更详细地讨论这些差异。技术主管职位的本质在各地都有不同的理解,考虑到整个开发行业的年轻化及其不断的转型,这是正常的。Ziff Media Group 的经验丰富的开发人员兼技术主管 Jeff Carouth表示对此 还有人认为,Tech Lead 是中层管理人员,原本是普通开发人员。也有人会说,技术主管通常只是公司中最有经验、最强大的开发人员,他们被任命担任这个职位是因为他们对项目工作的技术部分做出了真正的贡献。对我来说,技术主管是拥有丰富开发经验的人,并且已经证明了不仅能够与其他程序员有效沟通的能力,而且能够与其他人有效沟通,包括产品经理、公司管理层、设计师、广告商和其他人。” 非常全面。技术主管的职能是什么?
Tech Lead,在不同的公司也可以被称为TechManager、Lead Platform Engineer、Head Architect of Development或者其他什么,这取决于管理层的想象力,通常负责项目技术部分的实施。这是开发团队中拥有最终决定权的人,也是对项目中的错误和问题负责的人。敏捷学院的创始人兼负责人 Amr Noaman 很好地总结了公司 Tech Lead 职能的本质:“这个人在任何组织中的主要职责都是产品的技术实现。” 简而言之,更具体地说,“正确”Tech Lead 的主要职能列表如下:- 制定项目或其一部分的技术开发策略,并根据要求和情况对该策略进行调整和调整。
- 鼓励团队内部进行健康的辩论和讨论,促进决策过程。
- 努力消除可能妨碍团队成员有效工作的问题和因素。
- 识别并找到开发过程中出现的问题的解决方案,最好是在问题出现之前预测并消除这些问题的原因。
- 将项目不同部分的任务和责任委派给其他团队成员。
IT 公司需要技术主管吗?
正如业内惯例,在这个问题上也没有达成共识。例如,ThoughtWorks 的开发人员 Vinicius Gomes认为Tech Lead 职位通常存在问题,应该完全取消。在他看来,在开发界有相当大的支持,这个职位在大多数情况下涉及几个人的工作量,这就是团队结构经常受到影响的原因。因此,Gomez认为,最好通过调整管理架构来完全取消Tech Lead职位,以便开发团队的不同成员可以分配不同的角色。这将使团队能够更有效地工作。然而,大多数开发人员仍然认为 Tech Lead 职位是必要且重要的,当然,如果 Tech Lead 非常了解这项工作并正确履行其职能。优秀的 Tech Lead 是什么样的?
因此,我们来了解一下一个好的、正确的Tech Lead应该是什么样子,他能够、应该为团队做出什么贡献。-
组织开发团队高效、协调的工作。
大多数人认为 Tech Lead 的工作就是:尽一切努力确保开发团队最有效地完成工作。其中,Tech Lead 的职责与 Team Lead 和 Lead Engineer 的职责重叠,唯一的区别是 Tech Lead 必须对整个过程和最终结果负责。因此,只有在开发团队足够大并且正在从事的项目相当复杂和大规模的情况下,拥有 Tech Lead 通常才有意义。
技术主管的出色工作导致整个团队作为一个单一机制正确、和谐地工作,在计划的时间范围内交付所需的产品。
-
组建一支积极进取的开发人员和管理团队。
虽然乍一看这一点与前一点没有太大不同,但在这种情况下,我们讨论的是团队合作组织的一部分,涉及团队成员之间的沟通、动机、指导以及一般情况下不适用的所有其他内容到技术工作。
这是任务的管理部分,同时也是许多技术主管倾向于避免或认为没有必要关注的部分,因为他们认为它不那么重要和次要。然而实践表明,激励、个人方法、教练、激励以及在团队中营造友好氛围等东西仍然发挥着相当重要的作用(即使它们无法弥补技术部分的问题),并在最终的结果中得到体现。以最直接的方式得到结果。
-
协调和平衡努力。
协调是指开发团队不仅工作顺利、高效,而且与其他部门的工作也协调得很好。为此,高效的 Tech Lead 不仅必须了解开发人员的需求,而且还能够通过公司其他专家的眼光来看待工作。
-
对开发团队的所有成功和失败负责。
此外,一名优秀的 Tech Lead 作为一个人的主要战略家和战术家,知道如何对工作的成功以及在特定项目实施过程中不可避免地出现的失败或错误承担责任。
优秀的 Tech Lead 做什么以及如何成为一名优秀的 Tech Lead?
现在让我们更具体一些,看看技术主管做了哪些工作来实现上一节中讨论的目标。-
开发方法论。
开发方法到底应该是什么,在很大程度上取决于项目的目标、团队可用的资源、时间表、管理和许多其他因素。但开发方法论恰恰是技术主管的主要任务之一。他决定新版本发布的频率、下一个开发冲刺期间应实施的内容等。
-
技术栈。
这方面对于项目的整体成功极其重要,也是技术负责人的职责。它可能包括将用于实现项目的编程语言列表,以及框架、数据存储解决方案、库、QA 解决方案等。
-
软件架构。
在该领域,技术主管的权力与软件架构师的职责直接交叉,但在这种情况下,技术主管的地位高于普通架构师,并负责最终的决策和方法。
-
内部规划和责任范围分配。
Tech Lead 作为最终结果的负责人,必须为项目某些部分的交付设定最后期限并确定责任范围。
-
新版本发布的时间。
尽管事实上这个技术领导职能已经在上一节中提到过,但它还是值得作为一个单独的项目来强调,因为通常来说,为新版本设置截止日期在任何项目的生命周期中都起着非常重要的作用。
-
代码审查政策。
与审查和审查代码相关的一切,或者更准确地说,选择此过程的主要方法,也是技术主管的能力。
GO TO FULL VERSION