Ⅰ 程序员如何修炼项目管理能力
摘要: 项目管理能力修炼的6个阶段。
我门在“ 程序员加薪升职之成长金字塔 ”中介绍了职场成长金字塔:
大部分开发者工作三五年后,都能掌握所在岗位必须的知识、经验和技能,然而很多人接下来就陷入困境,左冲右突,无法加薪升职,一直停在第1层,三年五年过去了,八年十年过去了,可能都还停在1层的位置。
对开发者来讲,第1层对应的就是具体的软件开发角色,卡在这层无法晋升,是指没办法成为技术管理角色。这其中最重要的原因是: 大部分开发者只注重专业技能的修炼,忽视了人际沟通、项目管理等技能 。
而实际上,技术管理岗位,需要软件开发的专业知识体系,也需要项目管理、部门运营、人际沟通、产品知识、自我提升、公司知识、行业知识等等,这个岗位,需要的是一个知识树:
在这棵知识树中,有1个知识体系,特别重要,那就是——项目管理。如果一个开发者不具备项目管理知识体系和实操能力,就很难带好软件项目,很难走向技术管理岗位,很难做好技术管理工作。
所以,今天我们来聊聊 项目管理能力修炼的6个阶段 :
很多事情都是有章法、框架的,项目管理也是如此。比较知名的项目管理体系就是PMP认证所定义的体系了。建议想走技术管理路线的小伙伴,都学习一下PMBOK,考一个PMP认证。
在PMBOK中,把项目管理分为10个过程:
前 7 个过程,是对事务的管理,后 3 个过程,是对人的管理。而且,后 3 个过程往往会在很大程度上影响前面的 7 个过程。所以,人际沟通能力,协作管理能力,都是技术管理岗位必须具备的能力。
我们掌握一项技能的最开始,就是找到这个领域的知识体系和框架去学习。了解了基本框架,再去实践,以实践来印证所学知识体系,相互促进,这样,知识才能内化为能力。
其实项目管理并不是软件开发过程中特有的东西,它是通用的技能,可以在变通应用于任何类型的项目,比如电视生产、汽车制造、年会,各种都可以用。所以在一开始我们还是普通开发者,无缘管理项目时,可以通过生活中的项目来练习。
比如国庆长假的旅游,就是一个很好的练手项目,因为它牵涉到多个人、成本、线路规划、住烂坦宿、交通、饮食等等,比较复侍颂杂,几乎包含了项目管理的10个过程。
再比如同学聚会、读书分享会、组团爬山等等,都是很好的练手项目。
我们在生活类项目中练就的能力,比如规划、进度管理、成本控制,都可以直接拿到软件项目中使用。
我们还不是项目经理、技术经理的时候,可以观察别人是怎么做的,把自己放在管理角色上,来推演自己会怎么做,这样也是一种有效的练习。
一个简单有效的练习方法,是给自己定一个目标:每天挑出一个项目管理相关的问题来琢磨解决之道。
带着问题去学习,是最有效的方式。
生活中练习,工作中代入角色,日常推演,这些方法可以让我们熟悉项目管理的知识、技能和过程,但有效的办法,还是直接做目标领域的项目管理工作。
有人说我不是项目经理啊,怎么做项目管理?
别急,你虽然不是项目经理,但你身在项目之中,承担了某个角色嘛,那自然有些工作是和你相关的。另外,更关键的是:你要跳出工作内容和岗位职责的范围,放眼全局来思考。
站出来,你才有机会。老想等着领导看见你给你机会,那是不可能有机会的。
所以,你要用心观察,发现机会,主动去做。
比如拔高自己,站在全局视角思考整个项目,从立项、需求、开发、测试、交付、运维、项目生产工具,分析哪个环节做得不好,哪个环节改善之后效果可以被看见,主动去做这些事情,主动成为衔接不同环节、不同人员、不同部门的桥梁;
比如观察项目经理、研发经理,看他们有哪些项目管理相关的事情是不愿意做的,比如组织会议、跟踪计划、分派任务、推动多干系人协作等,主动找他们表达你可以分担这部分工作的意愿,获得打杂的机会。
有心就可以发现很多可以发挥的机会——因为大多数开发者都嫌麻烦不想把事情揽在自己身上哦。
如果我们在第四个阶段做出一些亮点,比如会议组织的很好、项目计划跟踪的很到老历郑位,那团队有新的项目时,经理可能就会安排你来管理。到这个时候,你就可以系统地进行项目管理了。
自己独立带小项目时,要注意下面这些点:
经历了第五阶段若干个小项目的实践,我们对软件项目管理应该有了丰富的知识积累和实践经验,可以挑战比较大的项目了。
5个人2个月可以完成的小项目,与100个人2年才能完成的中大型项目,不是一个概念,对项目管理能力的要求,非常不同。具体怎么不同,我没做过太大的项目,并不知道啊……
呃,所以,这个阶段,我没什么好说的……如果你有经验,文后留言来聊聊呀。
这次我简单介绍了项目管理能力修炼的6个阶段,提供一个循序渐进的参考。实际上,软件项目的管理,有它自己的特色,与建筑、生产、娱乐等,大不相同,所以,要做好软件项目管理,除了PMBOK构建的体系,还需要了解软件工程特有的知识体系,这方面,建议看看下面几本书:
好啦,这次就到这里,下次来聊如何成为技术管理者。
作者信息: 安晓辉,《程序员的成长课》作者,公众号“程序视界”主理人。
Ⅱ Java程序员的4个职业发展方向,该如何把握黄金5年
2)参加让闷工作1-2年之间
在这段时间里,想必对Java已经有了一个较为深入的了解。
首先,要非常熟悉设计模式,日常要多看一些关于代码编写优化的书,提高自己的代码能力,能够写出一手优雅的代码;
其次,在工作过程中肯定接触过并发,应该更加深入地去了解并发的相关知识;
最后,要对所使用的框架和Java的类库有一定的研究,还需要去看一些JDK中的类的源码,包括自己日常所使用的框架的源码。
总而言之,这个阶段,需要做的是深入了解Java底层和Java类库,也就是JVM和JDK的相关内容。
3)参加工作3-4年之间
处于这个阶段,说实话很难再提升代码能力了,因为这个阶段的学习会比较多样化。
在前三年的工作中,相信或多或少都会接触一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等技术,你能精通任何一项,都将是你未来面试时巨大的优势。
因此,如果自己对某一项技术感兴趣,这时可以深入去研究,即使这项技术不一定会在工作时用到,但一定是相关的。
4)参加工作4-5年之间
到了这个阶段,应该遇到了所谓的“技术瓶颈期”了。不要急于提高自己的技术,此时更重要的是提高你的影响力。
可以尝试去一些知名公司提高你的就业背景;也可以发表一些技术文章去影响更多的人;还可以去Github创建一个属于自己的开源项目,打造属于自己的产品。
这个时候提高自己的影响力主要是可以给自己创造更多的机会,所以,这个阶段最大的任务是提高自己的影响力,为未来工作生涯做准备。
对于软件开发同学而言,首先要客观认识自身的情况,想清楚自己现在要什么、未来要什么,做好职业规划,从而选择不同类型的企业。
下面来再谈谈Java程序员职业发展规划和方向。
Ⅲ 40岁的程序员有什么出路
对于程序员大家了解还是比较多的,因为当今社会程序员是非常吃香的,不过由于职业的特殊性到了40岁后的程序员,都会选择转行,下面就介绍几个适合40岁程序员转行的职业吧!
1、做管理人员
40岁以后的程序员,到了中年大家都不愿意每天被上司管塌搜洞着,这个年纪的程序员会有一部分选择去做管理,毕竟在这个行业已经摸爬滚打了很多年,因此对于管理这方面也有了一套自己的想法,加上自己对于技术的理解,因此40岁的程序员可以凭借着这两点来管理新人,也是比较有成就感的一个职位!
2、自己创业
40岁已经到了中年,如果实在不在继续从事程序员行业,可以转行,很多程序员在年轻时攒了很多工资,善于理财的更是收获了很多,可以选择一个比较稳妥的项目进行创业,自己当老板,也是一个不错的选择!
3、做工程师
有人说“科技变化太迅速,工程师可能跟不上节奏”,这或许曾经是事实,但建立网络所需要的核心技术已经存在了数十年,这对于程序员来说也是一个容易上手的工作。与其他竞争性行业相比,工程师的地位并不容易被轻易的替换、取代,软件工程师对于企业仍然供不应求,所以你总是能找到工作。
4、做老师
可以说老师这个职位是大部分都梦寐以求的,虽说工资可能没有程序员高,但是假期非常的多,而且程序员可以团枯凭借着一身的手艺去培训机构做老师,术业有专攻,收入也是非常可观的!
5、架构师
很多人架构师有不同的定义,认为架构师不用写代码,不用了解细节。我这里定义的架构师可以不用写代码,但是一定要了解细节。
1、成为程序员就意味着要开启程序生涯,开始敲代码,如果说做程序员仅仅为了高工资,那么就不必做了。一天天干坐着只为等工资那么奉劝你,另谋高就。
2、学编程最好能找到编程的乐趣,没有乐趣那么编程会真的很枯燥。编程需要逻辑和严谨,如果你很粗心大意,那么同样,还是另谋高就。
3、作为程序员要有探索精神,要学会不断发现新知识并学习新知识,自甘落后也不建议加入程序员。因为技术停留你就会面临失业。
4、程序员需要时刻学习和思考,因为程序方面版本的更新换代很快,所以需要不断的学习和努力。要有追求向上的心态。
5、当程序员还是很有乐趣的。当你学到新知识时,当你有新的思想见解时,当你有新的产品问世时,和朋友探讨你的成果时,这些真的很有乐趣。
6、当程序员不易也不难。世上无难事,只怕有心人。
7、要舍得花钱买资料,买视频教程。读好书绝对是学习编程的最佳捷径。选好视频也至关重要。正所谓师傅领进门,修行靠个人。多数靠自学。
8、程序就是:任何有目的的、预想好的动作序列,它是一种软件。编程序就是编写程序。也就是我们所说的(敲代码)。
9、程序员应该知道的漏凯基础知识和概念性问题
计算机的组成,cpu工作原理,程序的概念,常见的编程语言,C,C++,php,C#,Java等等,HTML、XML等是标识性语言,操作系统OS的概念和原理,面向结构的设计概念,面向对象的概念,软件工程的概念和原理,熟悉常用数据库,如Oracle,mySQL,sql server等,了解网络编程的概念,了解多媒体的概念,要掌握数据结构和基本算法。
Ⅳ 大龄程序员都干啥去了
大龄程序员做管理、产品、创业去了。
基本上年纪很大了,还在开发一线的都是喜欢编程,喜欢技术的人。这样的人,如果没有什么其他的毛病,我相信,大多数的企业都是欢迎的。
编程可能就是写一些算法,递归,解决一个8皇后问题,解决一个汉诺塔问题。但是涉及到软件以及工程方面,一切都变了。而真正能够驾驭大规模系统的人,本身,绝对不可能不精通开发和编程的。
也有网友说,“在我28岁的时候,我担心30岁,结果到了30岁,我还是程序员,然后我又开始担心35岁,等到了35岁,发现公司还有很多40岁的程序员,于是也就没那么担心了。”与其担心未来,不如踏实做好自己。
Ⅳ 程序员做多久可以转到管理层工资多少
与时间关系不大,而与你在职涯上的进程对应。
路径分两种:
程序员——》软件工程师——》高级软件工程师——》开发(技术)主管——》开发(技术)经理——》开发(技术)总监。这一路径比较长,每一环最少也得两年才可以进阶下一环。
程序员——》软件工程师——》管理型主管——》技术管理经理——技术管理总监。这一路径稍微容易些,但要求在专业技能之外,有管理知识和管理思维以及对应方法。同样,每一环最少也要两年。
Ⅵ 程序管理员是干什么的
程序员是从事程序开发、维护的专业人员。其工作很多,有erp、协同管理、数据报表、门户网站、论坛社区、桌面软件等等,可能还要负责需求设计,概要设计,数据库设计等方面的设计。
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
软考程序员考试属于计算机软件水平考试(简称软考)中的一个初级计算机职称考试。对于软考程序员考试并无学历及资历条件限制,更无论年龄、专业与资历。一年可报考软考程序员考试两次,但一次考试只能报考一种资格,因此报考了程序员考试则无法再报考软考其他级别或科目的考试。同时软考程序员考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试方式。
Ⅶ 作为一名程序员,从事技术管理工作,应该注意什么事情
从程序员到技术管理,这要用人力资源管理的专业知识来看,就是一个非常典型的从“个人贡献者”向“团队管理者”角色转变的过程,这也是各公司人力资源部门会重点关注的一个群体,帮助这些新晋升为管理者的人员快速进行角色转换。
我将结合我人力资源从业生涯见到过的诸多案例、以及个人从员工升到管理层时的一些心路历程,来回答这个问题。
依赖下属完成业绩目标的管理者,最重要的就是解决两个问题,一个问题是让下属会干活、有能力干活;另外一个问题就是让下属有意愿干活,拥有一个能够好好干活的环境。
辅导和培养员工能够解决员工干活能力的问题,而激励下属及增强团队凝聚力则能够解决员工干活意愿的问题。主要分享3个主要方法。
Ⅷ 如何从一个技术人员转变成管理者
从技术到管理的转型按照王志东的说法,有些技术人员就是为研发而生,而有些技术人员天生就是管理者
,只不过是从技术的门进去而已-他最佩服的比尔盖茨就是如此。至于自己,10年前他坚定地认为是前者。但现在,他越来越认为是后者。
王志东最初扬名是因为写出了Richwin和中文之星,他被看成中国第二代程序员的象征。
1992年他与人合作创办新天地,向管理迈出了第一步。
虽然当初不情愿地认为当总经理是被人推到水里的
,怀着有朝一日还要回来做技术的梦想,但是现实中他却在管理这条路上越走越远了:从新天地到四通利方总经理到新浪网总裁再到现在的点击科技总经理,王志东已经在充分享受着一个管理者的乐趣。甚至点击科技做的软件就是管理软件,到今年上半年,其终端产品的累计销量已经突破10万套。
技术人员总是希望能找个好的环境,好的老板
。如果这两点不能满足,常常有失落感-这个老板不行,我就跳槽
,其实就是一种逃避。这是典型的技术人员心态,一碰到人的问题就不想多花心思和精力,觉得没有价值。但是当理想状态在当时的环境下不存在时,只有自己去创造这个环境,要创造就意味着你碰到任何问题都要自己面对,想出对策,这是一个世界观的变化。最初在新天地,
新天地的经历告诉我遇到事情不能躲。转型的过程中是不是经历很多痛苦?从1993年到1997年是我转型管理的过渡期,之前我是一个纯粹的技术人员,之后我完全成了一个管理者。
1993年底四通利方成立,我担任总经理。
1997年四通利方公司的改组和结构调整告一段落,也就是在这一年我写下了最后一行商业代码。后来在新浪做的完全是管理工作。
这个转变过程一开始我是抵触的。我不愿放弃这个手艺-比如你是一个舞剑的高手,结果要你把剑挂起来去做别的事。转到另外的领域,万一不能成,再回来,也是很冒险的。后来我就采取所谓的甜柠檬心理-不得不吃的时候,柠檬也是甜的。当我不得不接受管理职责的时候,我就只好乐意接受并品味其中的快乐。一品味发现其实也不错。就和你第一次喝咖啡,咖啡是苦的、第一次喝啤酒,也是苦的一样。其实你喝多了,就会品味到其中的香醇。
首先,我觉得非常重要和有效的就是拜师。所谓拜师指的是一字之师
,就是要广泛地拜师。比如在和朋友聊天的过程中,就可以学到很多东西。你可以请他吃饭,然后趁机把使你最难受的一些东西讲出来,向他咨询>咨询
。甚至有时候就可以找本公司的员工:
关键是你得放下架子。
这样要比我自己翻书效率高很多。
我现在越来越感觉到这种方法的有效,比如一次我在和人民大学的一位管理专家吃饭时,他提到了敏捷组织这个概念,这使我脑子一亮。回来以后我一查,发现这个概念正好和我们的产品很切合。我很喜欢参加一些企业家的聚会活动,在这些场合,你可以得到很多信息
,开阔思维。
第二,
就是要不断地体会和总结。要在实践中慢慢摸索,边干边学。
比如风险投资
,当时我在四通利方时拜师都没法拜,国内没有懂这个的人。但我当时隐隐约约知道一些概念,我就自己创造机会,用了两年多时间终于成功融资
。当时我也找了很多专家,但是最大的困难就是这些专家懂国外的不懂国内,懂国内的不懂国外。还有的懂产业不懂资本
,懂资本又不懂产业。我要把他们所有的信息都汇总过来,再加上自己的经验一起做判断。
第三,我觉得很重要的,也值得向那些准备向管理转型的技术人员推荐的是读一些哲学书。我现在越来越感觉自己管理能力的提升和自己看过一些哲学书,进行过一些哲学思考有关。有一个观点对我影响非常大,就是同构理论。同构理论认为任何体系都存在一种对应关系。你可以用做电路的脑袋去做软件,也可以用做软件的脑袋做管理。
Ⅸ 如何从工程师走向管理者
无论从哪方面讲,从个人贡献者向管理者的转变,都是一个艰难的的过程。然而,我以前就说过,工程师们尽管平时沉默寡言,但比起公司的其他人,这个群体实际上更适合做管理工作。
管理者和开发人员最大搜庆的区别就在于衡量成功的标准不同。
具体来说:
(一) 你的成功会更琐碎
当我还是一个程序员的时候,每天来上班脑子里都会有一个工作计划,通常这天结束时,我都能完成好这个计划。这种感觉就像是每一天我都在进步。
而作为一个经理,常常在回家的时候,都不知道我那天到底干了啥。并不是我什么事都没做,只是实在没有可供衡量的结果。
身为管理者,任务之一就是帮助工程师去做改变,但世孝握改变不会是一朝一夕可以完成的,需要时间和关注。
你努力去实现的变化,可能模棱两可并且很难有清晰的定义。
要认识到需要改变,这件事本身也可能很难。
工程师们很难抛弃旧的习惯,需要不断的提醒他们。要改变他们的思维定势,是一件有挑战性的而且不轻松的事。
在 New Relic,我们每季度都会举办一个定期检慎清查,用于提供一个反馈的渠道,让工作的重点放在长期的目标上。有些季度的发展可能突飞猛进,但大多数时候,会有的只是还叫不错的进步。
当团队人员真正出现大的变化时,就需要管理者不断的引导。我们经常使用的工具叫做“regular info-bits(定期的信息交流)”。具体做法是,工程师把他们工作上的进展用简短的 email 发给管理者。Email 的主题通常与专业发展,团队合作,项目更新,沟通交流和工作与生活的平衡有关。这个过程有助于他们更加系统的去思考问题,你也可以通过这些信息,获悉他们的成长。
这种做法会需要很长的时间才能看到结果,但是最终可以看到你团队的成员们建立了自信并且成长良好,你会觉得一切辛苦没有白费。
(二)你的成功有战略上的影响
好的开发者可以对企业造成巨大的长期的影响,好的经理会引导整个团队的成功。
工程上的问题常常不是黑就是白。但是人的问题,几乎总是模棱两可的。即使你知道你要解决的问题是什么,解决的方法却并不是总是那么清楚。过去你用这个方法解决了这个人的问题,不代表你就可以用它解决现在的问题。人类行为这个东西实在是有太多的变量了。
要建立一个合作无间的团队,就有一系列的挑战:
团队的建设并不是把一个个明星成员拼凑起来这么简单。
一个有凝聚力的团队需要充分理解每个人的长处和短处。
团队不会是一成不变的,每当有人加入或者离开,都需要重新磨合。
作为经理,你的工作是确保你的团队尽可能的高效的运行。但你不能指望稍有变动,就来一次大刀阔斧的革新,不能指望流程上动辄就做彻底的改变。有效的管理者需要:
不断的评估你的团队需要什么帮助。
注意,这个需求对于不同的工作和不同的团队可能是不一样的。
使用和发明正确的工具来支持你的团队。
这个关键是逐渐的变化,不断的观测,而后不断的做出改进。例如,如果你发现你的团队没能得到足够力度的支持,首先找到办法使局面不要那么混乱,而后再寻求工具来优化你的团队。和你的小伙伴们一起努力克服困难,先选择重要的问题来处理,然后回头检查这个变动是否得当。
(三)你的成功往往就是帮助别人获得成功
在 New Relic,我们相信 Invisible Manager(隐形的经理)这个理念。这意味着我们在幕后工作,让工程师站在聚光灯下,突出他们的成功。我们确信工程师应该获得荣誉,这是他们应得的。所以 New Relic 的新功能推介会,我们鼓励让团队成员站在公众面前去介绍产品,而不是产品经理或工程经理。
大多数人管理者之前都是成功的工程师。而作为一个经理,会产生更大的影响,不仅在生意上,也在员工的生活里。许多管理者会发现,帮助别人也是帮助自己成长。
先管理好你自己
对于有工程背景的我来说,专注于手头上的问题比什么都重要。在我心里总是有一个完整的计划,涵盖了团队所需要的一切:成长,动态,质量,支持,产品交付,会议,博客发表等等。我会有一个清晰的愿景:我的团队在未来一年里要成为什么样子。这有助于我做出日常的每一个决定,而最终走向我们长期的目标。
要管理好一个团队需要大量的工作。但它也带来了大量的喜悦和自豪。作为经理你能做的最好的事情就是思考。一个月一次,找一个安静的空间,去想想你团队里的每个人,去看看旧的邮件和项目报告。你会发现你的影响力,不仅加诸于你的产品,还影响了你团队里的人。这就是成功的真正标准。
Ⅹ 写给程序员:身为管理者,您会带新人吗
教学相长:互相学习
是故学然后知不足,教然后知困。知不足,然后能自反也。教学和学习是相互促进的,IT的世界是在飞速的发展,在你带新人的时候肯定会有自己的收获,这种收获包括管理上的经验,技术的提升。有的时候,一个问题自己做的很清楚了,等到了让自己讲的时候才明白自己还有疑惑的地方。这就是教学相长,在提高别人的同时也在提高自己。给别人讲课锻炼的不是听课的人,对于他们,最多是收获了知识,而对于自己,收获的不仅仅是知识。
当然新人也不是那么好带的,新人技术不完善,很多程序员娶不到媳妇儿赖媒婆,写了代码调试不出来,不是说调用接口有问题,要不就是开发环境有问题。总是能找到一些理由。而不是从自身找原因,在带他们的过程中也需要耐心。
自己总结了一些带人需要注意的事项,仅供参考!
1.不要希望学的太快,迅速见效,学习是一个过程。
2.尽量用实例来驱动,动嘴巴讲没效果。
3.要督促,让他们每天汇报工作情况。
5.要有文档,计划,时间管理等概念。
身为一个管理者,面对带新人这件事情,只能说要有责任心,这是一个责任心问题,也是一个做人问题。做事的结果都会随风而散,做人的收获才能历久弥新。做事有两种境界。一是功利的境界,事情及相关的利益是唯一的目的,于是做事时必定会充满焦虑和算计。另一是道德的境界,无论做什么事,都把做人上的收获看得更重要,做事只是灵魂修炼和完善的手段,真正的目的是做人。像对待自己的孩子一样去对待自己带的新人,一日为师,终身为父。你所浪费的不是你的时间,而你收获的是你的人生。
说到这里,大家的工作是很忙,这取决于自己的心态, 愿不愿意腾出自己的时间去帮助别人,我相信一个道理,投入和产出大部分时间是成正比的。如果肯投入时间,真心,会有回报的。
没有教不好的学生,只有不会教的老师
这是一种做事的态度,而非一定要达到的目标,带新人是走向管理岗位的第一步,始终以“没有教不好的学生,只有不会教的老师”这句话来要求自己,也许你会发现你的生活在悄悄的改变。