当今社会是一个很浮躁的社会(好像有偏离主题了),说的更加直白一点就是一个急功近利的社会,一切商业活动都是如此,眼前利益大于一切。在如此背景下的软件产业也受到很大冲击,软件是一种商业行为,既然是商业行为,最终的目的都是盈利,这话一点都不假。但是在盈利的同时是否考虑下一步的发展呢?“杀鸡取卵”也是一种盈利模式。可悲的是很多软件公司,在不知不觉中陷入自己给自己挖的沼泽中。
“杀鸡取卵”第一式:代码生成
代码生成器是本无罪过,但是用法不对,则成为罪人,例如菜刀本是菜刀,但是杀人的菜刀就是凶器了。“代码生成可以减少研发成本、能快速开发 、统一风格 .......” 这是很多领导层的想法,原则没错,短期可以见效,可惜用错了场景,代码生成 扼杀了程序员的主观能动性,把人变成代码机器的一种极其愚蠢的行为。其结果就是让程序员固化在同一的思维模式中,失去了创新的激情。留下的员工成了没有想法的代码机器。“哇塞,开发速度很快啊 ......... 一个增删改查 几分钟的事情”,这是代码生成器给人的最直观的体验。其中利弊自己体会吧。本人是很厌恶代码生成器的,特别是作为项目架构的角色。好的架构是不会依赖代码生成器这种幼稚的东西去减少开发成本的。(如何架构 请关注本人后续日志)。
PS:代码生成器不是用于构件项目的,而是作为简单的配置文件等工具辅助开发人员使用的东西。
“杀鸡取卵”第二式:加班加点
软件行业是的潜规则那就是加班加点,成为潜规则是很可怕的一件事情,我在这里不是批评加班加点的弊端,但是如果公司把这个作为产出的一种手段,我想公司的领导可以直接去撞墙了。软件编写是一个比较特殊的行业,首先一个程序员的产出的软件是无形的,所谓的无形是指无法评估他代码的数量与质量。项目紧张,加班加点无可厚非,但是如果一开始就是如此,那么作为项目计划本身就是一个败笔。想想看,加班加点,长期以往能写出高质量的代码吗?可以这样说,那就是一团麻。这种项目投产之后之后的维护是让单位陷入泥潭的开始,特别是当原先开发人人员离职后的维护,成本很高。很可能会出现bug越改越多,维护人员越来越没信心,离职在招人在维护的恶心循环。这时公司想重构这套系统已经不可能了。可能领导觉得,维护就维护吧。坑爹啊~~苦了我们这些做开发的程序员,把一个很高尚的职业瞬间变为一种很赤裸的金钱交易。
PS:如何在高压的情况下保证代码的质量的可控性以及维护的简单性。也是作为架构层需要深思的一个问题。
“杀鸡取卵”第三式:人海战术
软件行业是一个脑力为主的行业,是一个很有技术含量的工作,这不是简单的体力劳作,不是以人数取胜的,很多行外领导觉得项目紧张吧,加人就可以,以为人多及时力量。其实则不然,人多意味着管理的复杂性,特别是本路加入的员工,估计心里不是滋味。相对于人海战术,还不如思考如何提高当前队伍的作战能力,程序员的能力都是在高压下迸发的。通过所谓的领导手段提高当前队伍作战能力,远比人海战术得到的回报更多。既解决了实际问题,又培养了队伍。
PS:人海战术的实施,在软件行业是无法形同的,注定是一个失败。就算是眼前的成功,也为以后的维护造成加倍的维护成本。如何培养正规军是技术经理需要考虑的事情,也是培养精英部队。
“杀鸡取卵”第四式:用人不当
程序员是人,不是机器,作为人具备最起码的情感,领导们常常不负责的把人员安排的他不本不擅长的岗位中,这是很不可取的,让合适人做合适的事情,这句话在软件行业是一个值得深思的问题,兴趣是工作最直接动力,也是公司投资最小回报最到的一种管理方式,把员工分配到他并不擅长的岗位,最后的结局只能是:让一个本来很优秀的员工变得平庸,或者直接导致当事人离职。其损失不言而喻,“这是对你的培养,我们想把你培养成全才”,遇到这种领导,你可以直接离职了。对于我们个人需要的是专业技能,短板效应不适合个人,适合企业。去找能发挥你专长的职位去吧 ........ 这点骨气还是需要有的。
PS:做好人才规划是技术部门领导需要考虑的,到底我的团队需要哪些岗位角色,而不是匆忙中让程序员去充当各种角色,悲剧的程序员的角色有如下几种:HTML、CSS、JAVA、SQL、DBA、JavaScript、IOS、Flex 等,很多人程序员感觉自己很全才,我奉劝各位一句,你的全才意味着你是庸才,古人云:业精于专。
“杀鸡取卵”第五式:我是全才
这一章节是写给程序云自己的,别人为自己是全才就是好事,也许公司需要你成为全才,但是对于个人去不是什么好事情,人的精力是有限的,关注一项肯定会忽略其他项,所以要针对自己的特点选择一个专业深入进去好好琢磨,要记住,任何一家公司都不会考虑员工自身的发展,或者说是领导考虑的给员工的个人发展必须是依托与公司的发展为前提的,这就要权衡自己是否与公司发展战略一致,能一致是最好的,或者在领导的教育下也从其他轨道不如公司发展的轨道。这也是一种成功。否则还是劝你好好思考一下自己的发展吧。与其在自己不喜欢的技术路线上浪费不如早点换一家适合自己兴趣的岗位。公司领导为了自身利益,常常鼓吹需要全才程序员,这是一个极其错误的想法,这种想法会让企业沦落为平庸的企业。在这样一个竞争激烈的环境中,不近则退,何况自己还向平庸靠拢。
PS:一个公司如果总是把员工的全才看作标准。对与员工与企业都是悲剧式收尾。偏执狂有时是需要的。“
韩寒是一个赛车手 所以他不是一个作家
”哈哈·~也许是真的吧。 哈哈
“杀鸡取卵”第五式:所谓团队
所谓团队是一个很难定位的一个问题,因为团队就是“哈姆雷特”,不同的人对于团队定义是不同的,团队不是简单的合作,就可以称之为团队,很多人还没有意识到这一点,感觉在一起做项目就是团队,我想还不能成为一种严格意义的团队。这个就让我联想到 区区一个小日本如何能在二战期间把整个亚洲都搞得鸡犬不宁,这种才能称之为真正的团队,也许大家看到这里会觉得我太理想化了,的确我也承认这一点。肤浅的公司从来不考虑技术储备,而当今是一个以团队为本的公司,没有可团队就没有了竞争力,目前人才贮备最大的公司是什么,是Google,这也是他的成功之处。目前的团队建设感觉大部分都是停留在当年 八路军的 “游击队”模式,充其量就是也就是小打小闹罢了。大家在一起做做小项目还是完全没问题的,团队与团队之间各自为政。这样不利于公司的发展,要做团队培养就要打造正规军,统一公司技术路线,统一技术架构,统一编码风格,统一流程管理。更重要的一点就是统一思想的高度一致性。这才是一个具有高级战斗力的团队。就Java而言,发展到现在已经没有技术死角了,唯一需要做的就是利用其优势,扩建一个属于自己公司的技术架构,在推而广之,平台的统一性,在实战实用完善平台,培养队伍。而不是团队之间各自为政的局面。
PS:技术经理需要规划好,用一年时间打造一个正规军,才是公司持久发展的正道。不要狭义的去理解团队。
....................
暂时就这些吧,午饭了~~~ 我会陆续发表一些本人的一些技术积累与心得体会。有兴趣的同学请关注。
一点愚见,我是站在架构的角度去看待这些问题。欢迎大家理智与我探讨,分享方能进步。开源才是胜利。
架构与孙子兵法 本质是相同的。很佩服古人。 我又开始莫名的崇拜古人了 。。。。。。