技术领导之路:如何从开发人员转变为团队负责人

若是软件开发只是你职业目标的一部分,那关于将来如何成为一名技术负责人也许是你应该认真思考和学习的事情。技术负责人可能意味着不一样的事情:身兼团队负责人或技术经理的职责。譬如,研发项目经理是一个须要对其团队及项目负责的团队角色。这也就意味着他们还需对团队成员的工做状况、业务增加状况、可交付成果、项目截止日期、团队文化、代码标准、技术债务等等负责。编程

做为一名开发人员,你清楚如何从目前的职位晋升成为一名技术负责人吗?若是你的目标是尽快成为一名技术侧管理者,那么你首先须要问问本身为何想要担任这个角色?成为一名技术管理人员不必定是真正符合你长期目标的一个选择。架构

以往我之因此从事软件开发,是由于与“电脑”合做比与人合做更让我感到自在。可是一段时间后,我发现本身可以在各方面愈来愈多地帮助到其余开发人员。同时我喜欢主导项目并追求更完美的代码水平。所以,就我我的而言,成为研发项目管理者是一个显而易见的最佳选择。单元测试

但对于多数软件工程师而言,成为一名独立贡献者(IC)多是更为合适的道路。许多公司都会选择聘用一个杰出工程师或资深工程师等很是高级别的技术角色而非职业经理人来管理技术团队。学习

▲开发人员的刻板印象:吃披萨,仅在晚上工做等等▲测试

那么,你是想成为一名研发项目管理者仍是其余类型的团队负责人呢?问题的关键在于诚实地了解驱动你的因素-到底是编写代码仍是软件架构设计?又或者你但愿帮助其余开发人员取得更好的项目结果?与项目的相关者协商交付日期?以及说服你的业务团队在必要的时候进行代码重构?spa

对这些问题的回答将有助于你肯定哪条道路更适合你。开放源代码

若是你仍然确信成为一名技术负责人是你的选择,那么你还须要作一些前置准备工做:考虑与你的项目伙伴或导师合做,让他们在你不熟悉的领域为你提供帮助。架构设计

若是以上说的内容,你都已经肯定并准备好。那么接下来的10点建议是我以为你在成为技术团队负责人的道路上须要持续努力作到的事情:设计

一个真正的领导者无需职称或权威就能够领导他人。任何具备花哨头衔和被组织赋予足够权力的人均可如下命令。但切记,站出来下命令不是领导能力的体现—而是你的工做。code

所以,你应该从小处着手。在困难的项目中承担更多的责任。经过在项目过程当中提供反馈来帮助你的伙伴。而且主动去介绍项目更新进度,提出对团队或产品工做流程的改进等方法来指导你的伙伴们。

一个项目中,实际上是有不少值得你去主动帮忙的地方的。但通常人们要么不肯意帮忙,要么没有足够的专业知识或信心去承担责任。所以你须要肯定你的同事正在苦苦挣扎什么,而后站出来帮助他们。

承担责任时,应对你所作的或没作的一切负责。领导者要承担责任,避免将错误,错过截止日期或漏洞归咎于他人。

与其抱怨别人犯过的错误,不如帮助他们修复错误并解释未来如何避免它。既然找借口并不能帮助任何人,那么你应该要花时间践行你所承诺的。若有必要,请与你的经理协商一个更好的期限。而后像你运营本身的企业同样运行一个项目,并切身地关心它。

最近,我团队中的一位技术负责人扩展了一个咱们的 master 分支。缘由在于他早前发现单元测试的覆盖率大大降低。当下他没有抱怨,而是默默地增长了缺乏的测试范围。而后介绍了如何正确检查覆盖率以及如何编写复杂功能的单元测试。能够看出他愿意在团队中提供帮助,而不是去责怪他人。团队全部人都对这个行为表示赞扬。

总是说,若是你不想与“人”打交道,那么在你想要成为领导者以前须要再认真考虑一下。

创建有意义的人际关系是技术研发管理者的职责之一,由于管理是使事情经过他人来实现。所以,从如今就开始与他人创建良好的合做关系,他们将是你将来的伙伴。

也许你能够尝试经过如下列举的几种方法来促进本身作到与他人创建良性合做关系:例如在技术沙龙中进行演讲、参加研讨会以及在团队以外指导开发人员。

一名研发技术管理者首先要是一名软件工程师。他们必须具备强大的软件工程背景和动手经验,必须是团队中最强大的工程师之一。没法编写代码或不了解技术细节的管理者是不能参与技术讨论的。同时也意味着成为管理者后,也应始终须要保持足够强的技能,以胜任更高层次的架构需求。

在团队中,没有团队合做精神的“优秀开发人员”的存在,其实都是弊大于利的。若是你在技术上很强,那么你应该帮助其余人达到本身的水平。结对编程、代码审阅、演示、开放源代码或内部源代码项目都是帮助他人很好的示例。

可能不多有人会主动来找你请教问题。可是,经过把本身称为“技术专家”并主动作上述事情,人们天然会开始向你寻求建议。经过帮助他人,你能够创建有意义的人际关系并赢得人们的尊重。你也要但愿他们作一样的事情做为对你的回报——在有能力的状况下去帮助他人。

按时交付项目是管理者的核心职责之一。若是做为开发人员,你老是由于低估任务而错过了截止期限,那么其余人将如何信任你呢?当咱们处理任务时,你必须保持层次分明。

众所周知,因为存在不少不肯定性,所以估算软件项目的可交付时间是很是困难的。可是,经过正确的流程,多与你的项目经理或利益相关者不断交流项目的进度和指望,对项目进行有效把控并不是不可能。

例如,个人团队正在作一个每周工做状态报告,这个小举动使得项目技术负责人有机会与咱们交流进度,尽可能减小当前的阻碍因素或有可能引发没法按时交付的问题。

清晰,简洁地沟通是全部领导者都须要拥有的重要特质。若是你没法清楚地说明团队的要求,那么你在成为领导者,甚至尚未开始任何工做以前就失败了。

沟通有多种形式,包括口头、书面甚至肢体语言。你须要一直努力提升每一种不一样的沟通技能。

由于我未能及时清晰地传达需求,个人团队曾错过了一些截止日期。可见在一些状况下,缺少沟通会令团队在应该作的事上形成混乱。我了解到,单单依靠项目经理或团队商务来解释项目详细信息是行不通的。做为研发负责人,自己必须了解相应的重点项目,而后对其进行解释并传达给团队。同时,激励团队人员去努力完成项目。

“管理”你的管理者(有时是其余团队的负责人)。这意味着要与他们不断沟通并管理指望。做为管理者不管好坏都不多喜欢“惊喜”。你要与你的管理者创建信任关系。成为重要的项目专家,并按时按预算地完成它们。而后进行更多项目,不断重复此过程。

不管你进行过多少次单元测试或集成测试,或多或少都仍是会在这过程当中出现问题。是的,你但愿最大程度地减小项目中的错误。但更重要的是你是如何处理这些技术问题的。在他人的压力下开始恐慌的人当即会被取消领导资格。团队和其余负责人但愿看到一个冷静的管理者,即便在最紧张的状况下,也能够控制一切。

举个例子,我曾经合做过的技术负责人在遇到问题的时候老是很冷静。没有任何冲突或压力可使他慌乱,至少没有人看到他压力很大。当谈到凌晨3点还在处理技术问题时,他并不感到丢脸。在他的工做现中,这个问题像在几分钟以内就解决了同样。

反观另外一位技术主管,由于最后期限的临近而倍感压力,他在咱们准备发布一项重要功能的那天打电话请了病假。他太焦虑了,以致于周围的人都不肯意和他一块儿工做。

这是两个彻底相反的案例,但你们不难看出哪个管理者更有可能在将来取得成功。

对于技术负责人应负责的全部事情,都应该理解“为何”。他们需负责确保其余人都知道他们为何要作这个项目。领导者必须(常常或屡次)解释为何要进行这个或那个项目,为何要由特定人员进行该项目以及该项目如何能适应“大局”。团队必须相信本身的所做所为,而后他们才能有效率地工做。

不要等待被许可,从如今开始就站出来。成为你所在领域的专家,当人们陷入困境时帮助他们。致力于提升你的沟通技巧。与你当前和潜在的将来同伴创建良好的职业关系。确保高效地管理时间,而且在每个项目的交付期限以前完成任务。最后,不要忘记领导力与人有关,因此要真诚地帮助你的同伴成长并凡事尽力而为。

🔗原文连接:https://medium.com/free-code-...

image.png

相关文章
相关标签/搜索