新升项目经理的七个大坑,小心了

每到一个新的岗位都会或多或少的遇到许多前辈踩过的坑,当然项目管理也不例外。

下面我把项目管理过程中常见的坑罗列出来。

在软件行业,好多经理人都是程序员出身,所以标题给了"新升"。由于旧习,身上可能存在众多需要改进的地方。简略总结了以下几点,希望对大家有些帮助。


1、不明确自身的职责


你不在是个码农?公司聘请你不是为了让你去写代码,而是让你去带领你的队伍干大事。别整天埋头啃代码了,这些事有其他人干就行了,正事都干不过来呢。就算是一种偏爱,希望课下自己研究去。计划任务执行、各组分工、与其他部门协调、团队建设等,这么多事都还没干呢?或许根本不知道有这些事。别整天忙忙忙,又不知道在瞎忙些什么。等到该干的事情时,又开始喊这个喊那个,问东问西。让人感觉你“业余”。


2、关注点偏低


在讨论设计方案时,经常会太具体,哪个逻辑怎么写,用什么算法,甚至是哪个字段如何命名。对于一个经理人来说,这些都不是你该关心的。你手下那么多小兵呢,如果总是这样,不累死你。而且手下的人更是手忙脚乱,而且极大的影响士气。代码不规范,应该建立适当的代码规范加以约束。员工素质不高,需要多进行培训,集中学习。这才是管理者应该关注的。


3、不懂得团队建设


跟你干活的这些人,不是机器人,也有累、烦的时候,如何调节这些人的心态很重要。跟你当初写代码时候不同了,并不是写完这个功能就完事了,硬活每个人都能干,可是对于沟通、团队建设这些软内容,并非每个人都能成。这个才是辨别一个领导是否能够胜任的主要因素。不懂得发展自己的团队,即使你是技术大牛,即使你经验十载,也不配做个合格经理人。所谓众人拾柴火焰高。


这些人召集在一起,要团结,然后给定一个目标,每个人共同为目标而努力,才能事半功倍,实现1+1>2,体现团队的优越性。如果这个主导人没有发挥作用,长期以往,人员变动频繁,干活的人唉声叹气,整个工作气氛死气沉沉,工作效率低下。天天被员工背地里骂(毕竟你是领导,人家得给你面子)。最后弄得人心涣散,团队散了,项目完了。


经常组织活动,丰富大家的课外生活。既能增进彼此的了解,也能增加大家的幸福感。并且,团队的凝聚力、也在潜移默化中有所提升。


4、自命不凡、顽固不化


平心而论,程序员都有点小坚持。当然不是他们的错,可能每个人都有这个性格吧。自己辛辛苦苦做的东西,当然不希望被别人指指点点。但是这种习惯不能带到经理级别。虚心听取职员的合理化意见,而不是总是顽固坚持自己的。这种自命不凡的家伙总是树敌。就是当年的皇帝还纳谏呢?何况是个底层干部?


5、批评多多,吝啬鼓励


对于一些程序员出现的问题,不能一棒打死,即使代码写得的确很烂,但是也要中肯的给予一些合理化建议,万不能


“你这是写的什么?Shit!”。


有的甚至比这还惨,


“找个不会写代码人比你写的也好,这么多年白学了。”


现在什么都双面选择,人家给你打工,不是你的奴隶,毕竟二十好几,有的甚至年过三十,这样苛刻的语言,有几个能容忍的了。直接怕屁股走人,即使忍痛留下来,工作积极性也会大打折扣。工作本该是轻松友爱的气氛,这下成了死敌较劲。境况可想而知。你就多鼓励下,“这次没干好,下次努努力,私下下功夫夯实下基础。”“这次有进步,干得不错。”“很好很强大,大家辛苦了。”尽管是简单的几句话,在员工心理可能引起蝴蝶效应,更加努力为你卖力。


6、会议太多太长


领导的会议总是很多,特别是一些新领导。也许他们认为只有开会才能显示自己的权威,只有开会才能了解项目进度,不能说你不可以开,这是当领导的权力。但是一定要严格控制频度和时间。每天都有说不完的事,真想不到这个经理怎么当的。并非开会说的都是正事,其实大多时间都是扯皮。与其浪费在这里,还不如让你的员工多花点时间在工作上。希望员工对领导的印象不只是开会、扯皮。


现在讲究敏捷开发,这不是一门技术或者一门学问,而是一整套体系,如果领导都不带头执行,那员工如何执行?


7、领导太多,管理混乱


当然这个问题不是针对某个领导,而是说一个公司人事架构内,不要太复杂。


如果结构复杂、层级繁多,造成责任不明确,遇到问题,不知道找谁,层层往下推,最后到了程序员手中可能跟最初的要求大相径庭。


还有一种情况,有的时候遇到问题,客户直接跟上级通了电话,而上级也不了解情况,直接揽下,问了开发经理,才知道这样的修改不合理。中间也可能有更多级,开发人员拿到任务,明知道不合理,但没办法,很难驳回“上上上...级”领导的决定,只能在产品里堆垃圾。


在一个部门中,也可能有类似的情况,有多个开发经理,遇到工期比较紧张的时候,可能几个开发经理通知给一个开发人员下达任务,有时候部门经理也可能下达任务,这个人很为难,到底怎么做?先做谁的?每个都说很紧急。这就是管理混乱的表现。任务下达要责任到人,最好不要越限下达,因为你不了解每个人具体情况。一个开发人员的任务情况,只有其开发经理最熟悉。如果是部门经理下达任务,首先下达给开发经理,然后由开发经理下达给开发人员。如果其他开发小组需要其他人帮忙,则需要向部门经理申请,有部门经理协调,然后下达任务到开发经理。这样一切都清晰多了。


这些可能是“升级经理"的通病,希望大家:有则改之,无则加勉吧。

了解更多

技术总监&技术经理相关专业能力要求

对于程序员的职业进阶主要两个方向一个是项目管理,一个是技术总监或技术经理。对于项目管理主是对于项目的管控,项目管理的七大范围,个人觉得相对于项目管理来说技术总监或技术经理要求更高一些,它不仅要求有比较全面和过硬的技术能力还要要求有比较好的管理能力。

纵观各大招聘网站对于“技术总监或技术经理”的要求都大同小异。
下面就我针对于项目管理和相关技术(主要是Java方向)这两方面作一个要求汇总,你可以把它作为一个打怪升级的过程中的技能备忘录,锦囊。

一、项目管理

制订并实施工作目标和工作计划,加强技术队伍建设和管理
负责对研发团队进行有效的管理、提升和考核,能合理的工作安排和项目过程把控。
绩效考核指标,绩效考核,绩效管理,部门制度指定,激励,监督
团队员工招聘,录用,技术培训
公司发展战略,年度经营计划,月度经营计划
负责制定与技术相关的各项管理制度、技术规范及业务流程

1、参于公司战略讨论。负责信息中心整体发展方向、负责团队目标和工作计划的制定和高效执行、确保目标实现;
2、组织制定和实施重大技术决策和技术方案、制定技术发展战略、规划发展方向、全面负责公司技术层面的所有管理工作;
3、负责团队的建设和人才培养,不断提升团队的工作质量、效率和技术能力;
4、负责各项目系统总架构的(包含网站、软件、数据库、接口和应用架构、APP客户端软件、系统运维、安全运维等)设计与实现;
4、分析产品运营效果和数据、制定产品优化方案、实现提出的技术需求;
5、负责根据需求设计大数据、大并发技术解决方案;
6、负责解决重大技术问题,指导、处理、协调和解决软件产品出现的技术问题;
7、负责关注现有产品的数据并进行分析、带领团队持续完善和优化已有产品功能;
8、负责不断地快速提升核心技术、构建稳定、高效的研发团队;负责团队的建设、激励、考评、培养、持续提升团队工作热情、工作质量和工作效率;


1、制订并实施工作目标和工作计划,加强技术队伍建设和管理;
2、根据业务需求进行软件需求分析;
3、系统架构设计及模块划分和设计、进行模块接口设计;
4、参与核心代码开发并指导其他工程师完成软件代码开发;
5、负责制定团队开发规范、编码规范,并跟踪开发过程及时纠正;
6、负责对研发团队进行有效的管理、提升和考核,能合理的工作安排和项目过程把控,工作协调分配。
====================

二、相关技术

1、大专及以上学历,3年以上互联网平台系统开发经验,具有团队管理经验尤佳;
2、精通Spring、Hibrenate、Struts等开发框架;
3、精通J2EE、XML、HTTP、WebService、json、分布式、多线程等高性能架构相关开发技术;
4、精通面向对象的分析和设计技术,包括设计模式、UML建模等,精通设计模式,熟悉并能使用主要的设计模式,能在JDK,主流的开源框架中识别设计模式,做到真正理解设计模式的思想和用法;
5、精通面向对象的设计方法, 具有丰富的面向对象架构设计以及相关设计开发流程;能用主流的UML工具(Rose等)画主要的UML图,例如Class图,顺序图,状态图等。
6、熟练使用Oracle、MySql等数据库系统,有较强的数据库设计和开发能力;
7、具有高负载、高并发、大数据量、分布式网站的开发、设计优先。
8、熟悉Web后台编程环境,精通至少两种以上后台开发语言,比如:Java/PHP/.Net/Python/Ruby


、精通Java SE和Java EE技术,包括Servlet/JSP、JDBC、EJB、JMS、Web Service等技术,对各种开源的框架如Spring、Hibernate、Mybatis等有深入的了解;

、精通大型电商网站的架构设计、系统分析、软件实现、性能优化及系统安全和数据管理;

、精通java和JVM、熟悉Linux、mysql、Mssql、Oracle等常用开源软件和开源框架;

、精通jsp、Servlets、JMS、EJB、jdbc、JMX开发,熟悉J2EE规范,熟悉各种常用设计模式;

、熟悉Tomcat、Jboss等应用服务器,熟悉Linux,熟悉常用的命令,能在Linux下部署和管理Git,Nginx,Tomcat和MySQL等;

、撰写技术文档能力强;

、精通主流WEB2.0的技术,熟悉RestFul,springmvc, spring,mybatis/JPA、 分布式缓存技术,以及其他性能调优技术,对高性能、高可靠性分布式系统的设计和实现有深入理解

、精通分布式高并发系统架构设计,熟悉zookeeper,dubbo,jgroup等框架。

、精通常用的java框架,spring , mybatis,Hibernate ,netty.能够合理使用开源框架和设计模式提高软件质量。

、精通数据模型设计。了解mysql优化,高可用集群搭建,熟悉Redis,Memcache ,Mongo db等No Sql.

、能够使用SVN,GIT,管理代码。并使用一些开源工程提高代码质量,和集成速度。


、计算机基础知识扎实,熟悉多线程编程,JVM调优, 设计模式,精通Java编程基础:集合框架、多线程并发等;

、精通Spring, 理解AOP的思想,极为熟悉SpringMVC,精通Spring下的各种配置,特别是事务配置,连接池配置等。

、精通Hibernate,最好是Hibernate结合MySQL,知道常见的难点及解决方式,如批量更新和缓存的问题。熟悉JPA,能用Hibernate作为JPA的实现,结合Spring开发系统。

、精通MySQL或MariaDB,能用PowerDesigner,ERWin等建模工具规范化设计大新网站的ER模型,能编写较复杂的存储过程,掌握常用的性能调优技术,精通读写分离技术,并有实际的项目经验。

、精通SpingMVC+SpringIOC+MyBatis+MySQL的系统开发技术,成熟的Action+Service+DAO+Entity的分层开发经验和技术, 有利用上述技术开发大型网站系统的丰富经验。

、精通JSP,JSTL的表现层技术,熟悉HTTP协议,熟悉html5,Javascript、AJAX、JSON等Web2.0页面技术;必须精通 BootStrap, JQuery,因为是侧重前端的方向,所以应具备在无美工和前端设计师配合情况下,设计出采用BootStrap, JQuery,HTML5技术的具有统一的网站页面风格的静态页面,具备较高水平的页面布局和设计能力。

了解更多