程序员的现状(坐班的下场)
纵览,国内比较大的软件公司(以下统一简称"国软"),清一色都是做天朝项目的(他们能做大的原因我就不用说了吧),真正能做大的国软又有几家呢?这是为什么呢?今天就给大家简单分析下:
1."作坊"式管理
"作坊"往往是效率最高的,国软几乎都是从作坊走过来的,
但把作坊式的管理模式套用到一个不断壮大的公司中显然是不行的.
组织架构到达一定程度后就必然要进行分工的细化,依靠作坊式的"暴力开发"是行不通的.
2."法制社会"
上班必须打卡,迟到要扣钱,还一次比一次多,加班没有加班费,反正算下来就是,只有扣钱的项目,没有加钱的项目.
比起外企,人家上班不打卡,迟到不扣钱,加班有加班费,这样宽松点的环境不好吗?
3.自生自灭
国软一般没有师徒制,有的话也只是形式上的,公司基本没人管你,你也不用去管别人,
新进的员工,不管会不会,先丢个东西给你做,自己研究,不懂的google去.
这也是为什么国软喜欢招有经验的人,因为没经验的人熬不住,跑了几个以后,国软就不招了.
4.销售-开发-维护脱节
这点是非常严重的,会直接导致项目流产的.国软的典型的做法是,销售为了业绩,在没有调研的情况下就签了合同(这里主要是指项目型的,产品型的一般可以控制),而且合同的范围也非常模糊,可大可小,接下来就是调研人员上场,调研后发现,10w块钱的合同,调研出来了100w的需求,接下来就是和客户扯皮,最后直接导致项目流产,甚至打上官司.项目或产品上线后,维护人员对系统不了解(一方面是没有文档,另外一方面维护人员一般没有参与到开发中),接下来往往就会发生两种情况:
a.维护人员在不了解系统的情况下擅自修改,结果导致系统越改问题越多.
b.维护人员一不做二不休,所有客户反馈的问题全部打回给开发人员,于是开发人员就生不如死,在做别的项目的同时还要维护以前的项目,结果就是导致几个项目都失败.
5.缺乏规划
今天要用这个,明天想用那个(笔者就经历了公司在半年的时间内对框架进行了两次大的变动,导致开发人员都必须重新学习框架)
产品也接,项目也接,大的也接,小的也接.
今天领导说往左走,明天说往右走,也不能怪领导,他也没经验,我们就是他的DEMO.
公司没有一个明确的目标,要做成什么样,只是一味的提出做大做强,但是没有规划出如何做大做强.(和我的标题一样哦)
6.三无-无需求,无设计,无测试.
a.没有文档是国软的通病,曾几何时,产品经理丢过来的那一句话:"喂,**,给我做一个**模块来",然后开发人员就开始埋头苦写了.
b.当然如果你天资聪慧,可以轻易理解出产品经理的意思,那有没有设计都无所谓了,但是,当有一天别人要维护你的程序的时候问题就出现了,
没有文档,代码又那么天马行空,怎么维护?改了这个地方,又影响了那个地方...
c.其实程序员都懂得测试的意义,可以工时安排的那么紧,哪来的时间测试?测试又没有算工时.所以几乎所有的程序员的做法就是,直接丢给用户测试
这时候有人肯定要问:那项目经理呢?他不是可以测试吗?请记住这是国软,刚才写代码的那个人就是项目经理,还是售前,还是设计人员,还是维护,还是...
归结还是成本问题,在外资软件公司中,做文档的工时是比做开发的工时更多的,国软为了节省成本,这块当然要CUT掉了.不必去追去文档有多么详细多么美观,需要做的就是找到一个平衡点,一份适合自己的文档.
7.员工都是"十项全能"(这项太贴切了!!)
在国软里面的员工各个都是十项全能(笔者就是一个鲜明的例子,从系统调研分析设计,到进度管理,开发,测试,验收,实施,维护,甚至拉给客户拉网线都需要我去.)
直接导致的结果就是这些员工每过多久就直接出来自己开公司了...嘿嘿又一家作坊诞生了...
这样做对员工个人其实是有好处的,但是对于企业本上来说是没有好处的,并不是说员工成立了作坊,成为了你的竞争对手,而是让员工各个都是十项全能的结果就是
a.员工都是"十项全不能".
b.员工一旦离职,他手头的项目必定流产.
c.对公司的发展是不利的(细化分工).
8.莫不关心
老板并不知道员工在做什么,员工也不知道老板在做什么.
上级很少去关心下级的工作,更别说去关心下级的生活,一个东西丢给你,一个月后交差,中间不管你任何事情,交不了差就唯你是问.
下级也不知道能为上级分担什么,只有等着上级分配任务.
甚至还有些老板都不不知道员工的名字,在这样的国软的,每个人都是孤立的,又怎么能做大做强呢?
9.企业文化
所谓十年树木,百年树人.
国软的企业文化表面功夫算是做的很好的了,什么"为客户创造价值","做最好的行业解决方案","软件公司的最大资源就是人才"等等,要多华丽有多华丽,
重复体现了"口号文化".真正做到企业文化又有多少呢?有多少仅仅是为了做给客户看的呢?
10.盲目跟风
很多国软看到人家外企软件公司最近在搞什么推进活动,就跟风,效仿外企做,可是无法领悟精髓,纯粹只是在模仿.
(外企集体笑:"一直被模仿,从未被超越")
做完了也不知道这么做的意义,劳民伤财.
11.缺乏"执行力"
国软的通病,就是"执行力",国软的学习劲头很足,今天提出要完善测试标准,明天提出要每周写工作报告,可是又有哪些东西能真正的去执行呢?
导致这个问题的主要原因有两个:
a.提出来的东西到底有没必要做,还是只是应付领导走个过场.
b.谁来跟踪这些东西?员工写了工作报告,领导没有去查看,去反馈,员工觉得写的也没意义,自然不会继续执行下去.
12.管理混乱
没有划分清楚员工的归属组织,员工并不明确他的上级领导是谁,导致有的员工处于游离状态,有的是员工又是多个领导,不懂要听谁的,有些人忙的要死,有些人又闲的要命,最后搞的最痛苦的就是员工,导致员工离职.
13.缺乏团队精神
为什么会缺乏团队精神呢?并不是国软没有这方面的概念,国软也很希望培养员工的团队观念和精神,
无奈因为国软,一般都是一个人负责一个或者多个项目,连团队都没有,何来的团队精神?
14.无法做到补足
一个项目一旦中途有人辞职,这个项目就会流产.
一个员工一旦辞职,会有N个项目没人维护.
A组的员工无法胜任B组的工作,归根结底就是组织上根本没有考虑过组织变动对项目的影响,没有提前培养人员.
15.一成不变和随心所欲
有两类人一种是把前辈的东西COPY过来,不作任何修改,因为他深信,前辈的一定是对的,
还有一类是不管前人怎么做的,一律不要,全凭自己的"经验",随心所欲,天马行空的进行自主研发,
造成的结果就是错的还是错的,乱的更乱了.
16.人才育成
成本,还是成本,培养一个人要多少成本?
这就是国软做不大的原因,永远只能停留在"作坊"的原因.
17.向心力.
老板做的是事业,员工做的是事情,这是国软员工的一致观点.
18.恶性循环
a.人员力量不足 -> 接不了项目 -> 收入少 -> 人员流失.
b.人员力量不足 -> 强行接项目 -> 亏本 -> 破产.
最后我想说一句的是:成也国软,败也国软.
-------------------------------以下是比较实践的内容,没有工作实践过的朋友不看也罢------------------------------------
首先来说一个高级程序员并非靠自己读几本书写几万行代码就能练就的,我更关注于低层的环境,也就是程序员实实在在的工作环境。因为程序员的高低还得从实际的工作来衡量,而非其它。所以我想说的是,中国的软件公司的性质直接导致程序员的水平的高低。而我所说的软件公司,不是指某个或者某几个,而是指主流的软件公司,大众型的软件公司。所以我希望那些已经步入一个理想的公司的程序员理解我这篇文章的定位。
软件公司的无偿加班对程序员的影响:
国内的软件公司中程序员是常常加班的,每日加,周未也常加。基于这种性质,出现了一种很莫名其妙的现象:每天程序员的实际下班时间总是要晚于规定下班时间,至于晚一个小时还是两个小时还是更多这就另说,总之,程序员这份工作,如果按时下班反而自己感觉自己像是做贼似的。表面上公司并没有强迫谁加班,但实际上在潜移默化中有一种威慑力,要求你要多为公司工作几个小时,而且表面上你所工作的这几个小时还是你自己愿意的。正因为是“自己愿意的”,所以公司更有理由认为是无偿的。
还有就是周未加班,一般周未加班是因为“忙”(关于这个带引号的“忙”,见“软件公司的‘忙’对程序员的影响”)。但周未加班一般是无偿的,至于法律所规定的那种“偿”就更尝不上了。不过一般公司是这样规定的:周未加班可以倒休。关于倒休,一般是周未的班真的加了,倒休却遥遥无期,原因很简单,公司“忙”嘛!
这种情况对程序员的影响:消极、软弱无主见、虚伪、对前途渺茫。
软件公司的“忙”对程序员的影响:
软件公司的“忙”其实有时也是真忙,从原因来说,软件公司认为是程序员(其实也有其他员工,但本文不涉及讨论)造成的,程序员认为公司造成的。而根据“一个巴掌拍不响”原则来看,应该是公司与程序员合作不协调出现的恶性循环造成的。深层原因大家自己研究去吧。不过从我这里的表象来看,这种“忙”有这么几点,这几点如果不代表大家的意见,大家可以补充:
**项目开发与计划脱节,表现为项目开发慢于计划。
**突如其来的事件。
**为某种说不清道不明的原因,像是作秀。
**假忙。
**真忙。
上面说的第一种情况最常见,这涉及到软件工程的话题,其实也是软件公司做不大,程序员水平提不高的核心。而“软件公司做不大”已有前辈文章中说过了,而“程序员水平提不高”本文所言即是,所以这个原因大家读完这两篇自己体会吧。
上面说的第二种情况也常有,比如偶尔赶个标书,比如客户那里突然出现了BUG,急着去改等等。
第三种情况就很让人晕菜了,有点无病呻吟的感觉,比如不知道从哪里冒出一个会议,开到个七八点;
第四种情况很特别,也比较常见,大家同室坐、彼此各自心。一片共同耕作的美好景象,但果实见不到两颗豆呢。这可是大家齐心虚度时光。程序员可以拿出这个时间提高自己吗?当然不可以了,你表面上还是得干活呢。
第五种情况就不说了,因为这是正根。
总之软件公司是“忙”的,一般是以上三种“忙”,偶尔这三种都没有了,第四种就马上出来的。
这种情况对程序员的影响:混乱无序、怨由心生、虚伪做作、学习时间少。
软件公司的流程不规范对程序员的影响:
无像样的需求、无像样的设计、没有测试、没有文档、没有维护(所谓维护也大都是客户测试出BUG来改一改)。
其实说到需求这一块也并非完全是软件公司的问题,大多数情况下,客户也是根据程序员直接上来编码后暴露出来的问题才渐渐明白自己的需求是什么的。
“什么都没有”的问题在于,什么也不清楚,如果写一堆以不变应万变的代码,第一,时间不允许,第二,难度太大。要是稀里糊涂去实现,扩展与维护性又差,整个一堆豆腐渣工程,总之是没法下手。长了一堆“打铁”技巧,神不像神,程序员不像程序员的。
这种情况对程序员的影响:无规划性、代码质量低、手忙脚乱、技术永远停留在“打铁”水平。
软件公司对程序员员工的“全能型”要求对程序的影响:
装系统、修打印机、写文档、编代码、见客户、扫地搬桌子、接网线,在国内软件公司中程序员做什么事都有可能。单单说技术方面,也是要求事事能做,看一下招聘要求就知道了。
这种情况对程序员影响:术业无专攻
软件公司的工资拖欠对程序员的影响:
很悲哀,这是存在的。我向来认为一个员工与公司合作的最底线应该是按时按量发工资。但很多公司打破了这个底线。一个朋友开玩笑地说过:“家庭有钱,谁干程序员呀!”这话虽只可信一半,但是从国内情况来看,程序员的生活质量还是不高的,工资的拖欠直接影响到程序员的心态,甚至影响到程序员的生活。
这种情况对程序员影响:低调、迷茫、心态不稳、思想徘徊、生活困难。
软件公司对软件开发的要求对程序员的影响:
软件公司对软件开发的要求一般是实现即可。如果说写一个和记事本一样的程序,公司感觉程序员应该在一天内搞定;如果写一个WPS,公司也就感觉程序员应该在两到三个月搞定。这不是浮夸,事实就是这样的。公司所着眼的点在于“就这么一点功能”,而非在于“怎么实现这‘一点’功能。
这种情况对程序员的影响:开发难度大、维护难度大、压力大、难沟通。
软件公司的承诺对程序员的影响:
国内软件公司一般实际行动能力差,但没理难说话,他们也知道自己没理,所以比较爱承诺,把实际问题抛向以后解决。然而承诺也只是口头的,有一点“我以人格担保”的意思。不过一般情况下,国内的程序员还是比较有忍耐能力的(从上文来看不忍耐还能混吗),但公司层面的“人格”却是不可信,多承诺少兑现,员工面试时听到的说话到干了两年走了都没做到的事根本不少见。然而路遥马乏力,日久人变心,这样的结果往往是使公司与员工走入恶性循环。
这种情况对程序员的影响:不满、被动、拿不起放不下、进退两难。
结论:
消极、软弱无主见、虚伪、对前途渺茫、混乱无序、怨由心生、虚伪做作、学习时间少、无规划性、代码质量低、手忙脚乱、技术永远停留在“打铁”水平、术业无专攻、低调、迷茫、心态不稳、思想徘徊、生活困难、开发难度大、维护难度大、压力大、难沟通、不满、被动、拿不起放不下、进退两难。
上面这些短语概括了程序员的性格、心态、生活环境、工作环境等方面,它们就像毒素一样,日久能把一个健康的程序员毁掉。在这样的环境下,还问为什么你的技术这么低?太搞笑了。