这些年软件开发生涯心得体会
2008-11-18 11:43 通用C#系统架构 阅读(1907) 评论(1) 编辑 收藏 举报一直从事软件行业,很多年了,有一些心得体会写写下来。
前些年不太关注集体的力量,更多的心思放在自己个人能力的提高上,经过接近10年的努力,当个人能力提高到一定的程度后,越来越多的关注集体的力量了,总会觉得,自己一个人的力量是非常渺小的,能把更多的人管理好,工作效率提高了,日常工作定位、分工合理才能干大事。
最近我注意,说服别人的能力实在太重要了,特别是软件开发过程中,说服别人放弃他的思想,采用公司统一的方式方法,又省时间又省力,同一个东西不用反复开发多次可以集中公司的力量来完善某个公用部分,每个人都开发一次重复建设一次,实在是太浪费公司的资源了,而且软件上的浪费是无形的。
在总结,为什么软件公司,总是开不好,在很大程度上,软件公司与老板的定位,业务能力很有关系,其次是我们程序开发人员的原因也很多,我总结的经验,主要是以程序开发人员这方面为主。
1. 根基不牢
我们写的程序代码, 大部分质量不过关,很多都是由没多少经验的刚参加工作的人写,经验丰富的大多都去看技术文章去了,然后也没经过严格测试。没完没了的修改Bug. 甚至有的写好了,就可以了,根本不会去修改Bug。这就是埋下了祸根了,这个可能跟我们的民族意识也有关系,不会像日本人那样认真。大部分模块,到处都有Bug, 项目越大,折腾得越厉害,到最后是恶性循环了。软件产品的质量也没保障了,客户埋怨也多了。也无法开拓更多的客户了,到处都是地雷,把客户炸得。。。
问题的根源是没有足够优秀的技术人员或者没足够的财力支持,质量不好就是品质不过关,没有保障、没有口碑、更没有品牌。
2. 重复建设严重
一个公司开展了10来个软件项目,5-6个项目经理,好几套技术路线,每个项目各干各的,每个项目有一套自己的开发框架,数据库架构,设计思想,处理模式都不一样,有java的,有.net的,有用sqlserver的,有用oracle的,有人新来的,有人辞职的,跳槽的,而且产品的定位方向都不一样。公司很难沉淀经验。也可说成一盘散沙吧。
其实这个是属于老板的定位能力、目标不明确导致的,什么都干很容易什么都干不好,最终没有什么收获、投资失败、浪费时间、浪费机遇、浪费生命了,但是能提前知道干什么是有前途的也没那么简单,若能知道哪个方向能成功、怎么做能成功,那就没什么好发愁的事情了。
要干啥、怎么干、如何能成功其实是一个公司最复杂的问题之一、最核心的问题之一,时代不一样、环境不一样、竞争对手不一样,可能成功都不一样。一心干玻璃?一心干物流?一心干快递?
3. 没有标准规范
以前不太重视规范、标准等,会觉得天经地义会是这样的,但是人多了,各种思想的人也多了,也不好用口头来管理,也不可能一个人一个人去说服,所以规范、标准的订立是相当的重要的,可以促进公司的整体生产力。打个简单的比方,光登录程序,20个项目里,做了20个样子,那就是需要相应的做测试、修改、完善的工作也是成几何级数的增长。
以前觉得很好笑,一个印度人一直做登录程序,在这个公司,他的职责就是做登录程序。不管是哪个项目,他只做这部分就可以了。现在是能理解了。一个登录程序,也完善了3-4年,才真正的稳定下来了。每过1年半年,都会发现以前写的程序有这些那些Bug,然后进行修改完善。
4.工作绩效
往往有丰富工作经验的人在公司往往是不怎么干活的,都让哪些新手干活,当然经验不太丰富,活儿干不好,很正常。不知道国外是啥个情况,有丰富开发经验的都去做管理?还是继续做开发?开始都让小弟干活?
十多年后的今天能理解、什么叫管理了,例如马云天天需要处理很多关键问题、核心战略、与各地方领导的沟通交流、各种重大投资的落地等等一大堆核心的管理问题,那让马云去编写程序那是浪费人才了,看管理做的事情的意义有多大多重要。若这个管理的价值远远大于一个普通编码人员的价值了,那就安心做管理就可以了。
有些有核心价值的软件组件也不是国内的普通技术人员能搞定的,大多需要开源项目的支撑。很多公司没发展好、没进步好、失去了很多好机会,其实大多也跟这些公司的管理人员无能有关系、没管理好、公司也没发展好、大家也没啥好前途。
公司管理好的抓了重点、抓了核心的,都发展得很好、得到了巨大的成功了,真做好管理没那么容易,日常普通管理的价值也不是很高。绩效管理好的公司在同行里脱颖而出、例如中通快递很早就有简易的绩效管理、员工的干劲儿、在乎工作的程度就高一些,日积月累就超过了其他几个快递公司。虽然员工绩效未必起了核心作用但是也起了重要的作用。