MyException - 我的异常网
当前位置:我的异常网» Java相关 » 十年总结(16):主动的自小弟我改造(或者说转型?

十年总结(16):主动的自小弟我改造(或者说转型?)

www.MyException.Cn  网友分享于:2013-02-23  浏览:6次
十年总结(16):主动的自我改造(或者说转型?)
对我过去感兴趣的朋友们,请看十年总结系列文章

---

做产品难,看起来不是我一个人的感受。
做面向个人的产品,受不了的是盗版,
做面向企业的产品,中国的企业市场靠的是关系,而且资金、需求的极端个性化都是障碍,
如果产品有一个绝佳的创意,那么经不住抄袭,
如果产品有一项核心技术,然而一直领先似乎不太现实,况且中国也不缺聪明人,

所以国产单机游戏没落了,无论是轩辕剑还是仙剑,网游火了,
所以中国没有像Ultraedit这样的个人软件精品,盗版业火了,
所以中国的软件行业少有属于自己的创新,互联网也是不断的跟着国外走,

有时候想想,没有自己的操作系统、没有自己的编程语言,没有自己的开发工具,中国软件还剩下啥?

也挺奇怪自己为什么总有这么多感慨,也许这就是开始变老了吧。

不过话说回来,作为软件行业的从业者,我是应该忧虑,
因为我们的命运多少是与中国软件的未来息息相关的。

百度、腾讯、华为,这些公司再牛,能养几个人,如果只有这么几家好的公司可供选择,如果中国软件的大环境不向好,
那么每年N万新程序员的成长计划(假定为程序员-->设计师-->架构师或者项目经理-->高管),
只能是水中月、镜中花。

如何改变,也许只有靠我们每一个人,本着“软件兴旺、匹夫有责”的信念,
如果有一天各位从底层走到高层,是否能够在自己可控的范围内,践行自己当初的理想?

---

话题扯的有些远,每每一动思考就是浮想联翩。

上一篇文章有一位朋友问我2005年是不是在转型,
是的,05年很压抑,的确在转型,前半年被迫转,后半年自己主动寻求改变,

面对挫折和失败能怎么办?
逃避?不是我想要的;无视?更不行!

我想做的是分析和证实,
分析失败的原因哪些应归咎于我,哪些应归咎于环境,
不为推脱责任,只是为了防止因为失败而导致过度的自卑,是为了挽救一定的自信心。
证实主要是希望搞清楚自己可以做到什么样,过去有错的地方应该如何改进。

分析是相对容易的,老板也经常跟我们做沙盘推演,复盘分析,从过去的错误中吸取教训,
而证实的过程却是迷茫而漫长的。

我有两个问题:
1、如何做出正确的决策?
2、如何将个人的力量,转化为团队的力量?

第一个问题对于很多人来说根本不成为问题,
可对于经历了一段挫折的我来说,这是一个很重要的命题。
因为有过失败,在做下一次决策的时候心里就会嘀咕:
我这样做没问题吧?不会又搞错吧?
就像打乒乓球,本来领先,然后被对手反超,这时候心理就会产生微妙的变化,

关于决策的正确性,具体来说,主要有两点需要反思:

1.1 关于设计的程度问题
受到04年重构、XP、敏捷等思想的影响,我一直在号召自己的团队消灭脏活,
(我们把具有设计和复用价值的代码称为累活,而把重复性劳动和特例代码称为脏活)
这导致一个后果,就是大家似乎都染上了点洁癖,
有些功能如果想不出好的可扩展方案,或者会破坏现有设计的“美感”,宁愿放弃不做。
遇到任何功能都想通用化,想一劳永逸,于是抽象、做成一个架构,考虑可扩展等等,

过度设计,导致开发团队总在做自己想做的(理想化),而不是应该做的,
这样开发出来的东西,深入进去看挺优雅的,但视角拉出来看整体,没什么用户需要的东西,就是一个架子。
我们总是希望在一个完美的架子上,把用户的需求很容易的纳入进来,事实上,完美是基本上不可实现的。


1.2 关于业务和技术的关系问题
相信每个入行几年的朋友们,都会听你的老板、上司或者资深同事唠叨过:
不要太关注技术,关注业务才能立于不败之地。

这句话好说,不好做,时间会证明这句话是对的,因为我现在也在向别人灌输这个理念了,
但业务真的比技术更难琢磨,更抽象,或者说,业务知识需要揣摩。
让一个技术专家和业务专家一起跟用户做一次需求沟通,那么两个人的理解肯定是不同的。

比如,我们的监控系统有一个拓扑图功能,有一次用户提出拓扑图需要具备“数据钻取”功能,
按照我的理解,钻取是一种复杂的数据分析手段,
我首先想到的是数据之间的层级关联关系如何管理,是自动发现还是手工配置?
如果自动发现技术上会有很大的难度,而如果手工配置,则界面应该比较复杂。

可我们的老板完全不这么理解,他认为只要实现“父-子”拓扑,并能够向下一层层展开即可,
让我觉得不可思议是,用户真的接受这种理解。

当然,这也许不是一个非常恰当的例子,但足以说明,
技术人员和业务人员之间,对同一套词汇的解释有很大的差异性,
了解业务,我觉得就是站在用户的角度考虑问题,站在行业的大背景下考虑问题。


关于第二个问题:如何将个人的力量,转化为团队的力量?
在人少的时候,大家都是哥们一样的,大家都把开发作为一种乐趣,在工作上有共同的价值观,
这是一种很美好的状态,每个人的效率都很高。
但团队肯定要变大,人多了,管理不善效率就会下降,事情就会失控,怎么办?

我在这方面想了很多,包括管理者的风格,宽严的尺度,团队的文化,制度的设置等等,
我一直向往一种比较理想的状态:那就是无为而治。
实际上这种想法还是有些来自于软件设计的框架思想,
设定适当的原则,纳入合适的人,每个人都为特定的目标而“主动”努力。

我一直在尝试这种方式,实践证明,在建造新的团队时(尤其是可塑性强的新毕业生组成的团队时),
这种方法非常有效,
但用于改造既有团队,则需要的时间和面对的阻力都要强一些。

我设定的原则很简单:
每个进入这个团队的人,都要求积极反馈、有效沟通、树立质量意识。
这样,经过一段时间的磨合,团队会形成一个自驱力,也就是不用管理者推动就可以向前走。

在这一年,看的书基本上都是温伯格的,有三本个人感觉帮助比较大:
《探索需求》
《你的灯亮着吗》
《成为技术领导者》
接下来我会做个专门的介绍

---

谈到“转型”,我相信多数人的第一反应是从“技术”转向“管理”,
我倒觉得未必一定如此。

我将转型定义为“思想的转变”,是一种自我改造,结果是境界上的升华,是考虑问题的角度和处理问题的手段上的转变。

按照这种定义,我从05年开始主动的考虑“转型”,到现在很多年来都是处于“半管理”状态,
其间做过项目经理、部门经理、产品经理,
管理是我工作的职责,但一直没有成为100%,所以我也从来没有间断过开发。
不是不可以做到,而是觉得完全脱离开发不安全,也不甘心。

一定会有人说这是失败的转型,
可是我觉得,正是这样一种看待开发的观念,造成了大家对30岁的恐惧,
其实坊间不自觉的将开发视为下等工种,而将管理看作是上等工种(也许我选词不当,但我相信大家明白我的意思),
而你我都浸淫其间,受到这种文化的熏陶,所以才有这么多人刚入行,甚至没入行就在前瞻“转型”的问题,

可是,技术和管理应该是软件行业的两条腿,重要性是一样的才对,
有些人天生是技术达人,转向管理不仅是人才的损失,也让自己难受,
况且这种跨工种的转型(无论从技术转向管理,或者从管理转向技术),是有风险的,未必每个人都能胜任新的角色。

我希望,我也相信,随着中国软件行业的生态环境逐渐趋于合理,
我们的程序员,只要在一个方面做的足够的好,足够的精,哪里都少不了他的生存空间。



这一篇我自己看着都觉得晦涩,写出来不容易啊。

------解决方案--------------------
可是,技术和管理应该是软件行业的两条腿,重要性是一样的才对, 
有些人天生是技术达人,转向管理不仅是人才的损失,也让自己难受, 
况且这种跨工种的转型(无论从技术转向管理,或者从管理转向技术),是有风险的,未必每个人都能胜任新的角色。 


我希望,我也相信,随着中国软件行业的生态环境逐渐趋于合理, 
我们的程序员,只要在一个方面做的足够的好,足够的精,哪里都少不了他的生存空间。 

文章评论

Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
漫画:程序员的工作
漫画:程序员的工作
那些争议最大的编程观点
那些争议最大的编程观点
如何成为一名黑客
如何成为一名黑客
程序员必看的十大电影
程序员必看的十大电影
Java程序员必看电影
Java程序员必看电影
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
10个调试和排错的小建议
10个调试和排错的小建议
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
鲜为人知的编程真相
鲜为人知的编程真相
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
旅行,写作,编程
旅行,写作,编程
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
中美印日四国程序员比较
中美印日四国程序员比较
程序员和编码员之间的区别
程序员和编码员之间的区别
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员都该阅读的书
程序员都该阅读的书
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
我是如何打败拖延症的
我是如何打败拖延症的
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
一个程序员的时间管理
一个程序员的时间管理
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
总结2014中国互联网十大段子
总结2014中国互联网十大段子
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员的鄙视链
程序员的鄙视链
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
编程语言是女人
编程语言是女人
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
我的丈夫是个程序员
我的丈夫是个程序员
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
老程序员的下场
老程序员的下场
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有