我们必须承认,编程比创建文档甚至创建甘特图和向程序员询问进度要困难得多。因此,对于那些天真的幼稚的人来说,知道编程通常比较困难,为什么业务分析师和项目经理的薪水比程序员高?是什么使他们的工作成为高薪工作,即使在大多数情况下程序员都是最晚回家的人?
更新
令我无知的是,从某些答复看来,BA和PM之所以能获得更高的薪水,是因为它们通常是造成程序员混乱的原因。但归根结底,是程序员弄脏了手,以解决问题并更加努力地工作。因此,这仍然没有意义。
我们必须承认,编程比创建文档甚至创建甘特图和向程序员询问进度要困难得多。因此,对于那些天真的幼稚的人来说,知道编程通常比较困难,为什么业务分析师和项目经理的薪水比程序员高?是什么使他们的工作成为高薪工作,即使在大多数情况下程序员都是最晚回家的人?
更新
令我无知的是,从某些答复看来,BA和PM之所以能获得更高的薪水,是因为它们通常是造成程序员混乱的原因。但归根结底,是程序员弄脏了手,以解决问题并更加努力地工作。因此,这仍然没有意义。
Answers:
作为一个类,项目经理是否获得比程序员和业务分析师更高的薪水完全取决于您所生活的软件世界。
这个问题的简单答案是“因为在我们的社会中,我们仍然认为薪水与等级制中的职位挂钩”。但是,这个答案虽然反映了人们根据其感知价值获得报酬这一事实,但并不能解释为什么PM和BA在许多软件组织中处于层次结构的顶部,以及为什么管理层首先将层次结构作为选择的结构对于软件项目团队。这是似乎真的值得提出的两个问题。
广义上讲,有两类软件制作组织。我将它们称为“小部件工厂”和“电影摄制组”。
小部件工厂诞生于管理思想的周围,这种思想是由McGregor提出的动力理论X提出的。更高或至少相同的标准。这种想法落在了一个很自然的想法上,即整个团队可以很容易地由经理代替并由其代表-团队中的所有其他人都是可以轻松替代的,或者仅仅是增强经理完成任务的能力。因此,层次结构是一种结构,而是水平的工作角色。
窗口小部件工厂管理的前提是,可以在项目经理的密切监督下,通过明确定义的流程,按照业务分析师制定的规范制造软件。通过为项目配备足够的合格但可互换的编程和测试资源来照顾制造。工作由PM和BA准备的初始业务案例根据预先安排的预算来驱动。
只要关注这些人的交谈方式,就可以轻松地发现运行Widget Factory的管理人员。它们可能涉及以下方面:资源(包括指代团队成员时),流程,运营效率,统一性,可重复性,对资源使用的严格控制,明确的工作角色以及定义的流程输入和输出。他们试图传达理想软件开发操作的图像时,会随意提及实际的工厂隐喻。
然后是电影摄制队。他们基于这样的观念,即人们聪明,有上进心,非常努力地工作,并且喜欢孩子们喜欢玩的游戏。电影摄制组认识到,由于专业化,个人贡献者的能力可能远远超过组织,协调和指导工作的人的能力。由于经理不能再替代所有人,所以层次结构不能很好地起作用-人们必须以更加扁平和复杂的形式进行合作才能完成工作。乔布斯角色本身往往更垂直-从头到尾-涉及到各种各样的技能。这种管理思想以麦格雷戈的理论Y为基础。
电影摄制组的导演知道,只有能够组建一支出色的工作组,吸引他们的想象力并帮助团队凝聚和合作,她对软件的愿景才能实现。她的作用是激发,捍卫愿景,提供指导并集中精力。每个人都很重要,因为“主管”相信软件是世界观和所有参与者的能力相结合的结果,也是该小组共同开展工作的独特方式。从一开始,每个人都认识到让明星加入团队的重要性–明星表演者增加了成功的机会。愿景推动预算并吸引资金。
谈到赔偿Widget Factories认为,最大的价值来自项目经理和业务分析师的工作,他们工作在层次结构的顶部,因此必须得到相应的补偿,而团队的其他成员则无所谓拥有将要求转换为工作代码的正确资格。PM和BA努力通过限制团队其他成员自由访问项目信息源来保持自己的地位。在没有正式访问主要信息源的情况下,团队很难做出任何价值判断或提出好的解决方案,程序员只能从上面接受命令并按照PM和BA的定义来解决问题。
与之形成鲜明对比的是,电影摄制组表现得更加平等。成员可以不受限制地访问主要信息,鼓励他们进行价值判断,并可以自由选择行动方案以实现并促进愿景。领导力结构基于能力而不是团队中的特定角色。薪酬反映了让特定人员参与该项目的可取性,它通常与人们对以下事实的认识有关:如果可以说服该人员将精力投入到创建该软件上,那么最终结果将变得更有价值。在这种环境下,项目经理的角色变得不太重要,因为他不太可能成为创意领导者。作用主要归结于行政支持和对外关系。
现在,大多数内部软件开发团队和一些咨询公司都是在小部件工厂依靠流程来生产一致无聊的软件的情况下运行的,这不足为奇。在这样的环境中,项目经理和业务分析员通常会获得比程序员更高的报酬,这是基于这样的假设,即他们在结构合理的环境中能带来最大的价值,从而使程序员难以证明管理错误。
成功的软件公司倾向于采用Film Crew的观点,任何其他哲学都会阻碍他们吸引优秀人才的能力,因为他们依赖如此之多来生产出色的软件。在这种情况下,您不太可能会看到业务分析师的角色,而项目经理却没有那么出色,并且通常不会像优秀的程序员那样获得高薪。
因为在我们的社会中,我们仍然认为薪水与等级制中的职位有关。
分析师或项目经理在层次结构中较高,因此应给他们更高的报酬。
让我告诉您一个真实的故事,说明为什么这是一个问题。
一个好朋友开始在一家大医院当程序员。由于他的辛勤工作和奉献精神,他迅速成为Oracle DBA,这在数据既敏感又有价值的公司中至关重要。
医院工作水平高。级别取决于您在层次结构,旧式和文凭中的位置。
我的朋友得到了一个建议,成为另一家不使用薪水水平的公司的DBA。他的薪水可以增加很多。因为他喜欢并尊重他工作过的医院,所以他决定与老板交谈,要求加薪。
老板拒绝了。由于级别的原因,这是不可能的,工会也不会让这种事情发生。
我的朋友走了。
医院最终聘请了外部顾问(不受级别限制),并在其网站上发布了一份工作。该顾问对现有的基础设施一无所知,因此他的学习曲线很大。因此,医院损失了很多钱。
医院的确损失了很多。外部顾问的薪水是我朋友要求的五倍之多,他们找不到合格的员工来代替他。
那差不多是三年前。我的朋友仍然在他的新地方,并以自己喜欢的方式快速攀登等级阶梯。
医院仍在支付5倍以上的费用。
恕我直言,薪水应与您提供给公司的价值有关。
更新:在层次结构中上移时,会发生杠杆效应。因此,实际上,您为自己带来的价值而获得报酬。但是,无论他们在该层次结构中的位置如何(通常在最底层),生产力高出10倍的杰出程序员都应多付10倍的报酬。这就是我要强调的。
他们比程序员承担更多的风险。他们必须根据我们提供给他们的任何信息做出决定,然后在达不到他们的期望时面对利益相关者的严厉批评。部分薪酬待遇可以弥补这一风险。
另一个因素可能是准备可以适当计划,评估和缓解项目经理的经验。从某种意义上说,细致入微的项目经理会经历过失败的培训,这使其成为昂贵的技能。一旦达到资历级别,公司可能就不愿意放开这种宝贵的人员。
编辑:
除了经济上的伤害或人身伤害外,还有更多的风险。例如,考虑被经理或客户谴责的风险。尽管没有造成任何实际伤害,但是我们仍然必须调整自己的行为以避免这种后果,这仍然是不希望的。但是,管理人员必须始终做出良好的决策,并且必须根据公司的利益来平衡各种风险,而不是根据个人喜好。
从某种程度上讲,编程可能会更困难,但也更令人愉快。您只需坐在那里,解决漂亮的编程难题,而经理则要处理下属,客户,老板和利益相关者之间的各种麻烦。这就是为什么很少有理智的人真正想要成为经理的原因,所以您必须通过支付更高的薪酬来弥补。
编程更加困难,但是管理更麻烦。
思考某人对公司的价值的一种方法是,想象该人离开公司会是什么样。通常,从这个意义上讲,经理比程序员更有价值。Java的创建者James Gosling最近离开了Oracle。有人可能会认为这是巨大的损失,但您猜怎么着?其实没关系。它对Java或Oracle几乎没有影响。狗吠,但大篷车继续前进。
顺便说一句,我(认真地)认为,除尘器和清洁工的报酬应比程序员高。清洁别人的垃圾是一项艰巨且必不可少的工作。
减少创建图表和编写文档的管理,就像在说编程就是打字。
对于每个人来说,但对我而言,编程比管理人员容易得多。
这里的每个人都专注于负面因素。我从未见过像办公室政治这样的程序员,优秀的经理可以使您免受此类垃圾的困扰。在我们主要客户中与很多人进行互动之后,其中一半人精神错乱,我很高兴能有我的PM来为我吸收这种精神错乱。如果他们付给他们很多钱,那很好。他或她需要这种药物来进行不可避免的治疗。
当然,这是有争议的,但是背后的重要原因是,如果项目失败,他们将承担项目的责任,而不是程序员。他们可能会给您提早提起某些事情的机会,但是他们面临着更高权力的批评。他们是负责计划和估计的人。
管理需要非常多方面的技能:人际交往能力,领导才能,估算成本和时间的能力。为此,他们还需要与您保持联系(例如,从技术上来讲,对您正在做的事情有所了解),或者是非常好的品格判断者。
如果没有正确定义需求,那是他们的错。
如果测试计划定义不正确,那是他们的错。
如果您休假或打断腿,或者在周六晚上浪费或者在没有给予足够通知的情况下离开,他们必须找到替代产品或<某些原因在这里>,您将无法完成工作并且产品无法得到(按时或根本没有交付),这仍然是他们的错。
还要注意,当我指的是他们承担责任时,它会影响他们上方和下方的人们。如果他们搞砸了,那可能就是您团队的工作即将开始。这也是您要付出的压力。
PS:另外,我不知道我是否会说编程比做甘特图更难(重用您提到的示例)。我不了解您,但是我发现编程(通常,对于行业中需要完成的80%的工作)非常容易。如果弄砸了,可以修复它。如果您的老板搞砸了他的甘特图或成本估算,那么与将a转换!= null
为a 相比,这将是一个更大的问题== null
。小错误对他们更重要。当然,大多数情况下,如果您在上线的嵌入式医疗应用程序中进行了类似的测试,那也是一个大问题。但是他们会比您遇到更多的问题!
供求是确定市场价格的经济模型。结论是,在竞争市场中,特定商品的单价将一直变化,直到达到消费者需求的数量(按当前价格)等于生产者提供的数量(按当前价格)为止。价格和数量的经济平衡。供需的四个基本定律是:
在这种情况下,原因之一是开发人员过多。
理由是项目经理的职责范围(通常)是在计划预算内按可接受的质量按时交付整个项目。通常会有很多钱危在旦夕,所以自然而然的优秀项目经理通常会比程序员高薪。
但是,我不认为业务分析师的平均收入比程序员高得多。我的感觉是,公司的薪水水平是由等级而不是由员工的价值决定的,这种情况越来越少见。
我的经历可能有所不同(或者我生活在物理定律失真的不同宇宙中),但是我所见过的大多数业务分析师和项目经理(不是程序经理,而是项目经理或PMP)的职位都处于或略低于程序员的平均工资。
与软件工程师的平均薪资相比,薪资差距开始扩大(有利于软件工程师)。与高级EE或高级软件工程师相比,差距更大。几乎没有高级业务分析师或高级PMP会像高级EE或高级/主要软件工程师一样。
但是,项目经理(与PMP并不相同)会比其他人赚得多(原因应该很明显)。
当我看到这些关于薪水的抱怨时,最让我感到困扰的是,作为程序员(特别是企业中的初级/入门级程序员),我们(或不是)那么特别。刚离开学校的入门级程序员真的没有什么值得火箭科学家付薪的。没有。
我们所有从事软件工作的人都从零开始。我们都做到了。
而如果我们真的说实话,我们清楚地知道,我们不知道的废话。能够完成我们的本科CS课程负载只是一个起点。它并没有使我们如此特别或ZOMG!超级爱因斯坦人。真的不!
但是(由于互联网泡沫破灭的命运),我们希望不仅能赚到更多,而且还能比其他受过大学教育的人赚得多,这是因为OH WOW,我们是程序员,他们只是生意而已分析人员和PMP。
你能自大吗?新闻快讯-对于企业中的大多数编程任务,您甚至都不需要4年制学位。真的,那是认真的。
花费时间,积累从高级编程到软件工程(或相关工程)的经验。然后,你可以要求做很多很多,佩罗MUCHO MUCHO比业务分析师和PMP等等。
克服困难-我们中有些人(或曾经)被高薪。期。
暂且不谈:业务分析师和/或PMP与尚未累积成为中/高级软件工程师所需的时间和专业知识的程序员(或仍未在高度需求的利基市场开发专业知识的程序员)使薪金接近或相似的原因。区域):
一个业务分析师是软件和系统乡亲和企业界人士/业务流程之间的联络人(这是证明你的薪水的存在,而不是其他的方式的人。)他们负责在有条不紊打破业务流程的,分析性的方式,作为适合形成需求的输入,是您所从事的工作。他们确保您花费大部分时间进行编程,而不处理业务上的细节。
你们中的许多人认为生意很容易。如果您真的认为这是真的,那么上帝会帮助您。
一个项目经理负责杂耍多个项目(而你只需要在任何给定的时间一两个最忙里忙外。)他是你的伞的人,他是一个已经做了肮脏的工作大部分在一个剩下的未被洗的群众不想做-追赶人们,确保他们能完成工作或消除工作上的障碍。
他是一个会问您“正在从事什么工作的人?您正在帮助推动项目进行的工作是什么?您的工作有问题吗?您遇到的障碍是什么?您需要什么?谁可以给您?” “ ...
然后他将去找其他人问同样的难题,确保消除障碍,并确保自己在项目上占了上风(如有必要)。
我在许多失败的项目中看到的头号问题是缺少PMP或对PMP的不尊重(特别是对开发人员的尊重)。我很少见到项目由于PMP不称职而失败,但是人们不得不怀疑为什么许多程序员比急于说更多的是是这样。
如果您的问题是“为什么X和Y比我公司的程序员薪水更高”,我可能会回答“您可能在错误的公司工作”。
公司在软件业务中的成功更多地取决于其程序员的能力,而不是其他任何人。与意识到这一点的公司相比,不认识这一点的公司自然处于劣势。雇用最好的程序员并照顾好他们是最好的选择。优秀程序员与其他程序员在工作上的差异是巨大的。比他们命令的薪水差异大得多。但是,如果您坚持不付给程序员薪水,那么您将得到所付的钱。
也就是说,业务中的所有其他角色都很重要。伟大的管理者产生了巨大的影响。其中很多是通过吸引优秀的程序员并使他们满意。关于业务分析,市场营销,销售,测试和支持,可以说类似的话。
如果您是一名出色的程序员,但没有得到丰厚的回报,那就去别的地方。再说一遍,您可能不是一个优秀的程序员。不幸的是,如果您不是很出色,很难理解为什么。如果您知道为什么,那么您可以改变并变得很棒,对吗?
我曾经是程序员,而我曾经是人事经理。我曾与许多优秀的程序员合作,但只有少数优秀的经理。当我是经理时,我并不出色,但至少我知道。我的人民比我应得的加薪更多。
我认为您对这个问题的整体理解是有缺陷的。
管理人员的报酬必须高于其下属。公司的资历通常以薪水为基础,初级员工不可能拥有命令其上司的手段。
领导人才是一项专业技能。并非每个人都可以成为项目经理(PM)。随着人员数量的增加,这项任务越来越困难。在担任技术PM的角色中,PM需要掌握有效地领导技术的知识-否则他们将不会得到下属的尊重和支持。
我浏览了所有帖子,而且我敢说他们大多数都在尝试比较苹果和香蕉。
首先,我相信有人说“管理只是小菜一碟”,除了自己的日程安排外,再也不需要做任何其他事情了。另一方面,说“任何人都可以编写任何东西”是愚蠢的(出于上帝的考虑,并且在错误的论坛中!)。
我特别喜欢rwong和luis.espinal请求,尽管我相信还有其他事实也需要引起注意。
我不相信等级制是一个答案-时至今日-尽管它在过去的10.000年中非常合适。我们在一个社会中生活了几个世纪,在这个社会中,您的利润越高,您的权力就越高(反之亦然)。我不认为它适用于我们的世界,尤其是在我们所在的地区。
回到主要问题,我相信经理们通常会赚更多钱,因为他们对公司更有价值,不是因为他的层级较高,而是因为
我认为,领导因素是薪水较高的主要原因,因为它为公司和领导层周围的每个人带来了长期的丰硕成果。
顺便说一句,作为团队负责人,我只有很少的经验(远不是项目负责人!),我知道领导者的工作,也知道我要做的工作。
编辑:忘记强调:沟通技巧对我们大多数人来说不是强项,但对于领导者来说是必不可少的。此外,我想在Coding Horror上分享一个很好的帖子,内容涉及优秀的程序员和沟通技巧-> http://www.codinghorror.com/blog/2011/02/how-to-write-without-writing .html
这取决于您如何定义“难度”。即使,我想知道您是否知道项目管理的内容以及业务分析师应该做什么。我从您的问题中读到很多挫败感,所以我认为您的经历很糟糕。不管怎样,我想尝试回答您的问题。
当项目经理和业务分析师担任这些职位时,他们通常“老”些。在开发人员的职业生涯很年轻的时候(大约20多岁),大多数项目经理和分析师的年龄都在30岁左右(仅按年龄段就已经产生了收入差异)。他们也是面对顾客的人,这意味着他们必须到现场旅行,花费数小时的折磨来听取顾客的意见(特别是当一个项目错了时),并征求他们的意愿/需求。他们必须小心自己的承诺,尤其是在什么范围内(交货时间)。即使从您的角度来看,他们所做的只是记录在案,但仍会教育业务分析师以分析业务需求,并且项目经理会保护项目的计划。
它们充当客户和开发人员之间的防火墙。技术角度不同于销售角度。大多数业务分析人员和项目经理还面临各种各样的客户-他们暴露无遗,因此拥有“潜在客户”。他们的网络由决策者组成,因此,公司更希望将拥有此类网络的人员放在可及的范围内;毕竟销售就是销售。
关于难度?创建一个公司,有十个开发人员,然后尝试管理一个项目。头痛是免费提供的。这样做一年,然后再次查看您的答案。为广管局?争取这样的机会。与拥有1974年AIX机器的客户坐下来,该系统的设计者已死/退休/垂死/老年痴呆,开发人员需要知道是否已产生一定的价值或具有某些神秘的公式。尝试在3天之内说服20个人使用Powerpoint解决方案。如果记录是那么“容易”,Linux早在1997年就已经风靡全球。确实,请尝试每月为非技术人员(认为Facebook是计算领域的一场革命)编写技术白皮书。
我是销售工程师。这意味着我可以开发,但是我的专长是原型和演示。而且我的收入比业务分析师或项目经理还多。并不是因为我拥有一个网络(虽然我有),而是因为我放弃了态度,更加专注于业务视角,获得了认证并教给我一些软技能。在加班方面,了解“不”的经验也是答案。
简单的答案:它们对公司比程序员更有价值。
为什么?因为它们可以确保项目完成,即使他们自己不进行编程也是如此。这意味着它们的价值(纯粹是对公司的货币价值)比单个程序员更大。该公司不相信不受管理的程序员是有生产力的,因此也不是有价值的……只有经理才能使他们如此。
很烂,我们可能不喜欢它,但这就是该公司向他们支付更多钱的原因。
但是,他们的职位(正如其他人所指出的)也有缺点:如果他们未能在一定时间内完成项目,那是他们的错,而不是程序员。他们肩负着更多的责任,并且极有可能因失败而被解雇(除非存在某些BS公司的裙带关系)。
因此,实际上,不允许他们犯错误,对他们施加更大的压力以及从事更加不稳定的工作……但不要感到困惑:这不是为什么他们的薪水更高的公司不会给老鼠的屁股大的压力,您的姿势有多不稳定,诸如此类。他们只关心您为公司带来的价值。期。
那是资本主义,伙计们。
管理并不总是比工程人员多。高级工程人员应积极参与业务水平分析和决策,并为公司制定技术路线图。在这种情况下,高级技术人员的收入可以超过他们每天工作的业务经理。
流行的商业神话之一是,经理人的薪水应高于其管理人员的薪水。国际海事组织,您发现这种想法在功能方面比在敏捷的职能团队中更为牢固。
换句话说,补偿应该反映一个人对公司的贡献的价值。有出色的业务经理和普通经理,也有出色的工程师和普通工程师。如果您有一位杰出的工程师来开发赚钱技术并且对公司的技术有深刻的了解,那么与恰巧管理这位这位杰出工程师的普通业务经理相比,更积极地补偿这个人,这不是公司的最佳利益吗?由于您忽略了这一宝贵资源,失去工程专业知识和技能的机会成本是多少?
一个月前,我开始了我的第一个项目作为PM。在我成为程序员之前。(顺便说一下,我得到的钱和以前一样。)
我发现,成为一名优秀的PM意味着成为一名具有丰富经验的优秀程序员。您应该能够从一个团队成员转到另一个团队成员,并使用您的实践经验来讨论他们所遇到的问题,从而通过提供不同的观点来帮助他们理解问题。除其他任务外,您的任务是管理接口。PM就像导体。您可以拥有最好的音乐家,但是如果您没有一个很好的指挥家,知道如何很好地演奏元乐器乐团,那么您只会一团糟。
对方是专家。这是能够解决难题的程序员,因为他对问题领域有深入的了解。如果他们的谈判能力足够好,这些经验丰富的人通常也会获得高薪。不幸的是,专家们常常是书呆子,对金钱或对达成一笔交易并不感兴趣。
好吧,我对答案有些惊讶,所以就到这里了。但是在此之前,我只想澄清一下我是一名程序员,除了编程之外,我没有什么比我更喜欢的了。那就是说,我对合格的 PM和BA 具有良好的尊重和尊重。我意识到我们很多人都对PM和BA感到不满,因为与编程不同,没有必要的能力水平(办公室政治,西装革履等),他们就有可能脱颖而出。
但是,项目管理和业务分析都是软件开发的关键组成部分。
每当我们想到软件开发时,我们中的许多人就会倾向于只专注于编程,而排斥其他所有事物。然而,除了编码之外,还有更多的东西。
开发的首要目标是创建一个可以实际解决和解决客户问题的软件。这意味着首先要真正弄清楚客户的需求(因为客户可能不确定自己想要什么),这只有通过详细分析客户操作的领域和各种工件(无论是人员,技术基础结构)的结构来实现或流程),然后开发合适的业务解决方案(及其与技术的集成)来满足这些要求。
同样,没有有效的管理,任何规模很大的项目绝对无法工作。现在我不知道其他地方的情况如何,但是到目前为止,我的经验是PM通常是从程序员队伍中提拔出来的,因此他们确实对组织和执行项目需要些什么有所了解。
总结一下,BA和PM都是开发的抽象层。
许多人在这里说,编程更加困难,这就是为什么它应该赚更多的钱。那是非常浪漫的看法。事实是,在正常,健康的公司中,付款是根据责任进行的,这意味着该人的增加值以及风险。
风险通常会被遗忘。通常,如果程序员在难以完成的工作中失败,则可能会增加一些成本,但仅此而已。不会有10%的工人会失业或类似的事情。风险很低。
我也想不同意大多数商人能赚更多钱的想法。我敢打赌,普通的商务人士的收入要比大多数理学/工程学士学位的收入要少。例如,作为本科假期编码员,我的收入几乎与同一家公司的一些全职业务人员一样。
最后但并非最不重要的一点,为什么项目经理不是工程师?通常,项目经理是一个在他管理的项目主题上有着多年领导经验的人,这意味着在编程工作中,它将是一位经验丰富的程序员,他是项目经理。