如何从软件开发人员发展为软件经理或团队负责人?[关闭]


42

我已经从事软件开发工作(无论是兼职还是全职)近3年了。我一直是那种领导事物并提供组织完成任务的诀窍的人。自从我在大学担任高级设计项目的负责人以来,我一直以为这是我的真正使命,而不是坐在办公桌前。现在,我知道我需要了解如何为其他开发人员编写代码,以真正尊重我。另外,我真的很喜欢编码。我在工作之余在家中从事许多辅助项目,与最佳编码实践保持一致,并尝试并不断加深我对该领域的了解。

我的主要问题是,我应该寻找哪种类型的事物或机会,这将有助于我的职业发展成为更高的管理角色,而不是编码角色。就像我说的那样,我喜欢编码,但是我更希望能够进行高水平的设计,并以这样的方式组织团队以完成工作并监控进度,同时提供技术支持在这里和那里的决定。这些类型的事情真正使我感到高兴,而不是整日坐在办公桌旁。

显然,我的主要梦想之一是自行开发某种软件,这些软件最终会爆炸并变大,然后开始聘请团队并自己完成所有工作,但是我觉得这种情况发生的可能性要大得多而不是仅仅改变我的职业道路就可以到达我想去的地方。我觉得我可以为雇主而不是我自己获得同样的满足感。即使我以前从未有过这样的感觉,但我感觉主要是因为我没有做我真正想做的事情。

有什么技巧,指示或要记住的事情吗?任何已经做到这一点的人,如果是的话,您是如何做到的?


您有什么类型的教育?您担任现职多久了?
Thomas Owens

我拥有计算机科学理学学士学位。我现在担任现职大约一年了。

1
@slandau我会明确指出您不想担任PM角色。虽然这可能是显而易见的方向;您的描述和要求与PM角色有所不同,我不认为PM角色将最终成为您的职位。
亚伦·麦克弗

1
@AaronMcIver这取决于您在哪里工作。有些PM是业务,某些PM本质上是技术性的。在某些地方,“工程经理”可能是更常见的标题,在其他地方,它可能只是“软件工程师”。
Thomas Owens

2
好吧,首先,放弃你的灵魂... :-)
Paul Tomblin

Answers:


41

从软件开发角色转变为管理或领导角色需要花费时间。我主修软件工程,强调软件工程流程,辅修业务管理和沟通。即使拥有关于如何管理软件项目,如何招募和雇用,如何领导团队以及如何与团队进行口头和书面沟通的学术经验,我仍然发现大多数管理和领导角色,尤其是在我想要的行业中要工作,需要5年以上软件工程经验(我有2年,包括合作社和实习)。

同时,我只是继续进行有关项目管理主题的研究。

我要推荐的第一件事是成为一名优秀的沟通者和谈判者。了解如何进行重要的对话。即使是开发人员,也必须与同事,客户和用户一起做出决策。有时,您必须进行艰难的对话并达成使所有人受益的协议。这不是一个简单的目标,但我建议一本书《困难的谈话:如何讨论最重要的东西》涵盖这一点。还有其他一些事情,例如超越“否”和“ 是”:不给予同意的情况下谈判协议也将有所帮助。无论您身在何处,这些都是相关的。

从技术上来说,了解软件开发生命周期对于领导和管理软件团队很重要。领导职位可能意味着您参与了需求工程,软件系统体系结构,设计,实施,测试和质量保证以及维护任务。尽管您不可能全部都是专家,但是经理或领导者至少必须了解所有这些知识。作为开发人员,您可能会在设计,实施和维护中完成大部分工作,同时还要进行一些测试。我会非常推荐诸如《软件需求》(以及它的同伴,《关于软件需求的更多信息》),《实践中的软件体系结构》(尽管我大学转学到了)等书籍。软件系统体系结构:在学习了体系结构课程后,已经使用观点和观点与利益相关者合作,并且向我推荐了),以及软件质量工程中的度量和模型

从项目管理的角度,您可以了解过程模型和方法。有敏捷方法,例如Scrum和Extreme Programming,以及计划驱动的方法,例如Waterfall和Spiral。还有一些方法框架,例如CMMI和个人软件过程/团队软件过程。与您相关的因素取决于您所在的行业,包括行业和公司。关于各种方法和框架的书籍很多,但我强烈建议您进行快速开发:为一般软件工程管理和软件工程过程驯服野性软件时间表

如果您想继续接受教育,则可以将其更多地看做技术管理,而不是业务管理。如果需要技术管理职位,请查看软件工程,软件工程管理和工程管理程序。有关业务管理的更多信息,可以考虑MBA课程,业务管理或某些具有强大经济或财务组成部分的工程管理课程。


1
是的,但是您实际上如何从高级软件工程师转变为经理?我的意思是,假设我觉得自己知道上面列出的所有知识,考虑到我没有正式的经理职位经验,而只有我真的知道所有这些知识,我现在该怎么做才能证明自己可以做到?如何采取这一步骤?
trusktr

19

这些其他答案很好,但我会投入$ 0.02。我已经从当前公司的初级开发人员晋升为高级开发人员,然后是团队负责人,现在是架构师。花了好几年。每当我得到升职时,是因为我已经在从事这项工作,而我的管理层只是意识到这一点并给了我适当的头衔。因此,我的建议是不要等到您是技术主管或经理。刚开始承担那些角色中的人所承担的责任。几个月或一年后,您会发现您基本上正在完成目标工作,如果他们没有注意到,您可以向管理层指出。


2
我因完全按照您在一家公司所做的话而被解雇(后来解雇我的那个经理也离开了公司)。这不是一个很好的选择。感觉这一直是争取公司最高职位的斗争,这是非常有竞争力和以自我为中心的。在一家公司工作的人要好得多,当人们主动尝试去完成更大的事情时,他们会得到已经更高的人的支持,鼓励和指导。
trusktr '18

9

我不会尝试提供完整的答案,因为Thomas Owens已经列出了一些非常好的建议(+1)。

只是想添加一些技巧/建议:

  1. 不要等到别人让你领导。刚开始做。我并不是说与您现任的老板背道而驰,而是主动帮助他。如果你的老板像我的老板,他通常会在他的盘子上堆满太多的任务/会议。如果他发现您在他可能没有足够的时间跟进的情况下提供了指导,那么他很乐意将一些管理职责委托给您。随着时间的推移,如果您这样做正确,您的老板将越来越多地委派给您(不用担心他),他将更有可能支持您承担更多的责任,使您成为正式领导。
  2. 请记住,团队建设和领导力更多的是社会学而非技术(摘自流行的软件方法学书籍之一,也许是布鲁克斯)。作为领导,您的目标是了解人们及其行为方式,这与了解计算机的工作方式完全不同。没有这种认识,优秀的工程师会导致一些最糟糕的团队领导,因为他们没有做出这种精神上的改变,并意识到您无法以与控制机器相同的方式来控制人员。实际上,似乎可行的唯一方法根本不是控制人,而是给他们指示方向。阅读,阅读并继续阅读有关领导力的书籍/文章/博客。我可以推荐的一本书是《管理3.0》

...现在我要检查Thomas发布的链接



这是一个坏建议,暗示有人在做某件事,老板没有要求他们去做,大多数老板皱着眉头在做别人没有被要求做的事情。
编程教授,

5年前,当我是一名开发人员时,我回答了这个问题。现在回到它,我将从经理的角度阅读它。@邦纳-你是对的。有不同风格的不同经理。如果您做某事而不被告知要做,有些人会皱眉。在这种情况下,我对您的建议便与该经理背道而驰。自从我成为领导以来,我所做的一切都是教会我的家伙独立思考并让我变得可替换。我要求每个人在自己的任务的狭窄重点之间取得平衡,但也要展望自己,看到更广阔的前景。
DXM

5

我个人目前不希望离开当前的职位,但是根据我们在发布周期中所处的位置,我花了我10%到几乎100%的时间在编码以外的任务上。如果您有耐心和观察力,除了在您当前的位置“只是编码”以外,您还有很多机会可以做其他事情。例如:

  • 自愿指导新的团队成员。
  • 成为公司正在考虑采用的新工具,流程或技术的专家。
  • 跨职能委员会的志愿者。
  • 说出您的想法。
  • 邀请您自己为即将发布的功能设计会议。

让您的经理知道您对这些机会感兴趣,并假设您在当前的职责中做得很好,当机会出现时,他将引导您走向您。主动性很重要。大多数经理至少会让您观察,即使他们认为您目前没有资格。


4

如果您想担任项目管理职位,那么上夜班并攻读MBA绝对不会受到任何伤害。

另一个选择是查看PMBOK项目管理知识体系认证。除非您有几年的实际领导经验或上面列出的两个项目之一,否则许多地方不会考虑您。

PMBOK是一项非常困难的测试,需要大量研究才能通过。我也认为他们对实际项目管理和领导经验有要求,才有资格参加考试。


3
也许只有我一个人,但是我倾向于软件工程管理学位或工程管理学位,特别是如果您想进入技术管理或领导层。我已经看到工程师获得了MBA学位并被推入软件程序的业务方面,而不是实际管理或领导工程师。
Thomas Owens

@ThomasOwens,请注意。我一直很犹豫要获得MBA学位,因为我不确定这是否会转化为大多数技术学位。
slandau 2011年

PMP考试并不难。
白痴” 2011年

@Morons我正在做一些PM告诉我的他们的经历,我从来没有亲自考虑过。但是现在我想到了,这两个人并不那么聪明。
maple_shaft

2

在我看来,这听起来像是您可能要致力于项目管理。软件开发中的大量PM职位也需要编码经验。

我会寻找职位,使您可以承担起所需的管理/领导者职责。根据工作地点的工作方式,向上爬梯子可能会看起来有所不同。但是,即使您的编码经验较少,如果您有任何领导,管理经验,也可以担任PM职位。


最初的问题是这样说的:“ ...我应该寻找什么样的事物或机会,这将有助于我的职业发展成更高的管理角色,而不是编码角色。” @slandau正在寻求有关如何执行此操作的建议。
Thomas Owens

1
是的我同意。您有什么技巧可以开始我的工作吗?
slandau 2011年

是的,我不小心按了发布按钮。
d ..

@D ..,我有一些领导经验,但所有这些都是我在大学期间做过的副项目和项目……不确定这是否足够。是吗?
slandau

最有可能的是,您希望与任何能够提供给您的专业工作经验挂钩。在某些地方,您可能会发现更容易担任高级开发人员角色。我会留意空缺职位,做您想要的事情,查看需求,并抓住一切机会,找到最常见的职位。我工作过的大多数地方都很小,可以让我毫不费力地整齐地迈上一个新台阶。看你目前的工作...你能上去吗?也许您已经从现在的位置开始定义了一条路径,可以利用它。
d ..
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.