当您自己是编程工作人员的一部分时,要管理其他程序员。
这是一个非常普遍的计划,至少在我工作的公司中是如此。
如果您同时做这两个人,您能否成为一名优秀的程序员或一名优秀的经理?
我对一个人的有效性提出质疑,这个人必须扮演两个截然不同的角色,要求截然不同的技能,环境,专心,组织等。
更新:我的问题包括公司的管理(这是我的情况),而不是团队管理。但是我当然对这两者都感兴趣。
当您自己是编程工作人员的一部分时,要管理其他程序员。
这是一个非常普遍的计划,至少在我工作的公司中是如此。
如果您同时做这两个人,您能否成为一名优秀的程序员或一名优秀的经理?
我对一个人的有效性提出质疑,这个人必须扮演两个截然不同的角色,要求截然不同的技能,环境,专心,组织等。
更新:我的问题包括公司的管理(这是我的情况),而不是团队管理。但是我当然对这两者都感兴趣。
Answers:
它取决于您需要执行的编程的数量和类型以及必须执行的管理职责的数量和类型。
成为经理意味着很多中断,改变主意以及会议之类的事情。
如果您的编程只限于少量的非紧急工作,那么您就可以适应您的管理职责。如果您需要在编程任务上花费大量的“质量”时间,那么由于您的管理职责,您将无法获得该时间。
如果您的团队规模庞大和/或复杂,那么您将需要花更多的时间进行管理,而不是只有一个或两个小组负责一个或两个产品/项目的小型团队。您会发现,您甚至没有时间去做任何有意义的编程-即使是在完成小任务时。
在上一份工作中,我担任过该职位,并且对我有用,因为我将编程任务保持在很小的水平。它实际上对我们有利。
首先,我可以评估所有传入的请求,如果它们很小,则将它们添加到我的队列中(总是很短),或者以更准确的时间尺度返回给客户端(在这种情况下,是另一位经理)完成。
其次,这意味着团队中的开发人员不会不断地退出当前的工作来修复较小的错误或进行小的增强。
第三,由于他们的紧急问题很快得到解决,客户感到高兴。
它使我与代码库保持联系,因此我可以与团队就问题以及与经理和客户就时间表进行有意义的对话,而不必一直让团队参与。
我是一个开发人员团队的成员,其中一个程序员也是我们的经理。这导致任何与生产力类似的事情彻底崩溃。简而言之,所有决定都是由那个人+他是一个完整的微型经理来做出的。他不同意的任何想法和建议都被击落或忽略。这最终扼杀了所有创造力和动力。
因此,我认为让开发团队中的任何人都处于“更高”位置是一个坏主意。以我为例,他是一个命令和控制经理,但我什至是一个伟大的经理,也会(无意间)影响其他开发人员,最终导致性能降低。至少有团队向他报告。
我看过两种情况。开发经理(占他们时间的一部分)进行编码,而开发经理则根本不进行编码。
问题是,您获得的越高级,就越有希望获得更高的报酬,而在许多地方获得这种报酬的唯一方法就是进入管理。(当然,不是全部,而是很多地方)。因此,这可能导致真正不准备成为经理的人陷入困境。
(当然,有些公司可以提升Dev,Dev领导-当然不同于Dev Manager-晋升为Architect等职位)
作为一名技术人员,您可能在人员管理上可能毫无用处,而且使您与代码的距离更远。因此,您成为一名糟糕的经理,并且很少做自己喜欢做的事情,并且可能是为开发而做的!
对我来说,要成为一名经理,您实际上应该放手编写代码,但绝对要使自己掌握最新技术,以便至少可以连贯地谈论问题。
正因为如此,我才开始自由职业。我对人员管理没有兴趣,我想我不会特别擅长,而且我不会编写太多代码。
可以做到,但是充满了陷阱。团队规模和中断级别起着很大的作用,但是最大的风险是让经理也担任技术主管。如果没有足够的时间/精力来证明该意见是正当的,那么就会使用过多的粗暴观点,这可能会导致一些错误的决定。而且,关于方向的辩论并不是经理与团队其他成员之间的平等竞争环境。
对于那些考虑这条路的人,一些建议:
摆脱体系结构角色,确定小组中的潜在客户。
不要在关键路径项目上工作。修正错误,处理原型或其他项目,这些缺陷可以在老板发现更多“重要内容”以分散您的注意力时迅速丢弃。
提高您的注意力水平,并专注于整体效率,捍卫和提升团队,过程,士气和拥有成功团队所需的其他方面。您的目标可能不仅仅是成功的项目(无论您的老板,项目经理或其他人怎么说)。
帮助您的团队成长:变得更加独立,自组织,熟练的技术,更高的知名度。
在许多方面,您是团队与外界之间的桥梁。您的重点应放在团队之外。
要回答这个问题,可以的。不,这并非易事,而且公司技术方面的新经理太多,他们本来可以成为很好的领导者,却无法过渡到成功的经理的工作中。
我觉得不行。
两项工作都需要集中精力,精力和奉献精神。同时执行两个操作非常困难。当我不得不承担一些团队领导职责时,我在编程上花费的时间(以及因此由我完成的与编程相关的工作的时间)减少了。
我认识另一个同事,他从团队领导职位开始担任管理职位,并在一个月内完全停止了编码(尽管他尝试同时做到这两者)。
我也认识一位要求成为经理的建筑师。在承担管理职责后的一个月内,他也停止了编码工作。由于关键的现场问题,同一位建筑师在8个月后不得不重新进行编码。他在错误修复方面做出了巨大贡献,但是在一个月内,他们不得不找到一名替代经理来承担他的管理职责。
以我有限的经验,我还没有找到像其他人一样管理其他程序员和代码的人。
当然不能!
您可以尝试,但是最终您将无法进行更多的管理。问题是,当人们每隔5分钟打给您一次或试图每小时进行一次“状态”会议时,您就无法进行编码。这太荒谬了...我现在正在这样做,这就是为什么我偶然发现了该线程。
尽管科技公司的经理应该..否...必须知道如何编码。您只是无法估计或了解客户的问题。编码和管理是两种类型的人。一方面是极客,与人尴尬(面对现实,极客你知道我在说什么),另一方面是与人共处。您必须选择一面。如果两者都做,那么编码将无济于事。如果您喜欢编码并且如果您的妻子不妨碍您,则可以24/7全天候进行编码,请远离管理。甚至必须减薪。我将要这样做,但是我不认为老板会喜欢这样,因为我可以使他们的生活更轻松地进行管理。如果他们不同意,我将不得不重新开始自由职业,因为幸福和做自己喜欢做的事比金钱和它所购买的幻想更重要。
致以最良好的祝愿,并请保留这些帖子。你们真棒。
阅读此站点上的“缺少以编程为中心的职业道路”一节。相当不错的东西,而且非常相关:http : //c2.com/cgi/wiki?ProgrammingIsNotFun
一个人有可能既具有良好的管理者又具有良好的编程技能,尽管人们常说“万能的杰作就是万无一失”。
但是,在我看来,同时合并这两个功能似乎仅能完成两个工作。这取决于必须完成的管理量,但是不可避免地,您要在两个性质完全不同的任务之间苦苦挣扎,而这一要求的重点转移是相当大的。我自己注意到,当我还要执行一些管理任务(在我的情况下,是管理课程和编写报告)时,我在编码部分的表现要差得多。
另一个陷阱是您要管理一个小组,但您也是直接参与的一方。有时会有所收获,有时可能会导致大麻烦。如果其他程序员不同意您的工作,那么您就是经理这一事实可以使他们保持完全开放的态度。
再说一次,当您在要管理的同一个项目上进行编码时,您确实对代码本身有了更多的了解,因此在这种情况下,编程位实际上可以帮助管理位。一切都取决于您必须管理的内容,所需的时间以及与您正在处理的代码相关的时间。
因此,我想尚无明确答案,但我倾向于避免将两者混为一谈。我的2美分