当前位置: 首页 > 编程日记 > 正文

项目经理修炼手册 2.1.2 项目经理的基本功

具备以上素质的人,大体上可以算是具有基本的程序员素质了,但是想从程序员成为项目经理,必然还需要有一点进步,那额外的这些素质都有哪些呢?

 

曾经有人力资源的朋友问我要人,我介绍了几个技术上很不错的人,他也给做了推荐,但是用人单位面试之后反应不好,说这些人缺乏项目经理的经验和技巧。这时候我也才意识到,我推荐的都是程序大拿,或者说技术大拿,却从来不是项目大拿,更不是项目管理的良好人才。项目管理人才和高级技术人才的区别在哪里呢?

 

还是说回我踢球的那个往事,我们队由于有薛申这样的半职业球员在前场进攻,又有我这种铁闸后卫,在小组赛脱颖而出,但是到了复赛的时候,我们遇上了回民中学队,回民中学队是一批回民中学初二学生组成的球队,我当时已经上高二,薛申大概比我大一岁,总之在身体发育程度上我们队是绝对占上风的,但是比赛一开始就呈现一边倒的情况,对方凭借着娴熟的传接配合多次轻松洞穿我们的球门,我更因为防守动作过大被红牌驱逐出场,这是一段非常糟糕的记忆。我想通过这个例子告诉大家的是,在今天软件开发已经成为一种团队运动,个人能力在其中的重要性已经相当有限,作为一个新人,进入一个软件项目团队,最重要的事就是要了解和熟悉团队流程,尽快的和团队其他人员配合好,只有如此才能够体现自己的价值。

 

我在博客园和CSDN常常看到一些新加入工作的朋友抱怨公司的流程有多么的差劲,公司的技术经理“什么都不懂”,同事都只会“三,五年前的技术”,软件开发流程“一点也不正规”,然后抱怨自己进入了错误的公司,觉得自己在这里是蹉跎岁月耽误青春。每次在看到这样的帖子的时候,我都注意到另外一个有趣的现象,这些朋友通常都不能在文章中给出一点对公司有益的改进意见,也不知道那些“什么都不懂的”的技术经理们每天都在做什么,对那些“只会三五年前的技术”的同事们所做的工作内容也不完全不感兴趣,尤其是不能说出自己拿最新的技术怎么完成那些三五年前技术所完成的工作。

 

还有些人抱怨公司的软件开发流程不正规,没有需求文档,没有集中代码管理方式,没有软件功能说明书,没有全职的测试人员,却同时也说不出怎么写需求文档,用什么方法做代码管理,怎么去写功能说明书,又怎么去进行测试。我们在这些朋友嘴里只能看到抱怨,坦白说,这些抱怨就算全对,对抱怨者个人也没有任何好处,因为任何公司都不需要一个只会提出问题的人。公司需要的是能主动发现问题,同时能解决问题的人。以公司没有需求文档的事情来说,即使别人都不写需求文档,你也可以自己写,哪怕开始的时候格式很混乱,但是一点一点的记录软件功能的需求变化,每周汇总一次这周的软件需求并整理成文档,对自己来说也是一笔宝贵的财富,再比如说没有软件代码集中管理,你可以把自己写的代码放到一个自己的版本控制CVS服务器上,然后每次自己修改的时候做签入和签出,顺便练习了CVS服务器的部署和使用,还养成了代码编写注释的良好习惯。每件事情在抱怨的时候都应该相处解决方案,我们在这里不是说不能抱怨,而是要告诉你在没有实践过解决方案的之前,请不要抱怨。

 

一个新人如果只是按部就班的完成公司交给的工作,即使他再兢兢业业一丝不苟,在短期内也很难得到提升,得到提升的人不但是能被动完成交托工作的人,更是那些善于在工作中发现问题,并解决问题的人。一般来说新人想要迅速提升,就需要在工作之外善于观察,首先要观察公司的流程,无论何种公司,公司组织结构都是公司的基础命脉,不了解公司组织结构就无法开展任何工作。除此之外就要不断观察公司的与自己有关的业务的流程,作为一个软件项目开发人员,熟悉公司的软件开发流程,是至关重要的,如果能从这个流程中发现问题的话,那么可以说你的机遇就要来了,但是需要注意一点的是,要甄别那些问题是老板真正关心的问题,那些问题是书本上的问题。所谓书本上的问题是软件开发流程中与大学的软件工程教程不符的地方,很多刚刚毕业的软件开发人员都会把这些不符之处作为开发流程的问题,对其深恶痛绝,我建议遇到这种情况,广大开发着要保持审慎的态度,软件工程这门学问所适用的情况是有一些先决条件的,并非所有情况下都必须按照此类工作一丝不苟。我举个极端的例子,有个朋友在一家外地软件公司,给某地方上的某机构开发一个信息管理软件,这个朋友看到公司软件开发内部流程混乱不堪,代码质量低下,但是用户界面异常华丽,即使程序报错也都会给出一些漂亮的界面,这个朋友就很不理解,跑到老板哪里建议说增加一些代码测试人员,让程序少报错,UI不用经常更换。老板是我这位朋友的叔叔,笑呵呵听我朋友说完以后,告诉他这个事情已经知道了,让他回去以后安心工作,这个事情不用他过分操心。我朋友百思不得其解,后来偶然才知道,这里面的情况很多很复杂,因为软件项目预算是有限的,所以钱得花在刀刃上,这个用软件的机构对软件质量没太多要求,因为本来就是所谓个别人的“业绩工程”,只要界面好看,并且每年都更新一下界面,这工程就算大功告成,所以老板对软件的理解就是好看的界面就万事OK,再额外花钱弄内容上的东西,甚至优化代码一类,完全没有必要。这种特例当然不足取,但是不了解公司当前应用流程就盲目提建议可能画虎不成反类犬,给自己添麻烦。

 

老板关心的问题其实一点也不难挖掘,你可以换个角度想,那些方法能让老板多挣钱那些问题能导致老板少挣钱,凡是能让老板多挣钱的都是好办法,凡是能让老板少挣钱的都是严重问题。比如软件代码质量低下这个问题,如果公司不是那种营销特牛的公司,代码质量确实会影响公司的软件销售,这时候你要是有办法能提高软件代码质量,那老板就会看重你。但是要记住,在你跟老板说这个问题之前,你应该先有一个实践过的解决方案,然后再某些场合小心翼翼的提出这个问题,等老板觉得这个问题严重,让你去解决的时候,你才一下子拿出那个你早有准备的答案,这样一来老板会觉得你能力非常出众,当然他不知道你是早有准备的。可以如何引导老板,又怎么才能和老板沟通好呢,请看本章下一节,如何与老板处好关系。

转载于:https://www.cnblogs.com/supper3000/archive/2010/01/30/1660250.html

相关文章:

CSS3动画过渡的jquery动态弹出框插件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/w178191520/article/details/84111711 在线演示 本地下载

PAT(甲级)2021年春季考试 7-4 Recycling of Shared Bicycles

解题思路: 先用Floyd算法求出全员最短路径矩阵。 然后使用DFS进行遍历,遍历的原则是就近贪心,对于每一个点先遍历离他最近的未访问点。 记录访问点的个数,同时用数组存放已访问点,如果访问点的个数不等于输入点数1(…

JAVA抽象类和接口的区别【附经典分析用例Door】

这篇文章对抽象类和接口说的很详细,希望对大家有所帮助.  abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类…

sql 2005提示未能加载包Microsoft SQL Management Studio Package

被360隔离了,请到360恢复区恢复。转载于:https://www.cnblogs.com/janealer/p/4238743.html

puppeteer爬虫的奇妙之旅

(爬虫)[puppeteer|] 爬虫又称网络机器人。每天或许你都会使用搜索引擎,爬虫便是搜索引擎重要的组成部分,爬取内容做索引。现如今大数据,数据分析很火,那数据哪里来呢,可以通过网络爬虫爬取啊。那我萌就来探讨一下网络爬…

(C++)异常退出情况合集(持续更新中)

1.一个有输入的程序,还没做任何输入就自己运行结束了 原因:将长度为10的6次方的整型数组定义在main函数内 2.点击编译运行,显示源文件未编译 原因:定义了一个10的9次方长度的整型数组(虽然在main函数外)

Resin介绍及其使用配置

Resin是一个提供高性能的,支持 Java/PHP 的应用服务器。目前有两个版本:一个是GPL下的开源版本,提供给一些爱好者、开发人员和低流量网站使用;一种是收费的专业版本,增加了一些更加适用于生产环境的特性。 Resin的一些…

Linux基础教程之linux文件权限深度解读

基本命令——来源于马哥教育官网1.cut: cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr 2.authconfig 修改加密方式–passalgosha256 — update3.scp 上传文件-r dir ip:path 传目录file ip:path传文件-P port 指定端口4.rsync 同步文件-avz 源文件 ip:pathscp和rsync都…

浙江大学软件学院2020年保研上机模拟练习 7-4 Shopping With Coupons

目录 解题思路演进过程 第一次程序 第二次程序 第三次程序 解题思路演进过程 首先是题目的理解上:有n个商品,n张优惠券,实际上能买的商品个数最多就是n*n,为啥呢,这题默认是买一个商品必须用一张券,而且一个商品每…

erlang supervisor simple_one_for_one实例

http://www.cnblogs.com/little-ant/p/3196201.html simple_one_for_one vs one_for_one: 相同点: 这种Restart Strategy和one_for_one基本相同(即当一个child process挂掉后,仅仅重启该child process 而不影响其他child process)。 异同点: …

sql isnull函数的使用(转载)

sql isnull函数的使用 ISNULL 使用指定的替换值替换 NULL。 语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。 replacement_value 在 check_expression 为 NULL时将返回的表达…

Error creating bean with name 'defaultHandlerMapping' defined in ServletContext resource

未解决转载于:https://www.cnblogs.com/hqsbrx/p/9969449.html

priority_queue 结构体的优先级设置

目标:使用结构体Node类型的优先队列,让其按照我们希望的顺序进行排序。 预备知识:会结构体的定义,和结构体类型的优先队列的定义,知道优先队列默认是最大堆排序(即top()得到的是最大的元素) 要做的事:在结…

PNG透明兼容IE6的几种方法

png透明针对IE6一直是件挺麻烦的事情,使用的方法也是各有不同,大多的原理是用IE的滤镜来解决的。 语法:filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabledbEnabled , sizingMethodsSize , srcsURL ) enabled : 可选项。…

ntohs的一个简单实现(将网络流中用两个字节16进制表示的资源数(如DNS)和长度转换为整形)...

我们知道在由于大端机和小端机导致网络字节序和主机序有可能是有差异的,我们可以使用系统的ntohs,ntohl,htons和htonl这些处理函数进行转换,下面是我写的一个关于ntohs在处理小端机字节序转换的函数的简单实现. 思想大致如下: 用u_int16_t的2字节16位的整…

循环获取结构体中的健名与值的实现

为什么80%的码农都做不了架构师&#xff1f;>>> type Person struct {Name stringAge int }func main() {a : &Person{"Name", 1}v : reflect.ValueOf(a).Elem() //a需要是引用k : v.Type()for i : 0; i < v.NumField(); i {key : k.Field(i)…

PAT(甲级)2020年春季考试 7-4 Replacement Selection

这种复杂的模拟题&#xff0c;对于我这种菜鸡&#xff0c;只能是根据自己的理解&#xff0c;去把题目给演示出来&#xff0c;然后结合测试用例&#xff0c;一点一点debug打印输出&#xff0c;的确耗时&#xff0c;所以考试要是遇到就放最后吧。 把这题做出来&#xff0c;我的一…

On/Off FlipSwitch 按钮

https://proto.io/freebies/onoff/转载于:https://www.cnblogs.com/ElvinLong/p/4253665.html

P1541 乌龟棋 题解(洛谷,动态规划递推)

题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc.h> #define ll long long using namespace std; ll num[350100]; ll p[5]; ll f[41][41][41][41]; int main() {ios::sync_with_stdio(fa…

asp.net 操作excel的实现代码

http://www.cnblogs.com/fywh/archive/2010/01/25/1655864.html转载于:https://www.cnblogs.com/modernsky2003/archive/2010/02/26/1673925.html

PAT(甲级)2020年春季考试 7-2 The Judger

这道题在模拟过程类型题种算友好的&#xff0c;很平铺直叙&#xff0c;主要就是hash的应用。 有两个小点&#xff1a; 1. 怎样快速求两个未知大小的整数a和b的差值(>0) abs(a,b) 2. 如果某一轮有不止一个人淘汰&#xff0c;应该输出 Round #1: 3 is out. Round #1: 4 …

C++_volatile限定修饰符 Pair类型

Volatile限定修饰符 当一个对象的值可能会在编译器的控制或检测之外被改变时&#xff0c;例如一个被系统时间更改的变量&#xff0c;那么这个变量就应该声明成volatile。 其主要作用是提示编译器&#xff0c;该对象的值可能在编译器未检测到的情况下被改变。因此编译器执行的某…

FWFT FIFO读操作注意

FWFT&#xff1a;First Word Fall Through的缩写&#xff0c;好像是Xilinx的说法&#xff0c;Altera对应的概念是Show-ahead synchronous(SASO)。即数据在rdreq有效之前就有效了&#xff0c;rdreq作为一个应答(ACK)。 需要注意的是当rdreq连续时&#xff0c;容易多读一个数据…

iOS图像识别

iOS通过摄像头动态识别图像 前言&#xff1a; 目前的计算机图像识别&#xff0c;透过现象看本质&#xff0c;主要分为两大类: 基于规则运算的图像识别&#xff0c;例如颜色形状等模板匹配方法基于统计的图像识别。例如机器学习ML&#xff0c;神经网络等人工智能方法**区别&…

PAT(甲级)2019年冬季考试 7-4 Cartesian Tree

这道题利用的是最小堆和中序排序的属性&#xff1a;只要知道根节点&#xff0c;就能得出哪些属于左子树&#xff0c;哪些属于右子树。 开始我一直报段错误&#xff0c;经过筛查&#xff0c;发现是创建树的函数忘记写返回语句 return root. AC代码 #include<cstdio> #i…

C#操作excel(多种方法比较)

我们在做excel资料的时候&#xff0c;通常有以下方法。 一.导入导出excel常用方法&#xff1a; 1.用查询表的方式查询并show在数据集控件上。 代码 publicstaticstringstrCon "Provider Microsoft.Jet.OLEDB.4.0 ; Data Source C:\\08.xls;Extended PropertiesExcel 8.0&…

383. Ransom Note/691. Stickers to Spell Word-- String, Map, back tracking-- 未完待续

383 easy 题&#xff0c;就是建立字母的hash 表 看第一个String 是否能被第二个String 所构建 canConstruct("aa", "aab") -> true 统计 第二个参数中每个字母的频率&#xff0c;可以用一个int[256] 建立hashmap, 然后统计 第一个String 中字母出现的…

Centos 修改时间地区及NTP同步北京时间

在我们使用CentOS系统的时候&#xff0c;也许时区经常会出现问题&#xff0c;有时候改完之后还是会出错&#xff0c;下面我们就来学习一种方法来改变这个状况。如果没有安装&#xff0c;而你使用的是 CentOS系统 那使用命令 yum install ntp 然后&#xff1a;ntpdate us.pool.n…

PAT(甲级)2019年冬季考试 7-2 Block Reversing

这题是做过的&#xff0c;B1025&#xff0c;我还总结过&#xff0c;果然早晚复相逢&#xff0c;只改了一点点&#xff0c;见1025 反转链表。 点睛之笔是结构体数组的哈希&#xff0c;地址既做下标&#xff0c;又有实际含义&#xff0c;妙啊。 node[add].add add; 当时应该是…

题目1444:More is better

时间限制&#xff1a;3 秒 内存限制&#xff1a;100 兆 特殊判题&#xff1a;否 提交&#xff1a;1362 解决&#xff1a;640 题目描述&#xff1a;Mr Wang wants some boys to help him with a project. Because the project is rather complex, the more boys come, the bette…