您可以同时担任经理和程序员吗?[关闭]


43

当您自己是编程工作人员的一部分时,要管理其他程序员。

这是一个非常普遍的计划,至少在我工作的公司中是如此。

如果您同时做这两个人,您能否成为一名优秀的程序员或一名优秀的经理?

我对一个人的有效性提出质疑,这个人必须扮演两个截然不同的角色,要求截然不同的技能,环境,专心,组织等。

更新:我的问题包括公司的管理(这是我的情况),而不是团队管理。但是我当然对这两者都感兴趣。


1
问比尔·盖茨。
安德鲁·阿诺德

6
我会。我可以参考一下吗?

我想知道您是否考虑将代码审查作为“程序员”工作的一部分。在我看来,这是让团队经理保持与代码功能保持联系的一种好方法,也可以不要在审核时打扰他(尽管这可能会使他慢下来)。
Matthieu M.

Matthieu:我没有提到它,但我更多是在谈论管理公司,而不是团队。实际上,我认为团队应该自我管理。但是,以下所有答案仍然对我有效且有价值。

1
简短的答案是:没有会不会是有效的在任作用,如果你是在一个其他的比例将受到影响。

Answers:


36

它取决于您需要执行的编程的数量和类型以及必须执行的管理职责的数量和类型。

成为经理意味着很多中断,改变主意以及会议之类的事情。

如果您的编程只限于少量的非紧急工作,那么您就可以适应您的管理职责。如果您需要在编程任务上花费大量的“质量”时间,那么由于您的管理职责,您将无法获得该时间。

如果您的团队规模庞大和/或复杂,那么您将需要花更多的时间进行管理,而不是只有一个或两个小组负责一个或两个产品/项目的小型团队。您会发现,您甚至没有时间去做任何有意义的编程-即使是在完成小任务时。

在上一份工作中,我担任过该职位,并且对我有用,因为我将编程任务保持在很小的水平。它实际上对我们有利。

首先,我可以评估所有传入的请求,如果它们很小,则将它们添加到我的队列中(总是很短),或者以更准确的时间尺度返回给客户端(在这种情况下,是另一位经理)完成。

其次,这意味着团队中的开发人员不会不断地退出当前的工作来修复较小的错误或进行小的增强。

第三,由于他们的紧急问题很快得到解决,客户感到高兴。

它使我与代码库保持联系,因此我可以与团队就问题以及与经理和客户就时间表进行有意义的对话,而不必一直让团队参与。


2
+1我是一名经理和程序员。我的工作非常像克里斯在这里描述的那样。我是一个很好的程序员,但还是一个出色的组织者。我认为,作为一名经理,保持技术水平并参与项目是一个很大的优势。我的风格来自我的第一任老板,他同时也是一名经理和程序员-而且都非常擅长。
bogeymin 2011年

4
如果您已聘请合适的人员在团队中工作,则可以同时成为经理和程序员。
Naweed Chougle

1
我认为这只有在经理/程序员很棒的情况下才有效。在大多数情况下,这都失败了,就像马丁·威克曼(Martin Wickman)的回答一样。
Andrei Vajna II

12

我是一个开发人员团队的成员,其中一个程序员也是我们的经理。这导致任何与生产力类似的事情彻底崩溃。简而言之,所有决定都是由那个人+他是一个完整的微型经理来做出的。他不同意的任何想法和建议都被击落或忽略。这最终扼杀了所有创造力和动力。

因此,我认为让开发团队中的任何人都处于“更高”位置是一个坏主意。以我为例,他是一个命令和控制经理,但我什至是一个伟大的经理,也会(无意间)影响其他开发人员,最终导致性能降低。至少有团队向他报告。



8

是的,
我见过几个同时担任编程人员和经理的经理,相信我在这些人的领导下工作真是太好了。
身为经理和程序员,不仅可以让经理从头领导,还可以激励下属发挥最大的作用。
大多数员工抱怨他们的经理们,经理们毫无价值,但不仅管理而且编写代码的经理总能带来最佳结果。
我提到过的两个经理,编程是他们的热情,他们不仅帮助了别人,而且制作了几乎没有错误的应用程序。


8

我担任编程项目经理已有多年,曾在不同的公司,项目和团队中工作。

项目管理和编程是如此不同的工作/角色,以至于我不能认为两者都同时处于“优秀”水平。这是一种折衷-精通一无所有,千篇一律的东西。

对我而言,最大的痛苦是经理和程序员模式之间的上下文切换。它们似乎参与大脑的不同部分(或某些事物)。一天的编程,一天的管理我可以做的很好,但是要在这些角色之间不断切换是很难的。


7

我看过两种情况。开发经理(占他们时间的一部分)进行编码,而开发经理则根本不进行编码。

问题是,您获得的越高级,就越希望获得更高的报酬,而在许多地方获得这种报酬的唯一方法就是进入管理。(当然,不是全部,而是很多地方)。因此,这可能导致真正不准备成为经理的人陷入困境。

(当然,有些公司可以提升Dev,Dev领导-当然不同于Dev Manager-晋升为Architect等职位)

作为一名技术人员,您可能在人员管理上可能毫无用处,而且使您与代码的距离更远。因此,您成为一名糟糕的经理,并且很少做自己喜欢做的​​事情,并且可能是为开发而做的!

对我来说,要成为一名经理,您实际上应该放手编写代码,但绝对要使自己掌握最新技术,以便至少可以连贯地谈论问题。

正因为如此,我才开始自由职业。我对人员管理没有兴趣,我想我不会特别擅长,而且我不会编写太多代码。


6

可以做到,但是充满了陷阱。团队规模和中断级别起着很大的作用,但是最大的风险是让经理也担任技术主管。如果没有足够的时间/精力来证明该意见是正当的,那么就会使用过多的粗暴观点,这可能会导致一些错误的决定。而且,关于方向的辩论并不是经理与团队其他成员之间的平等竞争环境。

对于那些考虑这条路的人,一些建议:

  • 摆脱体系结构角色,确定小组中的潜在客户。

  • 不要在关键路径项目上工作。修正错误,处理原型或其他项目,这些缺陷可以在老板发现更多“重要内容”以分散您的注意力时迅速丢弃。

  • 提高您的注意力水平,并专注于整体效率,捍卫和提升团队,过程,士气和拥有成功团队所需的其他方面。您的目标可能不仅仅是成功的项目(无论您的老板,项目经理或其他人怎么说)。

  • 帮助您的团队成长:变得更加独立,自组织,熟练的技术,更高的知名度。

  • 在许多方面,您是团队与外界之间的桥梁。您的重点应放在团队之外。

要回答这个问题,可以的。不,这并非易事,而且公司技术方面的新经理太多,他们本来可以成为很好的领导者,却无法过渡到成功的经理的工作中。


3

好的经理可以,是的。只要您保持自信和一致,通常就不会有问题。

如果员工被告知与经理一起提出队友问题,而经理也是队友,那会变得很棘手。客观地查看所有反馈并意识到您可能会不时错是至关重要的。您还应该提供某种匿名方式来进行反馈。

在初创公司中看到这种情况非常普遍(如您所说)。


3

我觉得不行。

两项工作都需要集中精力,精力和奉献精神。同时执行两个操作非常困难。当我不得不承担一些团队领导职责时,我在编程上花费的时间(以及因此由我完成的与编程相关的工作的时间)减少了。

我认识另一个同事,他从团队领导职位开始担任管理职位,并在一个月内完全停止了编码(尽管他尝试同时做到这两者)。

我也认识一位要求成为经理的建筑师。在承担管理职责后的一个月内,他也停止了编码工作。由于关键的现场问题,同一位建筑师在8个月后不得不重新进行编码。他在错误修复方面做出了巨大贡献,但是在一个月内,他们不得不找到一名替代经理来承担他的管理职责。

以我有限的经验,我还没有找到像其他人一样管理其他程序员和代码的人。


3

我认为,尽管在大多数情况下都有可能,但这并不是一个很好的安排。有许多文章介绍了如何精通开发人员,并使其升任团队管理职位,即使这不是他们的特定技能甚至不是理想的职位。他们努力专注于“管理”,因为他们将“工作”视为完成编程,而不是创建报告并参加会议。

Spolsky在有关开发人员抽象层的文章中写道:

“对于软件公司而言,管理的首要任务是为程序员创建这种抽象。”

在这篇文章中(我认为这是有道理的,但我有充分的理由),管理器的作用不是进入代码或软件开发,而是创建一个环境,使生产它的人员可以完全专注于此。


2

我的前老板曾尝试过。他的管理职位有太多干扰。

他仍然是我认识的最好的开发人员之一。


2

绝对可以,但这并不意味着简单。一个人要成为一个好的开发者,一个人要成为一个好的管理者,而一个人又要成为一个好的人。如果您可以找到那个人(或那个人),那肯定有优势。程序员的第一级或第二级经理需要真正了解他们的员工每天所做的事和遇到的事情。如果您不是开发人员,则很难做到,而且如果不继续开发,很难保持联系/最新。

我曾经有过的最好的经理(我在biz工作了25年左右)是一位活跃的开发人员,我的经理和该公司的半所有人(大约40名雇员)。他很特别,但他显然在这个问题上很成功。


2

当然不能!

您可以尝试,但是最终您将无法进行更多的管理。问题是,当人们每隔5分钟打给您一次或试图每小时进行一次“状态”会议时,您就无法进行编码。这太荒谬了...我现在正在这样做,这就是为什么我偶然发现了该线程。

尽管科技公司的经理应该..否...必须知道如何编码。您只是无法估计或了解客户的问题。编码和管理是两种类型的人。一方面是极客,与人尴尬(面对现实,极客你知道我在说什么),另一方面是与人共处。您必须选择一面。如果两者都做,那么编码将无济于事。如果您喜欢编码并且如果您的妻子不妨碍您,则可以24/7全天候进行编码,请远离管理。甚至必须减薪。我将要这样做,但是我不认为老板会喜欢这样,因为我可以使他们的生活更轻松地进行管理。如果他们不同意,我将不得不重新开始自由职业,因为幸福和做自己喜欢做的​​事比金钱和它所购买的幻想更重要。

致以最良好的祝愿,并请保留这些帖子。你们真棒。

阅读此站点上的“缺少以编程为中心的职业道路”一节。相当不错的东西,而且非常相关:http : //c2.com/cgi/wiki?ProgrammingIsNotFun


1

一个人有可能既具有良好的管理者又具有良好的编程技能,尽管人们常说“万能的杰作就是万无一失”。

但是,在我看来,同时合并这两个功能似乎仅能完成两个工作。这取决于必须完成的管理量,但是不可避免地,您要在两个性质完全不同的任务之间苦苦挣扎,而这一要求的重点转移是相当大的。我自己注意到,当我还要执行一些管理任务(在我的情况下,是管理课程和编写报告)时,我在编码部分的表现要差得多。

另一个陷阱是您要管理一个小组,但您也是直接参与的一方。有时会有所收获,有时可能会导致大麻烦。如果其他程序员不同意您的工作,那么您就是经理这一事实可以使他们保持完全开放的态度。

再说一次,当您在要管理的同一个项目上进行编码时,您确实对代码本身有了更多的了解,因此在这种情况下,编程位实际上可以帮助管理位。一切都取决于您必须管理的内容,所需的时间以及与您正在处理的代码相关的时间。

因此,我想尚无明确答案,但我倾向于避免将两者混为一谈。我的2美分


1

好吧,我读过,软件项目的经理绝对应该是编码人员。

我认为经理之所以是经理,是出于一个原因-要管理。我将其作为经验法则...有些可以是一把双刃剑。


1

我知道一个可行的例子。这个人有点工作狂,所以他全职做经理,几乎全职做程序员。

考虑到正常的工作时间,我认为这样的双重角色不是一个好主意。管理程序员(或编程经理)总是很想自己去做很多编程工作,而不是让他的程序员去做。总是有这样的借口“解释比做需要更长的时间”,但是从长远来看,他所做的50%的程序员工作在管理部分中是缺失的,因此其他程序员的效率较低。

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.