对软件业的一些想法

对软件业的一些想法

在软件业呆了三年(广州),感觉时间挺快的,所以突然有些感触了。我想对于软件公司和从业人员分别谈论一下,阅历有限,观点难免有些片面性。
我一直从事于企业应用这方面的开发,下面的讨论也以这方面的公司和人员为主体。

软件公司:
1、 国内的软件公司普遍偏小,广州更典型。碰到公司大多是10人-50人这样的公司。通常就是几个有些资历的技术人员自已出钱或者拉点投资创立公司,靠接几个单来维持。有时一个大点的单可以活一年。
2、 软件工程实施的比较差。有些公司基本上是处于作坊状态,由其是那些工厂的软件开发。所谓专业的软件公司大多也是实施了软件工程中很小的一部分。不管是相对于RUP还是XP,都差远了。
    没有需求管理。通常只是对需求作一下粗略的调查,需求调查后并不进行评审,然后就开始后面的工作。由于缺少了需求审查,可能导致对用户的需求的理解不正确,而直接影响了后面的设计,可能在实施时才发现问题,这样的代价就是巨大的。开发人员可能抱怨用户需求一直在变,最后由于需求的不可控,改动太多,系统开发过程延期或者崩溃。
    简单的项目管理。项目管理通常变成了项目经理一个人的事情,他一个人安排进度,一个人掌握进度,拖进度便加班甚至加人。呵呵,让我想起《人月神话》这本书,据说是每个从业人员必读的书之一,我到现在只是看过几十页,啥时该补读了。十个项目有九个项目不能按时完成,完成了也不能保证质量,由于质量不能保证就加大维护期的成本。很多系统用户用了一段时间后又放弃了,因为不好用或者不够合适。
    对设计的轻视。大多数公司都是把大部分时间花在编码上,而那些软件工程实施得很好的公司编码只三分之一,设计占到了三分之一左右了。有些公司几乎是做完数据库设计后就开始编码。大部分专业的软件公司会有简单的中间层,以此可以粗略的定下软件的架构,但这只是属于系统设计的一部分而已。而对于概要设计,详细的设计大家似乎都觉得挺烦,不如一边编码一边设计来得痛快,然而这样的开发过程通常需要更多返工时间。也许对于小系统影响不大,但对于大系统根本不可能。这也就意味着这个团队只能做那些小系统,永远处于一个较低的开发水平中,哪天也许天上掉下一个大单,也会啃不下的。
    不重视文档。开发人员不喜欢写文档几乎是一个共识。然而就此而放弃文档的编写就有些短视了。文档的重要性是每个开发人员都清楚的,但大家似乎都存在一种侥幸的心理。当一个系统的开发周期达一年之长,没有文档的恐怖是可想而知的。就好像一个城市有一百万人口,却没有一份花名册,虽然每个人都知道自已的名字。文档贯穿于整个软件的生命周期,从项目可行性分析到后面的项目实施报告,每个过程都有文档的。文档是企业的一笔财富。
    代码或组件的重用率低。由于没有合适的代码管理方法,通常对于同样一个功能,最后每个人写了一个版本,而且当发现了这个问题后,也是谁也不愿意删除谁的,就让他一直存在。看似一个团队,最后好像还是孤立的个体。成熟一些的公司会有中间层,有函数库,但通常都是比较初级的。这个问题其实与公司开发团队的水平有关的。如果要做到尽可能好的重用,需要有人有尽可能强的抽象能力。
    没有或者少量测试以至质量低下。质量是任何产品的生命,软件产品也是一样。但软件开发人员从不敢保证自已的系统在客户那里演示时不跳出一个异常。这里面当然软件本身存在的复杂度。但测试方面的工作严重不足肯定是首要原因。有些软件在开发过程通常都是程序员作简单的,低强度的测试。可能在开发进度上并没有出现延期,但在实施时却发现了一大堆问题,这时不但客户感到非常失望和恼火,程序员也非常沮丧,因为谁都讨厌维护那些糟糕的代码了。这样最终仍然是拖了进度,也许代价更高。所以开始卡好质量关,作好测试,也许是对于项目进度控制的最好解决方案。
    忽略最终用户对开发过程的参与。现在的软件开发通常就是几个程序员凭着简单的需求说明或者自已的经验来作为开发过程中需求的依据。最终开发出来的东西就是程序员觉得挺不错的,而客户却对软件非常抵制,也许是没有实现他们想要的需求,也许是软件的操作方式与他们现在的操作方式大相庭径等等。这时要么开发商进行更改,要么面临软件在使用一段时间后被搁置或者运行得很丑陋。
3、 大部分公司都缺乏核心竞争力。
我认为软件公司的核心竞争力应该包括技术和业务两部分。
技术部分
    大部分软件公司都是靠几个单来养活的。拉到单了,招人;没单了,裁员。这样的公司通常用得是当前最流行的开发工具(当然是盗版的)。公司没有什么技术沉淀,有问题,上Google、论坛查。都属于一种拿来主义,剪刀。网上对于每个问题可能有多种解决方案,最终公司里面对于同样一个问题存在几种解决方案,没有人统一。这样其实也没什么不好的,很高效的。有点读书时的开卷考试,很多题目都是书上现成的,拿来就行了,但有些题目书上有提到,但没有现成的解答,还有些在书根本找不到。所有拿来主义只适合小公司小打小闹,根本成不了气候。成熟的公司要想在业界拥有一定的知名度和竞争力,光是靠别人的东西是不行的。必须公司要有一定技术含量的拿得出手的东西才行。就比如大学的评比里面就包括论文发表的数量和质量一样。没有任何有技术含量的公司不可能获得真正成功的,这样的公司只能作小系统,碰到大系统开发起来就一团糟。国外某些很小的公司都拥有好几项专利技术,所以人家活得很好,大公司最后争着收购。国内的软件公司大都缺少创新的能力,所以中国的软件一直做的只是软件链的下游,利润低。
业务部分
    其实对于企业应用而言,给客户提供最好的解决方案才是最重要的。客户要上系统,那肯定是不满足他们当时的现状,所以才求变。他们希望开发商能给他们解决问题。然而国内大多公司都没有业务专家,这当然也与国内软件公司的规模有关的,通常只是靠几个有经验的开发人员来依靠他们的经验来为客户提供解决方案。然而开发人员又精通技术又精通业务几乎是很难的。这样的人员配置开发出来的系统很难真正为客户解决问题的。很多系统的功能只是将客户当前的手工操作来让电脑来取代一些。其实对于企业应用我们应该要让数字来说话,比如应用这个系统后生产效率高了多少,成本降低了多少,员工应用这个系统后对工作的满意度增加了多少等等。像SAP这样的公司不知道有多少人整天在研究企业应用,有些根本是纯理论的。有时发表的文章甚至是很超前的,当前根本不可能实现的。然而正是这样的公司,才能引领企业应用的潮流,才能合理对客户进行流程再造,才能真正满足客户的应用。
4、 公司管理制度不够人性化。
    大多数公司是小公司,小公司当前所做的事情都是属于资本的原始积累。看问题通常都只从公司的角度出发。员工没有归属感。除了工作,公司基本上不过问员工的其他情况,不会考虑员工的发展方向,也不给内部员工提供足够的发展机会和培训机会。
而员工通常都满腹怨言,工作不积极,变成了纯粹为工作而工作,这样的团队很明显都是没有凝聚力的团队。公司不过问员工,没有正视员工不满情绪的滋长,迟早有一天会出问题。大多数小公司不会为员工制定职业规划,也许是公司根本没有能力帮助员工制订令人信服的职业规划,也许是老板根本没有想过长时间留住员工或者公司没有足够的能力能留住员工,这样带来的问题就是人员的流失率高,轻则影响项目的进度,重则严重阻碍公司的发展。有些公司开发人员突然间大规模辞职,让公司一下子就处于危机中。小公司人少,组织结构也很简单,所以发展的空间小,晋升机会也少。然而大多数公司在这种情况下仍然是不给员工提供足够的发展机会和培训机会。任何人只有看到前途和奔头才会有高涨的工作热情,爬山虽然累,但通常都比下山时开心,就是因为还可以继续前进。培训是发展的前提,培训对于公司是有投入的,然而产出通常更大。培训是除了加薪,升职以外第三个能让员工能对工作公司产生认同感的因素了。培训让员工和企业都有收获。企业为员工作团队合作方面的培训、企业文化方面的培训,会让员工更清楚自已的角色和作用,增加团队的凝聚力;作技术方面的培训,对员工对企业而言作用更是显而易见的;对时间管理的培训,也许影响员工一生;还有其他各方面的培训,都是有用的,因为做IT的人通常不排斥学习。据调查,一个优秀的程序员和一个很普通的程序员的工作效率比在5:1以上。这个数字可能有片面性,但的确从一定程度上反映了优秀员工对于企业的作用,然而一个优秀员工的成本肯定没有五个普通员工的成本那么多。而大多数员工都是普通员工,但通过适当的培训和教育后都可能成为优秀的员工。外企在培训教育方面做得不错,所以外企吸引了更多的优秀的人才。




软件业的从业人员

在这个行业最多就是程序员,讲得难听就叫代码工,讲得好听就叫软件工程师。呵呵。同样是程序员,差别很大。优秀的,普通的;做底层的,做应用的;做后台的,做界面的;
刚刚入行时就听到这么一句话:真正的程序员用汇编,优秀的程序员用C/C++,普通的程序员用快速开发工具,做Asp的根本不叫程序员。
程序员据说找女朋友都挺难。可能觉得电脑比女朋友好哄多了,也可能相比写程序的难度追女孩子更难些,还有可能是工作太忙了没时间找,反正经常看到论坛里有人感叹。这个群体的人通常比较热心,比较单纯。整天板着脸的人让人敬而远之,人家也就不喜欢同你讨论各种技术问题了。
程序员的交流一直被指责,不知是有些问题的确不好叙述还是真的是解说能力的问题,当你到一家新公司的时候你发觉是和别人最难沟通的时候。程序员的确需要提高交流和沟通能力,不然有些成果和人说不清只能独自偷着乐。
大家都说程序员高薪,呵呵,可能是几年前的事实,现在的传说吧。做这一行的有些公司挺忙,有些公司挺闲。但大家一样要不停的捧着书学习新知识。
程序员比较浮躁,的确。因为整个社会比较浮躁,这是个物欲横流的社会,大家都需要为生计而奔波,每个人不断会感受到来自四面八方的压力。小公司没有钱,没有发展前途,没有归属感,所以小公司的程序员跳槽特别厉害。
程序员对未来都比较迷茫,因为整个行业都是三十岁一道槛。所以很多人做了几年就打算跳槽,在最为宝贵的黄金年龄阶段却去改行学其他东西了。也许软件公司应该挖掘出老程序员更多的价值,像国外一样。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值