程序员,不要让自己做兔子(updated)

前段时间和一个朋友聊天,酒席间向我抱怨他那段时间的郁闷:项目经理从客户那里拿来一个需求,实际上就是一个ppt描述,我这个朋友拿过来看后刚开始不觉得什么,一个通常的网站系统又能复杂的了哪去,但是越往后做就越发觉得里面的问题。在ppt描述中很多地方描述的都有矛盾。比如论坛,功能上用户描述的更象留言板,而后来通过项目经理,项目经理又通过客户,得知这个功能确实就是那样子的。朋友心想这不同行业可能会有不同的需求,那就这么来吧,反正只是叫什么名而已。而在“交货”的时候,客户不愿意了,在说一大堆问题当中(当然是口述,看到哪说大哪的那种),其中就有那个BBS的功能,说BBS怎么做的和留言板似的,那么些功能都没有,然后在网上随便打开一个论坛,论坛叫什么名记不清楚了,但是,我敢肯定那是动网的东西。客户指给项目经理说你看人家设计的东西,还是免费的呢,我们花钱的都给做成这样,你们能不能做下去了以后。项目经理回来后,其实之前怎么回事他肯定是忘记了,于是,又给这个朋友一顿打击,说能不能在我这干了。朋友觉得委屈,拿出先前的那个ppt,还好那个ppt还在,给项目经理看说当初客户确实就是这么要的,并且也得到了客户的确认。项目经理似乎也是想起来了,但是,也许是面子下不来吧,就以朋友发生错误还故意找借口说第二天不用来上班了。还好,只是说说而已。

没错,小公司,尤其是对于我们这样刚毕业的学生来说,这种情况会时有发生。

不过这样的事似乎不是你有准备就能避免的了的。还是那个朋友,不过是另一个项目---其实还是一个网站,需求,同样还是一个ppt加一个根本就没有用的word文件,和广告一样,也不晓得朋友的那个公司是怎么回事,总喜欢把ppt当成用户的需求定义文档。朋友这下“尖”了,先把ppt好好看了一看,并且,直接要了客户的联系方式和网上的联系方式,有问题直接和客户沟通,确认,心想这回有了聊天记录,看你以后怎么反悔。于是呼,问题看似解决,但就象阿甘所说,人生就象一盒巧克力,你永远都不知道下一颗是什么。客户的号是天天在线,而ppt里的问题就不用多说了,问题列表给客户发过去后,客户说的好说下午就给答复。不过,也许是没有在程序的头声明“命名空间”,所以这个“下午”便宜器根本就无法确定是哪个命名空间下的,因为每天都是一个“命名空间”,并且都有下午的这个“属性”或者“方法”。于是呼等了又等,那天项目经理问,说进度怎么样了,朋友说正在做底层的东西,一些功能描述的不够详细或者有矛盾,正在等客户那头确认。而项目经理不高兴了,说这么长时间你就没做出一个东西能让我看到做成啥样了?可不么,DAL和BLL的构建你要是能看到啥样子那你就成MATRIX里的Neo了。于是项目经理给客户那头打电话确认这事,客户那头,也许不是同一个领导,也许是把这事忘了,但还好,说了句人话,说“那这样,你先做。明天争取给我们头看看你们那做成什么样子了”……而那个晚上,不晓得朋友是怎么熬出来的,不用想,加班啊,还要不停的听着项目经理的漫骂。而这样赶出来的一个晚上的东西,后果,大家可想而知了。

朋友此类的抱怨还有很多,当然,陈述的时候大都把这种感觉同酒杯里的酒一同拌着郁闷饮了下去。

这些抱怨我想起网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事如下:

兔子跟街上走着,迎面碰上了老狼。老狼伸手就给他一大嘴巴:“让你丫不戴帽子”。

兔子很郁闷地回家了,弄一帽子戴着。

第二天又碰上老狼了,又挨了一大嘴巴,“让你丫戴帽子”。   

如是几次,总挨打。兔子想,这么老挨打不是个事儿啊,不行,我得找老虎投诉去。 

刚到老虎家门口,就听老虎在屋里说话。  

“你也不能老这么蛮不讲理打兔子阿,回头兔子找我投诉来,我也不好罩着你啊。好歹咱面子上得过得去,我教你一招。

下回你见着兔子,跟他说:给我弄点儿洗衣服的来。他给你拿肥皂来,你就打他一顿的,说我要的是洗衣粉,谁让你拿肥皂。他拿洗衣粉来,你也能打,说我要肥皂,谁让你拿洗衣粉。

要不然你跟他说,去,给我找个妞儿来。他给你找个胖的,你打他一顿说我要瘦的;给你找个瘦的,你也打一顿,说我要胖的。

这样不结了,你也能打他,我面子上也能说得过去。”

兔子一听,得,咱也别投诉了,回家吧。

第二天,兔子在街上又撞上老狼。老狼大喝一声:去,给我找点儿洗衣服的来。   

兔子不慌不忙:你是要洗衣粉阿,还是要肥皂啊?   

老狼一听,嗯?有一手啊。又说:去,给我找个妞儿来。  

兔子还是不慌不忙:你是要胖的啊,还是瘦的?  

老狼一听勃然大怒,伸手就给兔子一个大嘴巴:“让你丫不戴帽子!”

兔子那个哭啊、、、、、、、、~!

这个故事与朋友的遭遇,各个角色似乎勉强能对上,但是,每次回忆起朋友的诉苦我都会很自然的联想到这个故事。兔子如果想做一辈子的兔子的话,永远做底层的那些东西,那么,就象故事中想描述的:“我就是想打你了,还需要什么理由吗?谁让你是兔子”。

当然,客户似乎还没有不讲理到那个程度,而项目经理也没有可恶到那种地步。不过,在这里我还是想引一下JillZhang朋友博客上的一个文章,项目经理是这样当的,看过的朋友我想很多都会联想起类似这样的文章,不过,就如上所说,人生,就象一盒巧克力,你永远都不知道下一个是什么。很多事我们都无法预料的。小公司的小团队,多少有会有这样的问题发生,而基于小项目的这样的团队,如果非要一个项目经理那样去当,那是不可能的,因为有时候项目经理比“公仆”还忙呢,所以这类问题自然多的很。

而再有一点我想到的,就是作为一个程序员,不要以为管理以自己一点关系都没有,即使真想做一辈子技术,下一辈子的“蛋”,还是如那篇文章中所说,项目经理,就是那样当的。很多东西你不知道怎么回事的话你根本就不知道该怎么去做,即使你能看出怎么去做,细节上的差别你是看不到的,还有比如怎么与客户打交道,与客户的哪些人打交道,遇到什么样的客户应该说什么样的话,选择一个什么样的时间与客户交流,等等等等,太多的东西需要去学了。比如朋友遇到的问题,怎么把那个ppt变成我们需要的一个客户的需求文档,这不仅是技术层次上的事。如果这些东西如果一个程序员永远都学不会的话,除非技术真的牛到不能再牛的地步了,不然,那就快快乐乐的做一辈子兔子吧。

补充:写到这里可能也会有人抬杠,说自己的公司里40多岁的程序员多的是,你就说人家是兔子?他们在公司里都是很受尊敬的。我想,虽然他们看上去是程序员,但已经不是很简单的程序员了,没错,就是那种技术很牛的人,甚至可以引导客户的需求方向,对于那些长辈,我佩服他们的学习能力之外,还佩服他们的钻研能力,那种年龄的钻研能力,不是我们这个年纪能学习到的。他们多少年的行业经验了,就是那种非常熟悉自己做的是什么的,与其说是程序员,倒不如说是行业专家。所以,你还能用一个程序员的角度来看他们吗?

[以下为补充内容:2006-10-5]

最近写过不少类似的内容,似乎抱怨的成分居多,不过对于刚毕业的我们来说,尤其是在东北这样的城市,尤其是那些还没有走出去的同学,尤其是还在小公司里做小项目的朋友,并且还是很不成熟的,这样的事接触到的会比较多,当然,也有一些是经历过的。

不过,根据这些经历与经验,还是迎合一下此篇的主题:在公司,类似这样的情况,当作为一个程序员的时候,有些东西不能只靠领导和项目经理去做,就象各位的随笔中所说的那些项目管理或者沟通的工作,实在不行,就自己去做,所以也正如此篇所说:程序员,不要让自己做兔子。恩,应该就是这个意思。这样,自己也会在这个过程中成长起来.相对于大公司来说,在合理的安排任务分工的情况下,项目经理是绝对不会给你这样的机会的.事物都是有两方面的,当你失去一样东西的时候,肯定还能得到另外一样东西.只不过是看你是否能找的到了.

程序员,不要让自己做兔子(updated) 网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事 我就是想打你了,还需要什么理由吗?谁让你是兔子 项目经理是这样当的的更多相关文章

  1. Java 程序员每天都在做什么?

    作为一名 在大.中.小微企业都待过 的 Java 开发者,今天和大家分享下自己在不同公司的工作日常和收获.包括一些个人积累的工作提升经验,以及一些 Java 学习的方法和资源. 先从我的第一份 Jav ...

  2. Java全栈程序员之01:做个Linux下的程序猿

    Windows10正在成为史上口碑最差的Windows系统 (图侵删) 我曾经花了数次1小时去寻找解决方案去关闭自动更新,包括停掉服务.修改注册表等等.但是都没有成功. 微软自身是知道这个问题的,但就 ...

  3. .Net程序员之不学Java做安卓开发:Android Studio中的即时调试窗口

    对学.Net的人来说,JAVA开发是一场噩梦. .net中的即时窗口,调试时直接在里面写代码,对程序中的各种方法/属性进行调用,很方便. Android Studio中找了好久,参考如下网址,也有类似 ...

  4. .Net程序员之不学Java做安卓开发:奇怪的Java语法

    1.final关键字:用以修饰类时,表示类不可以被继承,指向基本数据类型或者引用类型时,该类只可以在声明的时候初始化 2.@Override 类似C# 中override关键字,表示对父类的重写.网上 ...

  5. 《程序员代码面试指南》第一章 栈和队列 设计一个有getMin功能的栈

    题目 实现一个特殊的栈,在实现栈的基本功能上,再实现返回栈中最小的元素的操作 要求 1. pop.push.getMin操作时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构 java代码 ...

  6. 程序员/PM怎么让项目预估的时间更加准确

    项目时间的估算对项目的成败至关重要.项目时间管理包括了项目按时完成所需的各个过程.但是,在实际项目中,经常出现项目延期,估算严重不准确的现象. 一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序 ...

  7. 一个想法照进现实-《IT连》创业项目:创业时该不该用新手程序员

    前言: 距离上一篇文章,转眼已然一个多月了,这段时间没出来和大伙汇报创业的进度,怪我了. 最近又感冒了,已经一个多星期了,还在感冒中,不过感冒也不能偷懒了,每天都有大把的事情等着我解决~~~ 不过今天 ...

  8. 做什么职业,也别做程序员,尤其是Java程序员

    千万别做程序员,尤其别做Java这种门槛低,入门快的程序员(别跟我说Java搞精通了也很牛之类的,原因不解释,做5年以上就知道了),程序员本来就是我见过最坑爹的职业了...Java程序员更是,现在满地 ...

  9. 代码传奇 | 身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君

    他的前半生,值得我们每一个人深思. 在普通人眼里,他寂寂无名,只有年岁稍长的文化人,才听说过他传奇般的存在. 在IT人眼里,他是块活化石,中国第一的大旗除了他,没人敢抗! 他是求伯君,从一个浙江穷山村 ...

随机推荐

  1. 【Spark】SparkStreaming-Tasks-数量如何设置?

    SparkStreaming-Tasks-数量如何设置? sparkstreaming task 数量设置_百度搜索 spark内核揭秘-14-Spark性能优化的10大问题及其解决方案 - star ...

  2. JAVA-错误Several ports (8080, 8009) required by Tomcat v7.0 Server at localhost are already in use.

    运行java程序的时候显示如下错误: 问题原因:导致这个错误的原因是因为已经启动了一个tomcat服务器 解决办法:到任务管理器中显示所有用户进程,将tomcat服务进程关闭,重新运行java程序就可 ...

  3. Windows远程桌面连接的利器-mRemote

    mRemoteNG是Windows平台下一款开源的支持多标签.多协议的远程连接管理器.平时我们可能安装N多款管理工具,如putty.SecureCRT.xshell.SSHshell.mstsc.ex ...

  4. 转:android root tcpdump抓包强烈推荐

    转:http://www.cnblogs.com/findyou/p/3491035.html 写的相当详细且完整,业界良心. adb push d:\tcpdump /data/local/ adb ...

  5. python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器

    python之simplejson,Python版的简单. 快速. 可扩展 JSON 编码器/解码器 simplejson Python版的简单. 快速. 可扩展 JSON 编码器/解码器 编码基本的 ...

  6. LoadRunner基于HTML-based script和URL-based script方式录制的区别和各自的使用场景

    一.区别: 为了更加直观的区别这两种录制方式,我们可以分别使用这两种方式录制同一场景(打开百度首页)然后进行对比,录制的代码如下: HTML-based script方式打开百度首页: Action( ...

  7. EFI/UEFI BIOS启动

    全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构.它是可扩展固件接口标准的一部分,用来替代BIOS中的主开机纪录分区表.但因为MBR分区表不支持容量 ...

  8. esxtop 指标%RDY,NUMA,Wide-VMs

    参考文章:http://www.boche.net/blog/index.php/2010/10/21/cpu-ready-to-rdy-conversion/ http://kb.vmware.co ...

  9. Linux中Centos7下安装Mysql(更名为Mariadb)

    一.安装: yum install mariadb-server mariadb 二.启动服务: systemctl start mariadb 三.配置大小写敏感问题.和字符为utf8: vim / ...

  10. 在cmd中为命令设置别名以及启动cmd时自动执行bat

    http://www.cnblogs.com/fstang/archive/2013/04/06/3002006.html 简短步骤: 1.关闭所有在运行的CMD窗口 2.创建文件C:\cmd-ali ...