Answers:
管理IT项目绝对不同于管理其他类型的项目。我曾经听说过没有 IT经验的项目经理。他最终使程序员感到沮丧,并基本上吓跑了他们。
另一方面,成为项目经理的程序员可能会成为控制狂,认为如果他不能让程序员正确地完成工作,他可以解决问题(这在类似情况下是我的问题)
不。两种完全不同的技能。糟糕的项目经理不一定是不懂IT的人,反之亦然。
合理,理性,有条理,理解项目目标和相关业务以及良好的激励者根本不依赖于能够编程。
老实说,我认为答案是否定的。要成为一名优秀的项目经理,必须要具备全部能力,而成为一名程序员并不是其中之一。一个好的项目经理可以管理任何类型的任何项目,因为项目团队中有很多知道他们在做什么的人。项目经理应具备的主要素质是沟通能力。项目经理的工作是协调项目任务,并保持客户,项目团队和任何其他利益相关者之间的沟通畅通。他/她应始终了解团队的进展情况以及他们是否遇到障碍,但无需知道问题是什么或需要解决的问题,除非它将他人牵连到团队中,而他/她的时间将需要进行调整以帮助解决问题。
至于估算,这是任何工作中的现实。如果电工不能告诉您接线需要多长时间,您将永远无法准时盖房子-您什么时候知道要预订墙人?我同意,尽管由于难以理解的数量众多,IT部门实际上很难做出估计。客户并不总是知道他们想要什么,他们往往会忘记告诉您很多事情。我以前所做的是大致估算出我认为需要多长时间,然后将其乘以2!一个好的项目经理不应该在您的估计被证明不正确时把您钉在十字架上,这将使他有些头疼,无法重新安排时间表,与客户交谈,向老板解释这将花费更多,等等。但是这是他们工作的一部分-再次,
我什至会说,没有任何编程技能会更好 -前程序员可能会尝试自行估计,或者第二次猜测您的估计。我们都知道,IT技能很快就会过时。当项目经理对您将如何执行任务而不是需要多长时间以及何时完成更感兴趣时,您需要开始提出问题。他们可能会要求您评估替代方案,然后让您散列详细信息,但要点是要知道您将如何影响项目的进度。
最后,我并不是说管理一个IT项目不需要任何IT技能-IT人员是那种似乎无法理解他们对普通人说的话的类型(!),它有助于了解基本的术语,以便能够与他们交流!另外,了解基本步骤至关重要 -您需要在服务器上运行网站之前先设置服务器。如果我不知道电工在关闭墙壁之前必须完成布线,就无法管理建筑项目!!
PM确实需要知道该项目将做什么,这可能需要一定的技术背景,但并不需要开发。
除此之外,还需要尊重领域和开发人员,而不是实际知识。PM需要认真对待开发人员,他们需要什么,他们可以做什么,他们不能做什么,需要多少时间。一个对自己不知道的事情有所了解的项目经理可能非常有效。一位认为自己能回答所有问题的PM不好。这可以是一个前开发人员,他相信他或她什么都不知道,也可以是一个从未开发过并且认为自己不需要任何特殊技术知识的人。
A PM who has some idea what he or she doesn't know can be very effective
我认为IT项目的项目经理不需要 IT背景。但是他/她必须绝对了解IT,并且应该知道IT项目的工作方式。
尽管IT背景是一个额外的优势,但缺乏IT背景并不能使它成为一个不太好的IT项目经理。是否具有IT背景也不是决定因素。
我曾使用过两种类型,每种都有其独特的特质和问题。
在IT的背景下:
-因为代码不是多线程的
,所以我们会理解何时出现性能错误-但是,在某些情况下,会说“嘿,这只是添加4行代码,您可以在10天内完成”
没有IT背景:
-非常容易就更改截止日期进行谈判
-对于没有任何要求的项目(到目前为止),有时会说“我们能否粗略估算100天并提及30%的缓冲时间。
没有。
一个好的项目经理是一个能够理解和理解团队的需求,偏好和能力的人,无论是在施工现场,生产车间还是软件开发机构。
一个好的或坏的项目经理可以具有任何背景:
具有技术背景的糟糕管理人员本来可以成为高级程序员,他们不喜欢新手在处理诸如指针之类的平凡而“简单”的概念时所面临的困难。
一个好的管理者可能是那种普通的程序员,他不像他的同事那样聪明或聪明,但是对项目结构,要求有深刻的理解,并且内心深处了解《神话人月》的课程,因为他本人和自己都过着糟糕的编码日子。由于未按时完成交付而被咀嚼。
一个好的经理人可能是那个软件销售人员,他发现他的编码员朋友由于他本人给客户的不切实际的承诺而不能在周末和他一起出去。
技术知识并不能预先确定程序员的经理资格,因为这两项工作所需的技能完全不同。所以不行。
我从来没有见过没有IT经验的项目经理可以管理一个值得一去的非平凡的软件开发项目。我见过很少有具有 IT经验的项目经理可以做到这一点,但是他们似乎没有那么做。
以我的经验,管理是关于有效的沟通和决策。考虑到这一点,理解自己所管理人员所使用的工艺(至少是核心概念和术语)的人比不那么了解的人更适合成为经理,这是有道理的,但是肯定有没有相关性。我已经看到具有编程经验的经理成功和失败,就像没有编程经验的经理一样。
在我看来,任何一种极端都是不好的。编程经验太少的人可能会盲目地信任他们的程序员(谢泼德紧随其后)。经验丰富的人可能会不断质疑团队的工作(微观管理)。
我个人认为,对核心编程概念有很好的了解,但意识到自己并不是“热门”的人是理想的管理者。
绝对是
我必须小心这一原因,因为它是基于真实的故事,但我会尽力解释自己的痛苦。
我现在是一名软件工程师,并且我们有一个项目经理,最近我经常和他一起工作。他没有技术背景,似乎对他完全不感兴趣,但这不是问题所在(每个人都有自己的兴趣)。如果您不喜欢技术诀窍,那会比您自己更“怪异”,但是如果您要在技术层面上与客户交谈是您的工作,那么拥有技术知识至关重要,而他不具备有。
无论如何,这个家伙对服务器如何工作,网页如何工作,编程如何等等一无所知。有时我觉得他什么都不知道。因此,每次我试图让他弄清楚我们现在要做的是什么,或者问题是我们目前所面临的是什么,他一无所知。而且他不是那种会说“稍等片刻的人。您能再说一遍,我真的不太明白这一点。” 不,他是那种不想表明自己在整个对话中什么都不懂的人。
但这并没有到此结束,因为他随后打电话给客户并说了一些基本不正确的内容。最终,我们不得不召集客户再次澄清。
这就是为什么我说拥有一些基本的技术背景和技术知识真的很重要。他不应该能够编写代码,但是他应该应该能够理解正在发生的事情以及必须完成的过程。
顺便说一句,因为我和他一起工作,所以我的工作不再有趣。
技术技能不能造就好经理,好的管理技能就可以。如果经理在“工作槽”中完成工作,这可能会有所帮助,因为他们可以了解外行无法做到的过程。但是,这也可能导致控制狂,甚至控制狂外行管理者也没有。他们可能会尝试自己完成所有工作,或者以极其不舒服的方式仔细检查您的工作。
以我个人的经验,我曾经有过的最好的经理对技术一无所知,但他知道在他之下工作的人都知道他们的东西,并且他知道如何赢得团队的忠诚和尊重。我在他的领导下工作了四年,只离开了公司,因为他离开了,被一个不那么好的经理代替。
我所经历过的最差的经理之一是精通编码(如果不是软件设计),他自己做了大量的工作,以至于他给我们其余的人留下的只有废品,错误修复或他不想要的项目。做自己。
似乎有些混乱:
项目经理不是开发人员的老板。开发团队的负责人(团队负责人,经理)以及进行招聘和评估的人应确定您是否足够努力。
估计并不完美。我认为项目经理比您理解的多。您是否真的希望没人会问您做某事需要多长时间?每个男孩都想知道何时完成以及跟踪它是PM的工作。
您可以成为PM是您:A)了解如何管理项目B)了解开发过程。这些都不需要编码知识,但是可以提供帮助。
除非PM兼任团队负责人,否则确定程序员是否做得足够好并不是PM的工作。要知道某人是否在完成任务的时间上“冒烟”,如果经理了解所涉及的内容,将始终具有优势。
经验丰富的程序员在进行特定类型的项目工作时,估算会变得更好。没有人期望它们是完美的,但是他们确实希望您能够做到完美,并随着时间的推移变得更好。
我想起了一句老话:“您不必为在这里工作而疯狂,但这会有所帮助。”
简短的答案是,动手编码经验不是好的软件PM的必要条件,但通常是首选。成为一名能干的PM的关键是理解开发过程(无论使用哪种方法),并相信开发人员愿意并且能够胜任其工作。开发经验可提供有关该过程的动手知识,因此会有所帮助。在公司中上进的PM经理还了解公司文化(和代码库),并且与开发团队中其他长期服务的人融洽相处,这就是IMO从内部提拔最佳PM的原因从外面带进来的 如果公司外部的某个人比内部的某个人可以更好地管理团队,那是非常错误的。
我提到的一件事是PM与开发团队之间的融洽关系。这既在人际层面又在技术层面上。这里的关键是沟通。开发人员必须感觉到他们可以为PM带来技术和人际问题,并且PM在描述问题时必须理解开发团队成员。
关于您问题的具体性质,估计值就是这样。关于数量的有根据的猜测(与假设相对,后者是对未来事件结果的更一般的预测)。经理通常会根据您最近的估算值与实际时间表,在数学上或直观上应用一些修饰符。敏捷将其纳入估算过程;客户直观地估计需求的复杂性,然后开发人员进行同样的操作,然后开发人员实际出去开发解决方案,为经理提供数据点以计算需求点与开发点的比率,以及开发点与人工的比率小时的要求。
简而言之,经理只会在以下三种情况之一中对您的面值进行估算:
如果是最后一种情况,那么工作场所周围还会有许多其他线索,也许您应该摆脱困境。