我目前是一名专业程序员。我想扩展自己的技能,但我也想使自己的职业跃升为团队的开发负责人。我知道有很多东西要学习(这不会是一时的事情),但我认为我足够聪明,可以应付挑战。

我可以肯定的是,这里的许多成员可能自己都经历过,现在已经成为成功的开发主管。不幸的是,即使我知道我想提高一些个人领域(知识的深度,知识的广度,技能等),我也不确定如何开始这样的事情。

现在作为一名程序员,我应该采取什么步骤来实现这个目标?我应该优先考虑什么?

评论

您当前的公司是否有晋升为团队领导的机会?没有团队领导经验,我想知道是否有太多公司仅从内部聘用。

@JeffO我实际上只是换了工作。我不知道我是否会在这里有机会-我认为这是有可能的,但是这是一家小型创业公司,并且我认为一次只会有一个开发负责人。

只有一种技能:能够说服可以给您这个职位的人的能力。

事实证明,实际上我确实没有被排除在外的可能性非常大。尽管我想朝这个方向发展,但我认为我更多地落在了开发人员方面-有时候我只是想放下头,编写代码。仍在考虑可能性,但现在要谨慎。

#1 楼

要成为技术领导者,必须具备以下条件


能够指导各个级别的工作人员,从已经离开大学三个月的人到已经退休的人。已有30年的编程经验
对您的开发领域有很好的了解。其中包括:语言,框架,实用程序,开发环境
对问题管理系统,项目管理技能和版本控制有扎实的理解
成为杀手级杀手
知道如何及时执行代码评论,寻找的内容以及如何最大程度地减少持有这些内容以及进行更改的时间
了解开发领域中的最新动态。例如,如果您没有从.NET 2中学习新的框架或技术,那么您今天的工作就会倒退。
如何编写单元测试和模拟,以及如何让开发人员编写它们也
知道什么是设计模式以及何时使用它们
知道什么是代码异味以及如何缓解它们
持续集成
计划项目和发布的能力

取决于您的组织和是否有架构师,您可能需要了解以下内容:


将您的项目进行组合并将其分解为文件的能力功能部件
全面了解安全性,包括正确的密码处理方式,分离系统,保护数据等
企业概念,例如服务总线,消息队列,BizTalk
企业设计模式
服务体系结构/ RPC(例如SOAP和REST)
ORM框架(例如Hibernate,实体框架,Doctrine
持续部署

能够推荐用于项目的正确技术的能力。如果您的团队/商店仅使用.NET,PHP或Java,则可能会很难。
在设计应用程序时,可以轻松容纳将来的增强功能

如果您要成为开发经理,那么您还需要:


面试技能以及如何找到合适的员工
如何与团队成员一起解决人际关系问题
管理业务指令/目标并将相关的指令转换为开发人员的信息
可以估算时间适用于各种技能的程序员
根据他们的技能和能力将任务分配给正确的开发人员的能力

最后,还有其他一些建议要点:


在开发领域之外学习
在事情不可能或超出范围或与预算或时间限制等冲突时学会说不。

管理团队是一种要成为具有挑战性的角色。您需要成为能够回答任何问题的人,您需要知道使用正确的技术(除非您有架构师),您必须具有人员管理技能,并且必须与员工保持联系(假设是管理职位)。除此之外,您还需要具有准确的估算技能以确保项目的获利能力,并且需要能够掌握任何人的代码以查明问题并快速解决。您需要避免自己做任何事情,并营造一个无毒的团队环境。您需要不断地掌握技术栈,并学习最新的发展和技术以及更广泛的行业趋势。

您还应该真正了解至少一个数据库平台,并且知道它好。知道如何进行复制,存储过程,查询优化器如何工作,如何正确设计模式以及要索引的字段。

无论职位高低,任何高级职位都要求您具有有效沟通的能力。如果您不是自信的演讲者,请考虑做类似Toast Masters(公开演讲)的事情。了解如何保持和保持眼神交流。自信点。穿着适当的位置。以身作则。

评论


我只是勾勒出一些我可以很快想到的想法。我将重新访问并在以后添加更多内容。好问题。

–山姆
13 Mar 19 '13 at 0:50



我可以讲授Toastmasters的好处。这对我的职业生涯有很大帮助。能够清晰地传达您的想法(特别是非技术人员的技术想法)是一种非常宝贵的技能。

–詹森·斯威特(Jason Swett)
13年5月7日在16:19



#2 楼

根据我的经验,Lead很少与动手编程有关,而与管理有关。为此,我建议以下对象:


花更多的时间在设计和体系结构上。作为主管,您的职能将围绕为团队提供技术指导和指导。您将承担更多的任务,以了解整体的组合方式,而不必过多了解管道的工作原理。别误会,您需要扎实的技术才能成为有效和知识渊博的领导者,但在这里更重要的是对正在发生的事情以及它如何工作的更高层次的了解。您应该了解更多最佳实践设计模式和有效的编码实践

学习多任务和管理时间。如果您现在擅长,那就很好:开发更多。作为开发人员,您只需要担心当前的任务/项目。作为潜在客户,您将要参加的会议数量超出您的期望。这也许是团队领导中最令人烦恼的部分
资源分配工作。如果幸运的话,资源将变得稀缺,项目也很多。
领导项目体系结构和设计
根据组织的规模和结构,按时,按时提供无数报告。将负责人视为低租金的项目经理。


准备好有效地委派自己。该IMO将是最难调整的部分。作为开发人员,您习惯于动手做事。做所有的管道和研究。这将不得不停止或减少。演出来了,你把它分发给团队。您将获得一部分动作,而不仅仅是像以前那样多。而且,您会咬住舌头以抵制诱惑,为自己采取更多行动。
沿着更专业的路线,考虑一些培训,这些培训不仅会提高您的能力,而且会改变您的面貌。说软件项目管理的速成课程不会受到伤害。精益六西格码也是一个很好的培训计划(我可以证明它的功效),它将帮助您从更逻辑的角度看问题解决。更不用说从领导职位开始,您将准备担任更多高级职位,这些职位将需要较少的动手技术技能和更多的管理能力。
磨练您的沟通和人际交往能力。您将成为外部团队的主要切入点。您的经理或其他主管将首先与您联系。您组织中的其他部门/团队将首先与您联系有关团队的任何事宜。您将要管理所有最困难和不可预测的资源:人员。您需要长出一层厚厚的皮肤,学会吞下大量的骄傲,并对团队的失败负责。


评论


好的答案,我喜欢您注意到您作为开发人员通常不了解的所有内容,尤其是委派。我的上一份工作委派了我所能做的一切,但仍然有很多东西让我忙。然后,在(很少)空闲的时间里,我会做“无聊的”工作-提供帮助修复较小的错误和文档。得从前面领先。

–罗克兰
13年3月19日在2:35

+1强调“领导”角色通常比技术技能涉及更多的管理

– Krease
13年3月19日在5:03

这是一个出色的答案,确实抓住了角色的本质。做得好。

–劳埃德·摩尔
16年5月25日在18:26

#3 楼

Sam没说过的话也很重要:


如何规范内容并让其他开发人员工作。您的工作之一是让其他开发人员100%被利用。编写明确的规范非常重要。
如何构建其他所有人都应该遵循的框架/原型应用程序
如何培养良好的团队士气
如何出席,推动和领导会议,如何记录行动项目
如何估算,编写项目计划并更新项目计划
如何展望未来-如果要在3个月内发生问题,您可以尝试解决尽早。如果开发人员要休假7周,则需要立即开始进行规划。
如何与管理层交谈。他们对我们说另一种语言。给他们解决方案,而不是问题。告诉他们技术资料对他们意味着什么。

虽然山姆已经说过了,但最重要的事情之一就是学习如何拒绝。您会经常这样做。另一种看待它的方法是说“是”,但是“只有在我们可以获得更多金钱/时间/资源的情况下”-或“这是第二个版本” :)

评论


我认为您的许多作品都进入了Architect或PM桶。但是,是的,有时开发主管必须这样做。

– SandRock
2014年1月8日23:19

#4 楼

所有这些都是书和好的答案。请允许我以现实打你。
信不信由你,很多时间你会花时间向经理们解释


问题如何难以解决或为什么无法解决在给定的时间表或
,甚至解决它没有那么重要。

为此,您需要用非技术术语向非技术人员解释技术知识的技能。这是非常困难的。例如考虑将P = NP解释为6岁。不幸的是,对此没有正式的培训,您必须自己学习。

这也是政治动ting打你的位置。经理会告诉您,请一个人来帮助他,因为他/她会遵循该过程,但是您知道,由于各种原因,例如缺乏技术技能或一个不好的团队成员,此人在您的团队中没有用。因此,您不仅必须与这个人一起工作,而且还必须给这个人一个好的评价。相反的是具有良好技能和非常有效的团队成员但不知道如何取悦管理人员并因此获得较低评分的人。
然后,无人开会的人在遥远的地方举行高层会议,讲解有效的流程以及他/她最新的流程变化将如何提高生产力。您必须知道如何隐藏无聊的脸庞并显得精力充沛。

评论


“必须知道如何隐藏无聊的脸庞并看起来精力充沛”

– Adrien Be
2014年9月22日上午10:21

这些会议开始时我总是感到无聊,除了讨论与技术有关的事情

–阿克塞·穆卡丹(Akshay Mukadam)
19年6月12日在1:45