第一次成为技术主管易犯的3个常见错误
译自 Three Common Mistakes of the First Time Tech Lead
by Patrick Kua
Tech Principal and generalising Specialist
Don’t miss the author’s earlier post on the 5 Tips for Being an Effective Tech Lead.
别错过作者先前写的关于成为高效技术主管的5个秘诀。
The first time a developer steps into the role of a Tech Lead can be difficult. The skills and experience of a seasoned developer do not automatically translate into the skills necessary for the Tech Lead role. In fact, some of the habits of a developer can do more harm than good, when not applied well and with more authority in this new role.
头一回由开发人员转换到技术主管的角色可能比较困难。开发老手的技能及经验不会自动变成技术主管所需要的技能。事实上,在没有充分用好这个新角色的权利时,开发人员的一些习惯非但无益反而有害。
In this article, we explore three common traps a first time Tech Lead experiences, and what they can do to avoid them.
在这篇文章里,将会探讨技术主管新手会遇到的三个常见陷阱和避开陷阱的做法。
- Coding Full-Time A first time Tech Lead will miss writing code. In fact, it is easy for them to assume that they need to demonstrate their leadership by writing code all the time. Although effective Tech Leads need to spend some time writing, reading and reviewing code, other responsibilities are left unfulfilled when they spend too much time writing code, - such as creating a technical vision and ensuring that the team understands key system quality attributes.
- 整天写代码 技术主管新手很怀念写代码。事实上,他们很容易认为,需要通过不停地写代码来展示他们的领导能力。虽然高效的技术主管也需要花时间写代码、读代码、检查代码,但是当他们花大量时间去写代码时,其它的责任并没有得到落实。比如:创建技术视角并确保团队理解关键系统质量属性。
A lack of technical vision might lead to three different implementations, as developers make decisions individually about what they feel is best, or a deployment might fail because developers are not aware of operational constraints or environmental differences in production. Worse yet is when the code must constantly be reworked because a developer chooses to do something differently without considering maintenance, or how the system may evolve over time.
缺乏技术视角可能会导致三种不同的执行结果,如开发人员单独作出他们觉得最好的决定;或者部署失败,因为开发人员没有知道生产上的运行约束和环境不同点;更有甚者代码必须不断重写,因为开发人员没有考虑到运维或者系统可能会随时间演变,选了一个不同的做法。
The more experienced Tech Lead understands that they must balance their time to code with other responsibilities. They split their time daily, or at the very least weekly, to ensure that they spend time addressing other responsibilities including building a shared architectural vision, identifying and addressing technical risks, being involved in planning sessions and focusing on team and code cohesiveness and consistency.
较老练的技术主管知道必须平衡写代码和其他责任两者间的时间。他们每天抽时间,或者至少每周,来确保花时间去履行其他职责,包括:建立共享技术愿景,识别和定位技术风险,参与规划会议,关注团队和代码内聚力和一致性。
- Making all the Technical Decisions
- 独揽技术决策
A first time Tech Lead may sometimes be the most experienced developer on the team, or feel the pressure to make all the technical decisions to demonstrate their authority or influence. When a Tech Lead is making all the technical decisions, they become a bottleneck in the team and the team cannot progress when the Tech Lead is not around. Other team members might feel demotivated when the Tech Lead makes all the important decisions, because their contributions are overruled and this could lead to resentment.
技术主管新手有时是团队中最熟练的开发人员,还是感受到为了树立威信或影响力而独揽技术决策的压力。技术主管独揽技术决策会成为团队的瓶颈,当技术主管不在时团队无法前进。所有重大决策都由技术主管一手独揽,其他成员也会失去动力,因为他们的贡献被驳回,这可能会导致怨恨。
The more experienced Tech Lead realizes there are different ways of making decisions, and often, the best decision comes from using the breadth of experience and knowledge from the entire team. They might draw upon the following techniques, depending on how critical a decision is, how quick a decision must be made and how much commitment they want from team members:
较老练的技术主管知道有很多做决策的不同方式,通常,最好的决策来源于整个团队的经验和知识的利用。根据决策的重要性、紧迫性以及他们想要团队成员付出多少,他们可能会利用下面的技巧:
- Only delegating - A Tech Lead gives the decision to someone else without any other interaction
- Offering advice - A Tech Lead delegates the decision to someone else, but offers their input and opinions for consideration
- Inquiring - A Tech Lead delegates the decision to someone else, but inquires about the outcome and factors that led to the decision afterwards
- Building consensus - They bring all team members together to find a solution that everyone is happy with
- Consulting with the team - They invite opinions from team members, synthesise the information, but ultimately make the final decision
- Being autocratic - They use the information they have to make a decision, choosing to involve or not involve team members, but inform everyone about the outcome.
- 仅仅委派 技术主管不干预,让其他成员做决策。
- 提供建议 技术主管提供信息和意见,供其他成员参考做决策。
- 询问 技术主管委派决策权之后,会询问影响决策的产出及因素。
- 建立共识 召集团队成员一起拟定众人皆满意的解决方案。
- 与团队商量 征集团队成员的意见,整合信息,最后再做决策。
- 专制些 选择部分团队成员参与,利用已有信息做决策,但会把决策结果通知所有人。
- Forgetting about Cultivating Team Culture
- 忽视团队文化建设
A team is a group of people working together towards the same goal. The first time Tech Lead might mistakenly see their role leading on all the technical aspects and forget about how the team works together. Although this responsibility may be shared with other roles such as the Team Lead or Project Manager, a Tech Lead must also shepherd the team to move in the same technical direction.
团队就是朝着共同的目标齐心协力的一帮人。受技术方面的指引,技术主管新手可能误解自身角色,忘了团队应该怎么样一起共事。虽然这个责任可能其他角色也应该承担,例如团队领导、项目经理等必须引导团队朝着同一技术方向前进的技术领导。
It is all too easy for the first time Tech Lead to ignore heated discussions between two developers, or to ignore how technical team members interact poorly with or disrespect non-technical team members.
技术主管新手也很容易忽视两个开发人员之间的激烈争执,或者忽视技术团队成员与非技术团队成员的互动不佳以及不尊重非技术团队成员。
The more experienced Tech Lead realizes that the lead part of their role is just as important as the tech, and constantly looks for ways to build trust and relationships between people in the team. They use practices like white-boarding architectural diagrams as a team, establishing coding or architectural principles with the team to guide individual decisions or running regular improvement katas or retrospectives.
较老练的技术主管知道他们角色的领导部分和技术部分同等重要,并时常找方法来为团队成员建立信任及关系。他们利用这样的实践,白板结构图描述团队,建立代码或结构原则与团队的联系,来引导个人决策或者执行定期改进招式或作品展。
Conclusion The first time Tech Lead can easily fall for a number of traps, often caused by habits developed from their time as a developer. To overcome these traps, they must find ways to strike a balance between their technical and leadership responsibilities.
结论 技术主管新手很容易落入诸多陷阱,通常是由他们担任开发人员时期所培养的习惯引起的。为了克服这些困境,他们必须找到平衡技术和领导职责两者的方法。
Find out more about the experiences of other Tech Leads in Patrick’s book ‘Talking with Tech Leads’. You can download a free sample of the book here.