A. 程序员怎样才能走上管理岗位
想接受挑战首先要认识自己,看自己是否适合做管理不防考虑以下几点:对待问题是否公平公正,是否能够牺牲自我的利益顾全大局,是否有洞察力,是否能够了解组员的想法,是否能够做出正确的决策在没有条件许可的前提下……另外在该职责里面有两个重要的事情要做,一件事情是帮着老板干活,另一件事是替组员说话帮助他们争取相应的权益,所以夹心层的处理方式是处理好承担与托付,即责任的承担和信任的建立。
技术管理者的技术不是最资深的,但应该具备专业的能力,并且是某个领域的技术和业务专家,因为一个人的能力是有限的,管理上有所建树便注定了技术道路上深度有限,但他有自己的技术见解并能够在需求把控、产品设计、架构设计中给予建设性意见并作出正确的决策,也只有这样才不会变成空中楼阁的大领导,拥有良好的技术基础是赢得你的团队信任的前提,也是自己能够建设一个可信任的团队的前提。作为管理者只有得到大家的认可,大家的信任,才能进而营造一个可信任的团队,使得各个部门之间互信,协调一致。而得到大家的信任作为管理者必须要有一定技术基础,也只有基于该基础才能做出正确的判断力,才能够确保团队整体方向的正确性。
建议每个技术人员能够经历项目经理的角色,尝试一下管理团队,看一下有哪些问题要解决,换一种角度思考你所参与的项目,培养自己的大局观,大局观重要性在于能够让个体将一个事物分析的更清晰,只有站得高才能看得远,大局观对个人而言很重要,拥有大局观会使个体在把握处理事情上更公正清晰,并更有利于作出正确的决策使得工作向良性方向发展。对于技术学习本身也需要融会贯通、举一反三,这也是一种意义上的大局观,所以思考角度决定着自己在其发展方向前进的远近,不要只是将自己局限于技术细节当中。
认识自己很重要,因为只有自己做了擅长的事情才能够事半功倍,游刃有余,改变一个人太难,与其效果甚微的改掉缺点不如发挥自己的优势。国外有一种创新的思维,认为缺点和优势其实是相辅相成的,你的缺点正好反映出了你拥有它对应的优点,换一个角度扬长避短,真的就事半功倍了。想一想对于组员又何尝不是呢,与其说服改变一个人不如知人善用,扬长避短。
B. 请问一个程序员,怎么进化到一个项目经理
那得看你是不是有这样的志向了,如果你的目标是成为项目经理,那么你现应该做的就是开始关注项目开发的全过程。
程序员和项目经理是两个工种,这一点你一定要清楚,只有思想先转变了,人才有可能跟着转变身份。
程序员是技术工作,主要承担的是项目中某一部分的具体任务,完成某些需求,去把代码都敲完,保证测试的时候不出问题,没有BUG,也就够了,别的事不用操心,也用不着一个程序员去操心;作为程序员最多就是学点新技术,可以更快更好的完成自己那摊任务即可。
项目经理是管理岗,至少理论上是这样的,不过现在很多软件开发工司的项目经理多半也是一个项目组里的技术骨干,其实这也没有什么不行的,只不过想做好项目经理,仅仅懂技术是远远不够的。
项目经理的工作更多的是协调内外关系,确保项目可以按期合格完成。协调则是主要工作,内部 ,需要协调项目组里各工种之间的工作,让大家可以配合起来更高效的完成工作;同时还要和公司进行协调,比如人员的借调或者资源的调配,琐事更多一些。
与此同时还要和项目的建议单位进行协调,因为人的沟通是不可能百分百理解的,项目开发更是如此,对于很多细节上的问题,都是应该由项目经理去和建议单位协商的,若沟通不畅后续将面临着很多设计变更的问题,会耽误时间与资源。
所以如果你想成为项目经理,在忙完自己程序员的工作之后就多留心去学一些管理方面的知识吧,以备哪一天的荣升之机。
C. 程序员如何成为一名合格的项目经理
千万不要在进行需求分析阶段就先进行编码工作,也许你觉得这些模块和具体的业务功能无关,可以直接进入编码阶段,但是你要知道,在这个阶段进行编码工作会使你忽视了对需求的理解和分析,而且并不见得你现在完成的代码模块百分之百适合未来的业务系统,万一有偏差,那就是得不偿失了,在需求分析和系统设计上多花一点时间,会为以后的工作减少很多麻烦。所以在项目管理过程中,我认为最为保险的办法就是严格按照软件开发流程规范来开展工作,虽然这样会相对比较繁琐,但是在很大程度上保证了我们项目的成功率。
有经验的项目经理都说自己是打杂的,所以,你要明白你不再是一个coder,项目组中大大小小的事情都要你去处理,你需要学会主动和小组成员加强沟通,从工作和生活等各个方面加以关心和帮助,这样会使团队气氛更加融洽,提升团队成员对你的信任度,在很大程度上能缓解大家的工作压力,我们倡导的是快乐工作,而不只是为了工作而在一起工作。不要认为自己和团队的成员只是工作关系,同时,他们也是你的朋友。如果你是一位性格内向的项目经理,那么,你应该让自己开朗点,不要因为自己的性格而让整个团队变得很沉闷,那样大家工作起来会感觉非常痛苦。
作为项目的管理者,你不仅仅是被人领导,而是还有一个团队需要你去带领,当他们请教你的时候,你有责任和义务去帮助他们解决,或者给他们指定找谁解决,而不应该因为自己不会而一走了之。同时要学会培养团队中的成员,放开手,大胆的让他们去做,不要认为教他们完成任务还不如自己亲自动来得快,那样你只能做一名程序员,而且越做越累,要知道,还有更多更重要的事情等着你去做。
我建议每一两天应该组织项目组成员开一次讨论会,否则,项目组成员之间谁也不知道谁在做写什么功能。和大家谈谈项目的进展,了解下大家目前遇到的困难和工作进展,适当调整项目组成员之间的工作分配。而不是在项目前期安排了任务后,后期的工作任务不根据项目的实际情况进行调整,等到项目后期时,大家同时抛出很多问题,这样会让你束手无策,一片混乱。所以要及时举行项目讨论会,学会灵活得安排工作任务,没有谁规定一个项目的所有工作任务只能安排一次。
其实作为基层的管理者,要管理好团队相对还是比较简单的,我认为只要和同事之间的关系处理得足够融洽,就意味着你的管理已经成功了一大半了,都说做人比做事重要,相信这一点没错的,但是管理走向更高的层次,就需要你学习一些比较专业的管理学方面的知识了,这段时间在看《从技术能手到管理高手》这本书,我觉得非常适合从程序员逐步转向管理的朋友阅读,但不能照搬书上的条例,要结合自己的实际工作环境,消化吸收之后,再用于实践才是最好的。前段时间CSDN上一位牛人阿朱出了一本书叫做《走出软件作坊》,我只是看了书中的目录和部分内容,从同行的评价来看,我想这本书应该是值得一读的,哈哈。
D. 从一名程序员过度到项目经理
从一名程序员过度到项目经理
1.从程序员到PM,是一条脱变的路,事实上程序员走的路最终不应该是项目经理。首先有一点需要明白的就是,一定规模的项目中,项目经理不需要太懂技术,他可以是一知半解。项目经理的任务不是在技术方面,技术相关的应该交给SA去做。项目经理更多地是做管理,沟通等工作,你如果可以的话到书店查看一下关于项目管理的书籍,你就会明白。当然对于小项目来说,有可能是PM,SA是同一个人,而这样的项目经理更多只是SA加上一些管理工作。要做项目经理,你就首先告诉自己不再去碰技术细节了。程序员并不是一个培养项目经理的好环境。所以没有什么从Coder到什么developer再到SA然后是PM的路,这是一条比较悲哀的路。在大公司,SA下一个目标不是PM,而consultant,然后是seniorconsultant,PM走的是另一条路,所需要的技能不是技术,技术给PM带来的能力提升是很少的。在项目中你最后能分清楚PM与SA的关系及各自在项目中的分工与用途。
2.其实我蛮同意gzlucky(Lucky)的看法的,确实是我们公司不少项经理就是不很能跟得上现在的一些技术,因为很多人都快年近四十,儿子都上高中了,要他们再学新技术真的难度比较大,他们的工作基本上就是天天找手下的程序员,布置这个任务,询问那个任务做的怎么样了。不过我的头倒是和我一样编程,他手下写代码的就我一个人,他自己也会ASP和JSP,但是可能对。NET不熟,就由我来主负责了。我觉得项目经理还是像他这样的好,自己也能懂不少技术,可以服人。但是我的头儿好像在沟通这一块不是非常出色,当然也有可能是俺太内向,不太与他沟通,所以他也只是在交待任务后就不再多询问,而不像别的项目经理天天追程序员后头问。我想问问各位,你们看哪种项目经理才是比较好的,像我的头儿这样的,还是像某些喜欢追程序员后面问进展的。
3.原来在一个小公司做过半年的.DM,一年的PM,后来为了让自己的技术更扎实一些,离开了原来公司,现在在大公司做程序员,开始后悔了,在大公司里很难接触管理方面的东西,也很难晋升,个人认为在小公司做DM,PM,有经验后直接找大公司的PM,这样也是一条路。
或者考PMP之类的证书,然后直接找管理的工作。
希望过来人能给予更好的意见和建议,我也现在想往管理层发展。
技术很硬了再去做PM,这种想法是错误的,我就犯了这个错,边搞好技术(为了生计)边学管理知识(为了将来),慢慢向管理发展,不能等。有句话说的好,机会是属于那些有准备的人的。利用业余时间多学些管理方面的东西,所谓人的差异在业余时间。
要走向管理层,英语一定要学好。
沟通很重要,要做好管理者,先学会做人。多跟下属沟通,多为下属着想,而不要去巴解讨好上司。体谅下属,把项目计划做的尽量合理,不要让下属加班,给下属发展和晋升的空间,这样才能是下属有干劲,才能把项目做好,你才有更高的升迁机会。
只有把自己知道的不断的让你得力下属知道,只有提拔起一些得力的下属来,你才有时间和精力去向上爬,不然你抱着不放,就没有升迁的机会。
管理不是喝酒抽烟那么简单,那只是过去的那种不思上进,耽误自己前程。
吃尽苦中苦,方为人上人。
做PM不是混,是要把项目做好,这跟做人是一个道理,这也就是为什么做管理要先学会做人的道理。
pm的整个工作重点是什么?如果做为一个PM,技术不高怎么对付组里的牛人
我们经常会因为公司里的顶尖人才、个性化太强,不能与其他人合作而感到棘手,要解决这一问题其实也是有法可寻的。
一、在肯定其价值和优势的前提下,明确地制定改进的目标;
二、顶尖人才能够面对中肯的,明确及一对一的批评作正面反应,所以要加强与他沟通的力度;
三、可以根据具体情况调整考核目标,加强与其他员工合作的内容;
四、把"顶尖人才"调到相对能独立发挥其才能的岗位,减少与别人发生矛盾的机会。
;
E. 程序员如何修炼项目管理能力
摘要: 项目管理能力修炼的6个阶段。
我门在“ 程序员加薪升职之成长金字塔 ”中介绍了职场成长金字塔:
大部分开发者工作三五年后,都能掌握所在岗位必须的知识、经验和技能,然而很多人接下来就陷入困境,左冲右突,无法加薪升职,一直停在第1层,三年五年过去了,八年十年过去了,可能都还停在1层的位置。
对开发者来讲,第1层对应的就是具体的软件开发角色,卡在这层无法晋升,是指没办法成为技术管理角色。这其中最重要的原因是: 大部分开发者只注重专业技能的修炼,忽视了人际沟通、项目管理等技能 。
而实际上,技术管理岗位,需要软件开发的专业知识体系,也需要项目管理、部门运营、人际沟通、产品知识、自我提升、公司知识、行业知识等等,这个岗位,需要的是一个知识树:
在这棵知识树中,有1个知识体系,特别重要,那就是——项目管理。如果一个开发者不具备项目管理知识体系和实操能力,就很难带好软件项目,很难走向技术管理岗位,很难做好技术管理工作。
所以,今天我们来聊聊 项目管理能力修炼的6个阶段 :
很多事情都是有章法、框架的,项目管理也是如此。比较知名的项目管理体系就是PMP认证所定义的体系了。建议想走技术管理路线的小伙伴,都学习一下PMBOK,考一个PMP认证。
在PMBOK中,把项目管理分为10个过程:
前 7 个过程,是对事务的管理,后 3 个过程,是对人的管理。而且,后 3 个过程往往会在很大程度上影响前面的 7 个过程。所以,人际沟通能力,协作管理能力,都是技术管理岗位必须具备的能力。
我们掌握一项技能的最开始,就是找到这个领域的知识体系和框架去学习。了解了基本框架,再去实践,以实践来印证所学知识体系,相互促进,这样,知识才能内化为能力。
其实项目管理并不是软件开发过程中特有的东西,它是通用的技能,可以在变通应用于任何类型的项目,比如电视生产、汽车制造、年会,各种都可以用。所以在一开始我们还是普通开发者,无缘管理项目时,可以通过生活中的项目来练习。
比如国庆长假的旅游,就是一个很好的练手项目,因为它牵涉到多个人、成本、线路规划、住烂坦宿、交通、饮食等等,比较复侍颂杂,几乎包含了项目管理的10个过程。
再比如同学聚会、读书分享会、组团爬山等等,都是很好的练手项目。
我们在生活类项目中练就的能力,比如规划、进度管理、成本控制,都可以直接拿到软件项目中使用。
我们还不是项目经理、技术经理的时候,可以观察别人是怎么做的,把自己放在管理角色上,来推演自己会怎么做,这样也是一种有效的练习。
一个简单有效的练习方法,是给自己定一个目标:每天挑出一个项目管理相关的问题来琢磨解决之道。
带着问题去学习,是最有效的方式。
生活中练习,工作中代入角色,日常推演,这些方法可以让我们熟悉项目管理的知识、技能和过程,但有效的办法,还是直接做目标领域的项目管理工作。
有人说我不是项目经理啊,怎么做项目管理?
别急,你虽然不是项目经理,但你身在项目之中,承担了某个角色嘛,那自然有些工作是和你相关的。另外,更关键的是:你要跳出工作内容和岗位职责的范围,放眼全局来思考。
站出来,你才有机会。老想等着领导看见你给你机会,那是不可能有机会的。
所以,你要用心观察,发现机会,主动去做。
比如拔高自己,站在全局视角思考整个项目,从立项、需求、开发、测试、交付、运维、项目生产工具,分析哪个环节做得不好,哪个环节改善之后效果可以被看见,主动去做这些事情,主动成为衔接不同环节、不同人员、不同部门的桥梁;
比如观察项目经理、研发经理,看他们有哪些项目管理相关的事情是不愿意做的,比如组织会议、跟踪计划、分派任务、推动多干系人协作等,主动找他们表达你可以分担这部分工作的意愿,获得打杂的机会。
有心就可以发现很多可以发挥的机会——因为大多数开发者都嫌麻烦不想把事情揽在自己身上哦。
如果我们在第四个阶段做出一些亮点,比如会议组织的很好、项目计划跟踪的很到老历郑位,那团队有新的项目时,经理可能就会安排你来管理。到这个时候,你就可以系统地进行项目管理了。
自己独立带小项目时,要注意下面这些点:
经历了第五阶段若干个小项目的实践,我们对软件项目管理应该有了丰富的知识积累和实践经验,可以挑战比较大的项目了。
5个人2个月可以完成的小项目,与100个人2年才能完成的中大型项目,不是一个概念,对项目管理能力的要求,非常不同。具体怎么不同,我没做过太大的项目,并不知道啊……
呃,所以,这个阶段,我没什么好说的……如果你有经验,文后留言来聊聊呀。
这次我简单介绍了项目管理能力修炼的6个阶段,提供一个循序渐进的参考。实际上,软件项目的管理,有它自己的特色,与建筑、生产、娱乐等,大不相同,所以,要做好软件项目管理,除了PMBOK构建的体系,还需要了解软件工程特有的知识体系,这方面,建议看看下面几本书:
好啦,这次就到这里,下次来聊如何成为技术管理者。
作者信息: 安晓辉,《程序员的成长课》作者,公众号“程序视界”主理人。
F. 作为一名程序员,从事技术管理工作,应该注意什么事情
从程序员到技术管理,这要用人力资源管理的专业知识来看,就是一个非常典型的从“个人贡献者”向“团队管理者”角色转变的过程,这也是各公司人力资源部门会重点关注的一个群体,帮助这些新晋升为管理者的人员快速进行角色转换。
我将结合我人力资源从业生涯见到过的诸多案例、以及个人从员工升到管理层时的一些心路历程,来回答这个问题。
依赖下属完成业绩目标的管理者,最重要的就是解决两个问题,一个问题是让下属会干活、有能力干活;另外一个问题就是让下属有意愿干活,拥有一个能够好好干活的环境。
辅导和培养员工能够解决员工干活能力的问题,而激励下属及增强团队凝聚力则能够解决员工干活意愿的问题。主要分享3个主要方法。
G. 作为一名程序员,从事技术管理工作,应该注意哪些事情
应该要注意向团队之中的前辈学习,因为团队之中的前辈在编程方面具有很多的技巧可以向他们进行相映的讨教,其次,在数据方面一定要认真仔细,因为数据层面涉及到的获取数据,数据书写以及数据修改等这些相应的东西都一定要校准,最后在流程方面一定要认真仔细,要多做笔记,因为这样才能够去更好的熟悉流程。
在编程这个行业里面,程序员需要学习的东西非常的多,但是最为重要的东西还是必须要向前辈学习,因为编程的内容和其他行业具有很大的区别,基本上在团队里面的前辈拥有着很多的经验,在编程方面能够授予很多的技巧性的东西。尤其是针对于公司内部的编写规范,基本上这些东西都存在着很多非常复杂的细节,所以作为公司的新人首先要做的就是要向公司的前辈请教,究竟哪些东西是不需要去弄的,做好这些相应的东西才能够在前辈的帮助之下学会自己该掌握的技能,才能够在有技巧的东西之上,形成自己的新东西。
一名优秀的程序员一定要学会方方面面的内容,更是要再踏入公司的时候向前辈学习相关的经验,因为只有这样才能够让自己得到更快的成长,才能够在时间的积累之下,成为一名优秀的程序员。
H. 如何从程序员成功转型成为公司的老板
程序员是一个技术岗位,老板是一个经营岗位,技术人员拿的是稳定的薪酬,老板要接受的是风险很高、很不稳定的利润。技术人员的薪酬永远是正数,老板的利润有可能是负数。当老板要承受最大的不确定性。程序员要转型成为老板,需要一个磨炼的艰苦过程。你首先要很优秀,当老板不仅要懂技术,还要懂格局、懂经营、懂销售、懂管理、懂人事、懂金融,所以程序员转型成老板,挑战很大,你需要有经营管理的天赋。
如果你能在管理岗位上锻炼一个阶段最好。不能的话,你如果在某个技术领域是顶尖高手,还有很高的经营管理天赋也可以。即使你很优秀,创业也是九死一生的过程,创业死亡率非常高,成功者都是踏着死亡公司的尸体上来的,你需要面对和承受长期的这个过程。所有人创业当老板,都是一个低概率的成功事件,如果你具备条件,能够承受一切折磨,可以去投入到创业的洪流中。