分享到
是谁动了程序员的尊严?
 
作者:吴军,发布于2012-1-9
 

最近园子里有个MM发了一篇一些让程序员伤心让程序员开心的话 ,作为入行快10年的老程序员的我,她那篇帖子里不管是 “让别人开心的话”还是“让别人不开心的话”,基本我都说过。软件开发中的各个角色基本我也都担当过,程序员,架构设计,项目经理,技术总监,甚至是售前,陪客户吃饭。虽然现在早已不是当初迷茫的小菜鸟,但对于技术和编码的热爱是一直没有改变的,也从来没有脱离过一线的编码工作。所以我想关于程序员的社会认同感和尊严这类的,我是可以来谈一谈的。

首先我们来谈一谈什么是尊严。从哲学的范畴来说尊严是一种文化,文化是人和动物的本质区别。比如自杀这种行为就是一种文化,只有人才会有。如果要说活着有什么意义的话,对于动物来说生存和繁衍就是他们的全部意义。但人不一样,人为了尊严,为了信仰可以“不为五斗米折腰”甚至可以“留取丹心照汗青”,汪精卫的“引刀成一快,不负少年头”也无不让老少爷们儿热血沸腾。所以马斯洛的人类需求金字塔我是不大赞同的。至少作为一个受过教育的人来说,精神层面的需求应该高于生存的需求而存在的。否则为了生存而抛弃自己的信仰和尊严,那活着也是毫无意义的,与猪狗无异。

当然有好事者会问生命的意义是什么?所谓的信仰和尊严于乎宇宙又有什么意义呢?我想说对于这种终极问题的思考大概是这样的:大多数人会觉得研究这种问题是在浪费时间,这种终极问题本身就是毫无意义的;一部分人从小时候就开始研究到死也没有研究出什么名堂,一事无成;一部分人走火入魔,研究成了精神病.....;极少数人获得了极高的成就。

扯远了,接下来我们来谈谈如何得到所谓的尊严。可以明确的说,尊严并不是自指的。你可以说“我是独善其身的!”,但你不能说“我是有尊严的!”,这是毫无意义的。我们必须承认,尊严是别人(社会)给我们的,我们自己是无法有尊严的。所以从这个意义来说我是比较反感“自尊”这个词的,我一直以为自尊不过是一些心理有问题(自卑)的人的挡箭牌,很明显“自尊”是不能脱离“自卑”而存在的。稍有社会经验的同学肯定都会遇到那种表现出具有极强自尊心的人,这种人往往很难相处,非常敏感,你不小心的一句话就会踩到他的狗尾巴。而随着深入的了解,你都会发现这种人其实内心非常自卑,整个人处于一种强大的防御姿态,就像WOW里的防战,恨不得“盾墙”是没有CD的...所以一味标榜自己的“自尊”是可笑的,不会赢得别人的尊重,只会让别人觉得你是一个又自卑又可怜的家伙...

所以,以上你可以看出尊严问题并不是程序员独有的。但往往我们发现程序员,技术人员往往都有极强的自尊心,或者说异常饥渴的希望获得别人的认可和尊重,而另一方面他们往往也表现出不大尊重别人,很难相处。这个结论你可以轻易从IT公司所有的非技术人员嘴里获得。其实如果你对科学史有一定了解,你会发现有这个毛病的大有人在,像牛顿,爱因斯坦,波尔,薛定谔..."愚蠢","白痴"这类的语言经常充斥于他们的科学论文。如果你看过一些比尔盖茨,乔布斯,鲍尔默这些人的八卦和传记,也是出了名的"fuck","dick"之类的常挂在嘴上。而我认为(和看到的),任何一个能力强悍的软件开发项目经理或团队Leader都不可能的是一个好脾气。我并不是说他们在某方面小有建树就有资格对菜鸟们呼来呵去,但我敢保证,如果你有一天成为一个能独当一面的真正认真负责的一线Leader的时候,你的脾气绝对不会比我好到哪儿去。所以高手并不像有些菜鸟说的那样如此超脱,淡定,谦恭...那是圣人,你有问题的时候不会叫“圣人,替我做主啊~~”,你只会叫“大人,饶命啊!”。你的直接团队Leader才是“大人”,他才能给你调Bug帮你擦屁股。作为“圣人”的董事长,技术总监虽然都是笑呵呵的,但他不会解决你的任何实际问题,他只会告诉“总裁”,总裁总裁,总是在裁人嘛...还搞不懂“大人”的可以参考《易经》九二爻辞“见龙在田,利见大人“...

就拿我自己来说,我也知道有时候我脾气不是很好,在团队沟通中说话很直,有时候甚至很暴躁。我也尝试了好几年,上到儒释道,中到西方哲学,印度灵修,下到什么办公室处世之道,看不少...就想变得淡定一点,变得有点高手的仙风道骨...可悲剧的是,我在大家心目中的形象还是这样的:

我自己归纳了一下,有如下原因:

1.对做的每一个项目,甚至每段代码都力争完美,很难忍受团队成员不认真负责的态度。

2.不能忍受年轻的团队成员做一天和尚撞一天钟的工作生活态度,天天教训他们要好好学习工作将来才能娶个好媳妇儿(现在改了,毕竟不同的人有不同的生活态度)。

3.有喜欢推诿责任,爱找借口的人。

4.多次纠正而不改变学习和工作方法的人(路都走错了,再怎么努力也是白瞎)。

5.仅把写代码当成一种工作的人(对于搞技术工作,你不热爱它就根本不可能做好)。

6.在既定的详细框架下还频繁出错的人(就算是一黑丝美女天天撅着屁股让你擦,你的心情也不见得会很好,更别说是一群蓬头垢面的天然呆的家伙们)。

7.幻想混几年代码就能当项目经理,脱离技术做管理的人(这种人,哥都不惜得理他...)

8.在非技术的领导面前天天强调重视技术人员的重要性(一方面给你们这些家伙争取利益,一方面你们这些家伙还不争气,我能不火吗!)

所以你可以看出在国内任何开发团队中都有不少这种人,这也就是敏捷开发无法在国内真正实践的根本原因,敏捷里要求的是真正的程序员,而现实团队中能有2-3个真正的程序员,作为Leader的你做梦也会笑醒。只要你的Leader出发点是好的,请你原谅他的坏脾气吧...一团和气,对项目质量不闻不问的团队里是不可能做出好的项目和产品的, 对你个人的成长也是不利的...真想混日子还是去当公务员比较好...

那么如何成为能让大家尊重的程序员呢,按我个人的经验来说 要做到以下几点:

1.为人正直,不要有道德上的硬伤。否则就算你技术再好也无法得到别人的尊重和重用。

2.真心热爱技术,热爱工作。可以迷茫,可以彷徨,但永远不要放弃当初自己追求技术的梦想。

3.努力把看起来无意义的事做得有意义。也许你正在做一些无关痛痒的蛋疼项目,但不要埋怨社会,不要找借口,蛋疼项目也可以做成伟哥项目...关键在于你!哥们儿!就是你!你才是它真正的爹!,不在于你的客户和老板。

4.也许你旁边充斥着各种马屁精,混世魔王,但你要相信他们一样也会觉得没有被尊重。否则也不会有办公室的一群娘们儿聚在一起八卦谁谁谁是马屁精之类的...你要相信群众的眼睛是雪亮的,真正做实事的人越少,越显得你的价值重要,你也越被尊重。哥们儿经常去政府部门,事业单位做项目,酒后三旬无一例外的都会说“还是佩服你们这些搞技术的,是靠真本事吃饭,你看我们,唉...”。所以说你看都是“围城”。人都是很贱的,就看你想怎么个贱了...顺带说一句所谓“拍马屁”那也是本事,你也不要瞧不起别人。其实大家都是出来混饭吃的,谁也没比谁高尚多少。高尚是高尚者的墓志铭,真正高尚的都卧轨了...

5.努力充实自己,让自己自信起来。有一天当你遇到别人的批评你的时候,你会对批评你的人竖起大拇指说:“牛B!人才!哥已经独孤求败很久了...”,而不是凄凄哀哀的发帖乞求得到别人的尊重。

6.尊重非技术人员,尊重所谓“拍马屁”的人。如果你觉得你周围尽是不学无术的在得志,在做领导,那么我想说其实你还太嫩了,看到的都是表面现象...

7.不要太把自己当回事,这个很重要。太把自己当回事的人是无法进步的。你还很年轻,只要做的事情的对的,不要太在意自己的身体和幼小的心灵,随意糟蹋吧!熬夜吧!熬夜的时间与你技术水平和出人头地的几率是成正比的。当然我说的是熬夜搞技术写代码,不是下副本...

8.坚持自己的信仰,坚信搞技术是有出路的。

9.对待工作认真严谨的人,走到哪里都会被人尊重,这是毫无疑问的。很多小妞不都说吗?男人认真工作的样子是最性感。。。

总结:天行健,君子以自强不息。尊严不是乞求别人施舍的,而是自己奋斗出来的!至于女人嘛,你懂的...

后记:本来我不是很喜欢发这种人生贴的,不过看到那个MM帖子,人家女孩子撒撒娇其实可以理解。但一群大老爷们儿也在那里跟风,实在有点看不下去,于是乎有了本篇...

回复中也有对我带的团队真实情况的设想,关于我个人的性格和团队的情况应该可以参考《亮剑》。俺们的口号是“剑锋所指,所向披靡” ,说白了应该是一群虽然过着苦B的生活,但仍然保持着一种技术人员独有的牛B气质的人。团队成员之间也在各种苦B的加班,熬夜,酒后谈技术谈人生谈理想谈女人的状态中结下了深厚的友谊。这是那种“互相尊重,客客气气”的团队说不能企及的,也是我所追求的,它具有非凡的战斗力。 其实建议大家看看《亮剑》的小说,电视剧只拍了前半本,后半本过于残酷,没有被拍出来,但恰恰体现出了亮剑精神的精髓...一个牛B的leader从本质上说不在于他的技术有多强,而在于他用他独有的人格去感染团队中的每个成员,使得这个团队也具有同样的气质。当然这种方式并不一定值得推广,也并不一定在所有团队中适用,但你不能否认它对像我一样的偏执狂们具有致命的吸引力。

拿“管理”说事的看这个是谁动了程序员的尊严续-也谈谈软件开发团队的管理。。。

是谁动了程序员的尊严? 里谈了作为程序员和技术人员应该积极的去面对一些挫折。相应的这篇是谈作为技术团队管理者应该思考的一些问题。 首先我是比较不喜欢“管理”这个词的,因为没有谁会喜欢被“管理”,开始我以为是我放荡不羁的性格和无知者无畏的草根情怀所导致的...后来接受了一些关于所谓管理的正规训练后,这种感觉反而更加强烈。

对于所谓项目管理,我大概有这些学习背景,公司培训的:MBA全景教程,欧洲商学院系列,高级项目经理考试,PMP考试,还有时代光华的那些诸如领导艺术之类的,世界500强流行的什么MOT之类的培训(也可以说是洗脑...)这些虽然我都不是太感兴趣,感觉这些都是西学中的术,个人比较推崇国学中的道,但也不是很排斥,基本都过了一遍;自己看的:《人月神话》,《软件工程》,《敏捷开发》,《代码大全》,《软件开发随想录》,还有些不入流的等等,JavaEye的软件开发和项目管理版也爱没事看看;人文方面的:各种中国正史野史不全的(明史正儿八经的看过正史,主要高中的时候受韩寒和《万历十五年》的影响),杂七杂八的各种儒释道粗略的,诸子百家中显学大概的,西方哲学简要的...所以可以看出我应该不只是一个会写代码和好色的偏激狂....-_-b,下面言归正传,来谈谈“管理”:

1.首先对于软件开发团队来说根本不存在严格意义上的“管理”。你从敏捷开发就可以看出来,敏捷只允许你团队中有1个,不超过2个的新手。对其他的团队成员的要求基本是从技术到职业素养的全才。很多人在研究敏捷,什么结对,扁平结构,站立会议....那些都是术,都是花招...。比如你10人的团队 没有8个神一样的程序员那都是白瞎...。而神一样的程序员还需要管理吗?我承认敏捷里有非常多优秀的思想和实践,但若放到你自己的团队里玩,我觉得更多的结果是悲剧,喜剧是因为你真的非常幸运,你的团队成员足够强大,和你管理水平和敏捷真的一点关系都没有...

2.而现实的情况是,一个10人的团队中只有2-3个骨干程序员。他们解决了整个项目80%的问题,剩下的7-8个程序员无关痛痒,他们机械的去写一些有完整技术解决方案的模块,最坏的情况是这7-8个人解决不了任何问题,还会在原本成熟的解决方案下制造一些问题。这段可能很多人不爱听,但不能否则这是事实,同时也自问自己在团队中的价值。其实你看很多牛X的大产品其实都是由个别的几个牛X的技术人员写的,团队其他人基本都是打杂的,国内外都一样。

3.谈到这里,作为一个团队Leader你应该清醒的意识到你要做的事情首先是对于骨干程序员来说的: 最次的让2-3个骨干程序员不会认为你是个不懂技术的蠢货,较好的是让他们觉得你在技术上是有建树的,最好的是用你的人格魅力感染他们。

4.对于其他的7-8个程序员,适当的技术培训是必要的,但不应该对他们抱有太大希望,这样大家都会很累。既然他们想成为码农就让他们当好了,个别能脱颖而出的可以重点培养。

5.管理工具和管理技巧:不要让大家觉得在被管理,没有人喜欢被管理。你可以先给大家介绍一个比较前卫的管理工具,然后说我们大家来玩玩这个管理工具,看看咋样。如果效果不好,大家不会觉得你的管理水平垃圾,只会觉得这个管理工具不好玩而已;如果效果好,那大家就Happy的玩下去,最后你会发现 你的团队成员完全没有感觉在被管理,但其实你团队里的管理工具和管理方法真的是一大堆,有时候你自己都会觉得比较烦,但大家还乐滋不疲....人力资源部的来评估你部门管理水平的时候会着实吓一跳...

6.对于一个团队Leader或公司技术总监是否应该深入了解技术的问题,我想是没有什么必要讨论的,这是必须的!对于公司来说,你决定的技术方向决定了公司未来几年的产品和战略,如果你对技术一知半解,那是不可想象的,足以搞死整个团队甚至是公司。比如让一个技术水平一般的技术团队使用MOSS作为平台进行开发,比如老板被微软,IBM那帮所谓首席科学家忽悠的头脑发热想大搞云计算中心等等...往小了说,你不懂技术就意味着你无法真正掌握项目的进度,那些所谓的项目管理工具都是浮云....连项目进度都掌握不了的项目经理?还是项目经理吗?

7.你想说我有一揽子的管理工具,但我只需要一个问题就可以破解你那不需要技术的管理神话,项目做到一半,遇到一个技术问题,所有的技术人员都告诉你不能解决,你怎么办?怎么保证工期?外包?外援?那只会使你的项目风险更大,更加不可控 我们都学过的是吧? 问题在于由于你技术的缺乏导致你的技术风险预知能力下降,技术解决能力基本为零,你在大家面前是个十足的蠢货....

8.我们经常看到一些团队的项目经理的很多问题和抱怨,我说解决问题的方法和简单,你把代码实现就可以了嘛.......你会实现而不去实现,和你压根儿不懂实现是有本质区别的。就像流行的“技术不重要,思想才重要”,这句话是给懂技术的过来人说的....代码都没写过10万行就拿这话来说事是可笑的。

9.在公司里,没有带团队做3个以上真正成功的项目之前,先把你的任何关于公司和团队的想法意见保留起来。就算你在那个职位,也不会有太多人听的进去,实力和尊重是靠事实证明的。

10.真正给公司赚到钱,也让大家看到你的人品和实力之后:对非技术的领导强调技术,对团队技术人员强调需求。

总结:大道至简! 不要过于迷信西学的那些管理工具和管理技巧,除非你把西方哲学和文化的历史好好学一遍,否则你只会邯郸学步,不得要领。也许你回过头来看看咱老祖宗的那些东西,反而会豁然开朗呢?

举个例子:软件开发中的面向对象和面向过程的两种开发方式最早可以追溯到亚里士多德(貌似在我们的教科书中他就是个该打倒的学术权威..)的分类和逻辑两种认识世界的工具...其实这也是西方科学的根本,想当年我们学编程的时候那个云里雾里啊...点破之后其实很简单是不是?什么一切皆为对象,什么至上而下...说白了就是分类和逻辑。有时候我们会标榜面向对象而鄙视面向过程,其实很愚蠢是不?

再比如现在量子物理学算是走进了唯心主义的死胡同(当然也有平行宇宙的说法..)...居然观察会影响客观结果!但其实孔子对于占卜早说过,你不要算,在你算的一瞬间其实结果就已经变了(不占而已矣)。真的是和电子的波粒二相性一样一样儿的啊...

当然!这些“思想”固然重要,但请不要忘记踏踏实实写好你的10W行代码先...

也许有朋友会问,你上篇说的那种有亮剑精神的团队呢?比较遗憾现在在一个比较大的公司,在一切都需要看财务报表的公司文化里不允许我那样搞,大公司很多事情也更复杂需要考虑更多。而且那种需要我投入极大理想主义精神,精力和感情的团队貌似也不太适合我这个快当孩子他爹的人。谨以文送给我那牛B的亮剑团队和团队里的兄弟们。


 
相关文章

由外而内看敏捷软件开发
架敏捷开发中史诗故事与用户
看板任务管理
面向全球化的有效敏捷交付
 
相关文档

统一过程及应用
敏捷过程实践
基于XP/RUP的迭代开发
软件开发过程指南
 
相关课程

IT安全原理、框架与实践
ITIL认证
ITIL Foundation认证培训(ITIL V3 Foundation )
IT规划体系与实践


史蒂夫·乔布斯的脑子里在想什么
写给我们这些浮躁的程序员
如何使用搜索技巧来成为
IT部门在信息化中的角色转变
支撑软件开发人员的三种精神
小强爬行记
更多...   


统一过程及应用
敏捷过程实践
基于XP/RUP的迭代开发
软件开发过程指南
SCRUM过程实践
敏捷测试-简单而可行

相关咨询服务
基于CMMI2-3过程改进咨询
软件开发过程


中国移动通信 网络规划与管理
某航空公司 IT规划与企业架构
某金融公司 IT服务管理(ITIL V3)
中国联通集团 IT前沿知识概述
中海油 企业IT架构设计
更多...   
 
 
 
 
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号