饭饭TXT > 学习管理 > 《走出软件作坊》作者:阿朱【完结】 > 走出软件作坊.txt

第 6 页

作者:阿朱 当前章节:15104 字 更新时间:2026-6-27 11:33

而老板,项目拖拖拉拉这么多月都还没有成型的结果,还每个月发工资,本来心里就有气(可能根源就在于他,但灯下黑这种事情谁都知道)。你还这时跟我提项目奖金?我给不给,我怎么给,给多少是个合适?给多了给少了都是麻烦,把问题踢回去,看看你们这帮家伙怎么想要多少。要的少了,为了项目,就当破财免灾。要的多了,再说。为了防止谈崩了这帮家伙起坏心眼,我得想好退路,不能让这帮程序员把我给耍了。我要首先行动,把他们先控制起来,防止意外。

而员工呢,一看被老板给拐弯抹角的踢回来了。KAO,要么明说不给,还让我们提方案。不想给就明说,来暗的。我们辛辛苦苦这么长时间,你朝令夕改还怨我们。看来这样的老板成不了什么气候,跟着他也是受窝囊气,吃苦不来钱。该跳槽了。

而项目经理呢。这时被夹在了中间,该怎么办呢?

我给大家先摘录一段很著名的管理小故事(摘自成君忆先生的《水煮三国》):

兔王遇到的难题南山坡住着一群兔子。在蓝眼睛兔王的精心管理下,兔子们过得丰衣足食,其乐也融融。可是最近一段时间,外出寻找食物的兔子带回来的食物越来越少。为什么呢?兔王发现,原来是一部分兔子在偷懒。

2.奖励的必要性兔王发现,那些偷懒的兔子不仅自己怠工,对其他的兔子也造成了消极的影响。那些不偷懒的兔子也认为,既然干多干少一个样,那还干个什么劲呢?也一个一个跟着偷起懒来。于是,兔王决心要改变这种状况,宣布谁表现好谁就可以得到他特别奖励的胡萝卜。

3.随意奖励,激起不满一只小灰兔得到了兔王奖励的第一根胡萝卜,这件事在整个兔群中激起了轩然大波。兔王没想到反响如此强烈,而且居然是效果适得其反的反响。

有几只老兔子前来找他谈话,数落小灰兔的种种不是,质问兔王凭什么奖励小灰兔?兔王说:“我认为小灰兔的工作表现不错。如果你们也能积极表现,自然也会得到奖励。”

4.兔子们学会了变脸于是,兔子们发现了获取奖励的秘诀。几乎所有的兔子都认为,只要善于在兔王面前表现自己,就能得到奖励的胡萝卜。那些老实的兔子因为不善于表现,总是吃闷亏。于是,日久天长,在兔群中竟然盛行起一种变脸式(当面一套背后一套)的工作作风。许多兔子都在想方设法地讨兔王的欢心,甚至不惜弄虚作假。兔子们勤劳朴实的优良传统遭到了严重打击。

5.有规矩才能成方圆为了改革兔子们弄虚作假的弊端,兔王在老兔子们的帮助下,制定了一套有据可依的奖励办法。这个办法规定,兔子们采集回来的食物必须经过验收,然后可以按照完成的数量得到奖励。

一时之间,兔子们的工作效率为之一变,食物的库存量大有提高。

6.注意奖励制度的改革兔王没有得意多久,兔子们的工作效率在盛极一时之后,很快就陷入了每况愈下的困境。兔王感到奇怪,仔细一调查,原来在兔群附近的食物源早已被过度开采,却没有谁愿意主动去寻找新的食物源。

有一只长耳朵的大白兔指责他惟数量论,助长了一种短期行为的功利主义思想,不利于培养那些真正有益于兔群长期发展的行为动机。

7.当规矩被破坏之后兔王觉得长耳兔说得很有道理,他开始若有所思。有一天,小灰兔素素没能完成当天的任务,他的好朋友都都主动把自己采集的蘑菇送给他。兔王听说了这件事,对都都助人为乐的品德非常赞赏。

过了两天,兔王在仓库门口刚好碰到了都都,一高兴就给了都都双倍的奖励。此例一开,变脸游戏又重新风行起来。大家都变着法子讨好兔王,不会讨好的就找着兔王吵闹,弄得兔王坐卧不宁、烦躁不安。有的说:“凭什么我干得多,得到的奖励却比都都少?”有的说:“我这一次干得多,得到的却比上一次少,这也太不公平了吧?”

8.胡萝卜也会失去激励作用时间一长,情况愈演愈烈,如果没有高额的奖励,谁也不愿意去劳动。可是,如果没有人工作,大家的食物从哪里来呢?兔王万般无奈,宣布凡是愿意为兔群做贡献的志愿者,可以立即领到一大筐胡萝卜。布告一出,报名应征者好不踊跃。兔王心想,重赏之下,果然有勇夫。

谁也没有料到,那些报名的兔子之中居然没有一个如期完成任务。兔王气急败坏,跑去责备他们。他们异口同声地说:“这不能怨我呀,兔王。既然胡萝卜已经到手,谁还有心思去干活呢?”

老板和员工就如兔王和兔子。管理的激励大多如此。

也就是说:在管理技巧上,项目奖金不是唯一的激励手法。而且未必是最有效的方法。每个人每个阶段的诉求是不一样的在我讲的这位项目经理的案例上,他们目前遇到的最致命的困难是:

主要最大的就是需求分析难确定,改动比较大,累; 2朝令夕改,也改腻了,不想改了; 3周期太长,没个结束,什么是个头儿啊?

这个现象和我们做客户定制化开发实施很相似。

我们一般采取的解决方法是:

每次的和老板的交流更改,都先写文字性的东西,给老板看理解的对不对。当然,老板认为他已经说清楚了没必要再详细看你理解的对不对,所以看也不看,最后你认为他看了就开始做,做出来老板一看根本不是自己想要的。所以,要逮住他跟他对照着文档讲。有机会有时间就逮住他。看不到他就给他打电话。老板一般都声称很忙。但你不追他,他一看你这么长时间也没有动静,也没有开发,到底在干吗。所以与其让他产生误会,不会你直接明了找他,否则你就被他K了。你想想后果。

每次和老板的交流更改,都把他过去的几种思路都在文档中列出来,并且说明每一种的优点,每一种的缺点。并且你要综合出一个综合所有优点避免缺点的方案也写在文档中。让他感觉,这就对了,没有缺憾了。

很多网友估计又要暴跳了。扯淡,老板会听你的?人家是老板啊,人家想怎么做就怎么做,你就是一个干活的小兵,你把自己当个人物,什么狗屁项目经理,人家都不把你当人看。

嗯。这种方法我就用过,而且奏效。我在空降的时候公司也是草莽摊子,老板直接指挥。但每次我想的方案比他想的还全还远,于是他就放心了,他干涉的就越来越少了。

有人又讲了,你比老板还周全还远,那你干吗不当老板。

嗯。老板这个工作不是你想的全想的远就能做的。职业经理人和老板有本质的区别。有的人适合做老板,有的人就适合做职业经理人,一当老板就干不好了。大家职业经历久了就明白了,现在多解释也理解不了。多经历,会明白许多。

我给这个项目经理又支了几招:

大家找一天下午不开会。务个虚。就是大家发泄一下。随便说。

你把大家的发泄主题都记录下来。

把大家对于产品对于需求对于客户的抱怨记录下来。大家集体把拖时间最长、改动最频繁的、改动最累人的都一起解决了。把改动频繁的,改动难的,做好公共代码或灵活的接口技术。

几个人一起解决这几个问题。不要分散解决。分散解决一是思考不全面,会出现新的问题。另外,项目团队现在很涣散,通过大家共同解决一个问题,会感觉大家在一个战壕里战斗,大家的心又凝聚在了一起,目标也是一样的。

攻克了,就感觉轻松多了。

就这样,问题解决,老板员工齐欢喜。

但项目奖金问题,没了下文。

有网友肯定暴跳。这不是扯淡么,我辛苦工作,不就为了钱么。现在是老板的问题解决了,我钱没挣到啊。你这种方法是亲老板派。

嗯。老板是不见兔子不撒鹰。而且见了兔子也能不撒就不撒。(胸怀宽广任贤用人和谐共处的老板除外)在项目前期,中期,老板一点好处都没看到,未来能不能卖个好价也不知道。一点收入没有,就看见每天的费用哗哗哗的流,还跟要项目奖金?

如今,项目成功,大家总有点好处吧。但现在项目已经结束,老板已经无后顾之忧,你提也没有用,爱谁走谁走。卸磨杀驴的老板比比皆是。像史玉柱这种隔天就发两三千块钱的老板少见,所以像史玉柱这样成功的老板也很少见。

我当年做开发经理的时候(我也是从基本员工一步步上来的,劳苦大众经历的事情我也经历过),我也没奢望要到个多少钱,很明确,封闭开发1个月,封闭期间双薪。

为什么封闭开发。并不是日赶夜赶。原因有三:

为了有个明确的限制。这样,项目周期就不会漫漫无期。

要项目奖金有理由。封闭开发,压力大,加班。

这个双薪很好量化衡量。就是多一个月的工资。老板很容易做出决定。

所以,不要让老板想问题答案。而应该把老板能想到的答案你先想到,然后给老板一个选择题,这样你就不会出意外了。

我想起了赵本山的一个小品:

宋丹丹说:你在家也不和我说话,老一个字一个字往外嘣。

赵本山:我说蒜,就是咱家紫皮大蒜。我说醋,就是咱家的陈醋。这么多年了,我说啥想啥你都知道,我费那口舌干啥啊。

嗯。跟随老板久了,也就这个味儿。

16、七里香

窗外的麻雀在电线杆上多嘴你说这一句很有夏天的感觉手中的铅笔在纸上来来回回我用几行字形容你是我的谁又是凤凰花开,新人毕业,老人跳槽的季节了。这几天的电台老是这样的主题。有人要找工作,有人刚刚入职,无措的看着这个和学校和课桌截然不同的公司和工位。有老人要跳槽,突然由一个老油条变成了一个新员工,一个新环境新人际关系需要适应。对于项目经理来说,有新的员工要管了。他可能是刚刚毕业什么都不会的耷拉着头发的新新人类,他也可能是在各个公司混迹跳槽的老油子。

我想起了我毕业,以白纸新人的面貌进入了公司。这份工作对于只身一人闯荡北京的应届毕业生来说非常重要,因为这份工作要养活我在北京生存下去。在北京上学的外地孩子可能有一个惯性思维,就是反正在北京上的学,毕业了同学大部分都留在北京了,那我也留在北京,熟悉的城市熟悉的人,就这样落了下来。但是对于一个和北京一点关系都没有的人来说,到北京,就是为了闯荡,为了闯荡出一个自己的梦想。和美国梦一样。这就和北京人、在北京上学后留在北京的外地人有截然不同的区别。因而对自己要求分外严格,我为什么来北京?虽然我已来北京10年,在这里买房买车结婚生子生活工作,但我仍然会时常想起这个问题。

当时住的地方,离公司大约坐公交车一个半小时。公司九点上班,还不是门卡制所以有人掌管钥匙。我往往在八点二十就到了公司,坐在公司的楼梯上看英语书。

公司为集中进来的新人做了一次为期一个星期的培训,从公司制度到公司产品,从出差报销到员工制度,从行政领取到福利介绍,全的很。但是,我都忘记了。到了真正正常工作的时候,到了报销的时候,还得问师傅,还得问行政助理。产品知识,还得日常工作中研发部内部培训。

我也曾经做过几次新人培训,但一工作开,发现也是全白费。所以我现在就不培训新人了。采取行动中开火,实战中成长,师傅带领指导监督管理。

当然,我也被指派了一位师傅带我。我的师傅,并不是我的领导。我的领导是研发部经理。我的任务是研发部经理分配的,而师傅是指导监督我的新人期工作的。师傅只是一个非正式传帮带,不是职位或职务。每个新人进来公司,都有师傅。即使一位在其他公司工作多年的老员工跳槽进来,也会由研发部经理适当的安排一位师傅。

每个企业和组织都有其内部的制度和规则。这些规则和方法可能不是被白纸黑字的写下来的,但由于长期部门内协作和经理的个人管理风格和部门间的利益力量博弈,所以形成了部门内说不清道不明的规则。它存在,它不是明面上写的,它存在于人们日常的工作流程和人际关系中。

而一位新人,不管你是应届毕业生还是老油子,你既然来到了一个新的公司新的环境,就必须要很快融入这个独特的部门文化中。你不会从任何文字性的东西中阅读理解到,但它就是影响着你的日常工作开展。所以师傅是很有必要的。

我的经理为我分配了一个活,做报表。

做过企业管理软件信息化的人都知道。最难的不是编程开发录入数据的窗口,而是做报表,并且报表数据做平了,几张关联的报表的数据还能对平了,而且钩稽关系都正确。

这是很不容易的。因为表结构已经定死了,设计的时候,可能设计者多考虑了数据录入,却轻视了数据统计,所以很可能这个表结构出报表非常难,甚至你不拿存储过程+临时表来做就想不出更好的办法。更糟糕的是,数据库不知道是谁调试程序时发生了问题,侵入了异常的数据,你怎么都想不明白怎么数据平不了。更为严峻的是,我面临的是22个子系统,1000多张表的一个大数据库结构。更让我着急的是,我的经理还给我设置了时间期限,不是让我学习试验的,而且我做的东西要给客户用,这是要卖钱的,做不好,客户就不给钱。

我对业务一无所知,对内部怎么写的代码也一无所知,对这1000多张表的关系也一无所知。如果放在如今,肯定新入职的员工会直接跟我说:我不会。

我很是珍惜这份工作,当然全单收到。幸亏公司的数据表管理用的是PowerDesigner,里面有详细的表结构说明。

业务不明白,我找到我的师傅。我的师傅给了我一个市场部的PPT。里面有关于产品的总体介绍。我很快就找到了重点的系统模块,以及各个系统的关联关系。

管理软件这个东西,我在学校期间打工做的就是它,自然对这类东西有一种规律性的认识。先看各种字典,然后看各个业务窗口。各个业务窗口用到哪些字典。各个业务录入窗口都被我看作是一个业务单据。什么入库单、出库单、采购单之类。然后我再看报表。对照着报表再去找这些数据大概是来自哪个数据录入窗口产生的。

学完了业务系统,看经理给我安排的报表任务。我已经心里有数,基本知道了这些报表都涉及到哪些数据录入窗口。

尝试录入数据,修改数据,用SQL跟踪器跟踪SQL输出,得到SQL语句,一下就明白了能用到哪些现成的视图,以及我要用到的表和表之间的关系。

我并没有去研究这1000多张表。我也没有把22个子系统全部研究完毕。我只研究了我要研究的表结构,我只研究我要研究的业务模块。

我从入职工作到把报表出来,并且测试出平,只用了两个星期。很快,我就成为了高级开发人员。我对业务系统的了解,我对内部结构的了解,超过许多老员工(很多新人都是一年后才能上手)。我能清晰的画出业务流程图,并且指出现有系统还可以再优化业务流程的地方,还有处理不合理比较绕弯的地方,也能指出哪些地方应该留下历史追溯,却现在没有留下,有审计漏洞。

所以,我现在引导新员工,也是通过做报表。我不会安排任务时间让他们专门学习业务系统,让他们阅读系统设计说明书或帮助文档。这没有用,因为这样做没有目的性,他们不知道该看什么才有用。直到真正遇到任务,带着问题去找相关的答案,他们才会去真正用心了解这些。

所以,我一向的管理风格都是以问题找答案。没有问题,就不乱动。即使有问题,问题不影响最终的大局和目标,也能不动就不动,能不做就不做,不急不躁一切都在预料之中。我不喜欢大革命大运动大学习大整风(可能是我家在60-70年代历史原因影响)。平时不润物细无声的管理、指导、引导,到了发怒的时候才去大动手,对于一个组织来说太伤筋动骨。

在研发部,还有免费的咖啡和茶可以喝,当然茶也不是那种茶叶沫子,而是还算不错的茶。看得出公司的巧思安排人文关怀。喝没了,不用开发人员自己申请领取,研发部有行政助理管,她会照顾大家的一切工作以外的事项,什么报销整理阿,纸呀笔呀,乱七八糟影响大家开发工作的,都是行政助理全包。我一直喜欢这种氛围,可以安心去做自己最擅长的事情,把身外之事都交给细心忍耐机灵的女孩助理去做。

在研发部,还有每周五不强制的下午学习。大家如果觉得有必要,就早就计划好让研发部内某人讲一次业务系统难点,或设计难点,或难点技术最新技术共享。这种学习型的组织一直让我很推崇。看似大家在浪费时间闲聊,但大家的团队凝聚力,团队学习力,团队配合力,真是空前的高。

这都是很特别的研发部文化。在三五个人十来条枪的企业,可能做不到,也可能能做到。做不到,大部分都是老板连茶叶都不舍得给员工买,甚至企业文化弥漫着争抢夺的气息,刚买回来一包茶第二天就不翼而飞,最后老板都下令让某个人管茶,平时茶放到这个人的抽屉里,谁喝谁来要。没想到,很少有人来亲自要,茶叶最后也被看管的这个人带回家。之所以形成这种尴尬的文化,就是由于企业根源与老板的根源,可能就是争抢夺,所以从上到下都是如此。对于利用工作时间团队学习,很多中小企业都做不到。因为每个人都顶着一个到几个项目的开发或实施,每个人都超负荷工作,大家根本没有心思去挤出时间团队学习。而且经常每个人都出差到各地去现场开发现场实施,根本聚不到一起,所谓的团队,只是一个虚词,只有个人,只有单枪,只是乌合之众,根本没有CS角色配合这样的战队。

我最后也成为了一个老员工了,我也由于个人发展原因跳了槽。天下没有不散的筵席。我又作为一个新人来到了一个新的环境中,要面临一个我未知的办公室潜规则,要置身于一个我还没有了解的利益集团中。

这次我是娴熟的老员工。

公司所有人的联系方式要到每个部门的头都短期内认识了。认识方法就是吃饭现有产品深刻使用操作了一遍,发现了问题,也知道了现状,也知道了未来如何改进现有客户,现有正在跟单的项目情况离老板最亲近的几个人,和他们玩,聊天,吃饭,深刻观察了解他们的做事方法,观察他们为什么能离老板这么近。近朱者赤近墨者黑。这样也能看出老板是个什么样的人每个部门的事实领导人,有些人不是头,但是很有影响,是事实上的内部头目,和他们玩,请他们吃饭,把部门的利益团伙和公司历史,公司的真正收入来源和真实收入数额和盈利模式都了解清楚瞅机会,创造一切机会,和每个老板聊,了解每个老板的想法改进现有产品最大的几个难点问题,寻求短期内出彩的活让公司所有人立刻刮目相看很快,我又成了优秀的管理者,开展工作巧妙平衡执行恰到位。

我想起了李开复曾经讲过的一个经验,他也是要联系方式,然后主动联系吃饭聊天(聊什么就很多啦)。如出一辙。

希望自己的新人经历和跳槽适应新公司的经历能给大家带来启发。不管是还没有走上社会或刚刚毕业或刚刚入职的学生,还是不知道跳好还是不跳好正在前后犹豫的老人(估计还没跳过槽),还是跳过去但遇到排挤或冷遇孤独的老人,希望能帮助你们走好自己的第一步。

附录给大家摘录一段华为任正非写的《致新员工书》,笔者个人认为是很好的新人入职心态指导。

作者:任正非您有幸进入了华为公司。我们也有幸获得了与您的合作。我们将在共同信任的基础上,度过您在公司工作的岁月。这种理解和信任是愉快奋斗的桥梁与纽带。

华为公司是一个以高技术为起点,着眼于大市场、大系统、大结构的高科技企业。以它的历史使命,它需要所有的员工必需坚持合作,走集体奋斗的道路。没有这一种平台,你的聪明才智是很难发挥,并有所成就的。因此,没有责任心,不善于合作,不能集体奋斗的人,等于丧失了在华为进步的机会。那样您会空耗了宝贵的光阴,还不如试用期中,重新决定您的选择。进入华为并不意味着高待遇,因为公司是以贡献定报酬的,凭责任定待遇。对新来员工,因为没有记录,晋升较慢,为此十分歉意。如果您是一个开放系统,善于吸取别人的经验,善于与人合作,借助别人提供的基础,可能进步就会很快。如果封闭自己,怕工分不好算,就需要较长时间,也许到那时,你的工作成果已没有什么意义了。实践是您水平提高的基础,它充分的检验了您的不足,只有暴露出来,您才会有进步。实践再实践,尤其对青年学生十分重要。唯有实践后善于用理论去归纳总结,才会有飞跃的提高。有一句名言,没有记录的公司,迟早要跨掉的,多么尖锐。一个不善于总结的公司会有什么前途,个人也不是如此吗?

实践改造了人,也造就了一代华为人。您想做专家吗?一律从工人做起,已经在公司深入人心。进入公司一周以后,博士、硕士、学士,以及在内地取得的地位均消失,一切凭实际才干定位,已为公司绝大多数人接受。希望您接受命运的挑战,不屈不挠地前进,不惜碰得头破血流。不经磨难,何以成才。公司要求每一个员工,要热爱自己的祖国,热爱我们这个多灾多难、刚刚开始振兴的民族。只有背负着他们的希望,才可有进行艰苦的搏击,而无怨言。我们总有一天,会在世界通信的舞台上,占据一席位子。任何时候、任何地点都不要做对不起祖国、对不起民族的事情。要严格遵守公司的各项制度与管理。对不合理的制度,只有修改以后才可以不遵守。不贪污、不盗窃、不腐化。严于律己,宽于待人。坚持真理,善于利用批评和自我批评的方法,提高自己,帮助别人。

您有时会感到公司没有真正的公平与公正。真正绝对的公平是没有的,您不能对这方面的期望值太高。但在努力者面前,机会总是均等的,只要您努力,您的主管会了解您的。要承受得起做好事反受委屈。没有一定的承受能力,今后如何能做大梁。其实一个人的命运,就掌握在自己手上。生活的评价,是会有误差的,但决不至于黑白颠倒,差之千里。您有可能不理解公司而暂时的离开,我们欢迎您回来。您更要增加心理的承受能力,连续工龄没有了,与同期的伙伴的位置拉大了。我们相信,您会加步赶上,但时间对任何人都是一样长的。

希望丢掉速成的幻想,学习日本人的踏踏实实、德国人的一丝不苟的敬业精神。真正生活中能把某一项技术精通就是十分难的。您想提高效益、待遇,只有把精力集中在一个有限的工作面上,不然就很难熟能生巧。您什么都想会、什么都想做,就意味着什么都不精通,任何一件事对您都是做初工。努力钻进去,兴趣自然在。我们要造就一批业精于勤,行成于思,有真正动手能力、管理能力的干部。机遇偏多于踏踏实实工作者。公司建立了以各部门总经理为首的首长负责制,它隶属于各个以民主集中制建立起来的专业协调委员会。各专业委员会委员来自相关的部门,组成少数服从多数的民主管理。议事、不管事。有了决议后由各部门总经理去执行。这种民主原则,防止在一长制中的片面性,在重大问题上,发挥了集体智慧。这是公司六年来没有摔大跟头的因素之一。民主管理还会进一步扩展,权威作用也会进一步加强,这种大民主、大集中的管理,还需长期探索,希望您成为其中一员。

公司永远不会提拔一个没有基层经验的人做高级领导工作。遵循循序渐进的原则,每一个环节对您的人生都有巨大的意义。您要十分认真地去对待现在手中的任何一件工作,积累您的记录。要尊重您的现行领导,尽管您也有能力,甚至更强。否则将来您的部下也不会尊重您。要有系统、有分析地提出您的建议,您是一个有文化者,草率的提议,对您是不负责任,也浪费了别人的时间。特别是新来,不要下车依始,哇啦哇啦。要深入地分析,找出一个环节的问题,找到解决的办法,踏踏实实地一点一点地去做。不要哗众取宠。

在公司的进步主要取决您的工作成绩,一个高科技产业,没有文化是不行的。业余时间可安排一些休闲,但还是要有计划地读些书。不要搞不正当的娱乐活动,绝对禁止打麻将之类的消磨意志的活动。为了您成为一个高尚的人,受人尊重的人,望您自律。谁为谁服务的问题一定要解决。公司总的是为用户服务,但具体来讲,下一道工序就是用户,就是您的“上帝”。您必须认真对待每一道用户。

要关心时事,关心国家与民族的前途命运。提高自己的觉悟。但不要卷入任何政治漩涡,指点江山。公司不支持您,也不会保护您。公司坚持员工必须跟着社会潮流走。当前,要承认只有共产党才能领导中国,否则就会陷入无政府主义。一个高速发展的经济社会,没有稳定,没有强有力的领导,陷入无政府主义状态是不可想象的。共产党的缺点,通过整党和教育来解决。我们可以帮助它,但必须是善意。公司在飞速的发展,迫切地需要干部,希望您加速磨炼,与我们一起去担起明天的太阳。

17、走钢索的人

架构师是个很神圣的词。盖茨,世界首富。微软,世界最大最富有的软件公司。盖茨是微软的首席架构师。

好多程序员流口水,一听某人是架构师,就两眼发亮,比技术总监的头衔还要厉害。

一想起架构师,大家就想起那些UML设计工具、类图、时序图,想起那些水泥大楼的框架和地基,想起了那些如百变金刚的开发平台,想起了那些让人眩目的反射、元数据、FrameWork、设计模式、面向对象、重构。

很多人想当架构师,感觉架构师是技术职业发展的最高境界,在往上走就有管理职能了,如技术总监和CTO或研发总裁之类的头衔。

李维先生曾经有过一次演讲,讲到了一个架构师应该具备的特性:

核心软件技术。要攻克数据库设计问题,必须深入了解数据库的工作原理,而不是会写复杂的SQL会管理个备份会设计个表结构就算精通数据库。有人甚至把会用hibernate\structs\spring当作自己会核心软件技术。

产品特性。你学了那么多核心技术,到底要干吗?我一直在商业软件公司工作,没有在研究所工作过。我各种技术要做到的就是帮助企业软件生产,如何更快更省力气质量更好市场竞争力更强。我总是以这个原则来验证一项技术是否对于我的工作来说而实用。现在技术多如牛毛,在各个层次各个领域解决着各个环节的问题。如果不以解决自己工作中的问题为圆心,很容易陷于到大量学习却越来越茫然找不到出路的境地。

软件趋势。在企业管理软件开发领域,往往会见到这样的现象:不少开发人员精通客户业务需求,深入第一线做客户实施。他们学习技术也是为了解决现有手头的问题。尤其企业管理软件开发领域,技术要求并不高,而如果不了解客户需求,开发的软件实用性就不强,即使你的功能开发的又性能好又安全性好也没实用意义。所以,不少在企业管理软件开发领域工作多年的开发人员,形成了技术轻视观,甚至有种核心技术学习无用论的思想。但企业管理软件开发领域,经过十多年的发展,已经面临了不少挑战。但是很多人觉得那是大环境的事情,大环境不是一个人一个公司能改变能影响的。大环境变,咱们就跟着变。大环境不变,咱也照旧。但是,我已经经历过了很多时代,见证了很多遗憾,大环境发生改变了,自己却跟不上了。

时代、单机\局域网时代、互联网时代、移动增值时代。每一个时代都出了黑马,赚取的金钱突然高出传统模式数倍,而传统模式者还是在继续走传统模式,辛苦的赚钱,而且随着价格战的加剧,越来越辛苦,但还不思改变者并且还认为不可改变者大有人在。

创新技巧。我们往往会遇到这样的情况:要解决手头的问题,摆在面前的有N种技术方案。选择哪个都有缺点,综合来用又感觉牛刀杀鸡了。有时候,我们还会遇到另一种技术选择,未来的软件趋势一定是那样那样的,但现在还没有达到,现在的技术方案都是过渡期的,所以我们还要等。否则利用现在的过渡期技术,开发出来就被淘汰了。如果是这种以现状看技术的思路,不管技术发展到什么阶段,都有遗憾,都在向未来的未来过渡。所以,作为一个架构师,比别人厉害就厉害在,总是能把手里这些技术巧妙的利用,以解决自己的问题。当然,你想把你手中的技术能用活,你必然是理解这项技术的来龙去脉和这项技术的适用领域,还要深入理解这项技术的工作原理,还要清楚的认识到你要解决的问题领域,否则,你无法把你的技术和你要解决的问题结合在一起。

我对李维先生的这四点讲述颇为赞许。架构师总是游走在技术和业务之间,既要兼容软件历史不能割裂又要面向未来发展,所以我老把架构师称为走钢索的人。

很多人也想成为具有这样特性的架构师,但就是不知道该怎么走这条路。我就讲讲我的经历。

我刚出道的时候,很快成为公司技术出众的程序员。有人跟踪调试了一下午也找不到错误的,找我;有人不知道这个错误是怎么引起的,找我;有人不知道某个需求怎么实现代码方便,找我;有人要优化数据库性能,但怎么都速度提不上去,找我;有人要修改一段超复杂的代码,怎么也理不出来,N多判断和函数嵌套,脑袋思考不过来了,对代码的复杂度掌控不了了,找我;我就跟一个活雷锋一样,大家也好像觉得我就是个活字典,有技术问题找我总没有错。就这样,我在研发部有了很好的技术信任,也有了很好的人缘。

而架构师要做的工作,是许多人工作的基础。如果没有很好的技术信任,大家怎么敢把他们的工作搭建在你的基础之上。如果没有很好的人缘,大家怎么愿意把他们的工作搭建在你的基础之上。

就是由于我解决了很多业务开发的问题,我了解了很多业务开发的现实状况,并且还能提出简洁有效的解决方法,而且解决方法不死板不铁板一块能保持独立灵活通用性,给其他人的工作带来了很好的工作效率,所以领导才信任我能做好这一块,并且适合做这一职位。不是随随便便一个人深刻学习了核心技术,然后申请领导要当架构师。

其实,我开始做的也仅仅是公共代码员。但是,很快面临了一个尴尬。

简单的,虽然可能每个开发组都重复写同样类似的代码,但是由于简单,所以每个业务开发组都自己写了。

复杂的,往往业务开发组组长都认为这个功能是自己这个组的个性功能,所以还是自己写。

所以,只有人们解决不了来找我时,我才能上场。

这干坐着不是回事。我得自己想辙。

于是,我在忙“公益事务”做活雷锋之余,看到他们在扎堆开会我就主动去旁听。每次我都能提出很独到的见解。并且能帮助他们写公共抽象代码,能帮助他们提高不少工作效率。所以他们非常愿意让我旁听,并且听取我的意见。我也能很快写完让他们用。他们一用,发现果然好用,而且不用他们自己写代码了,功能实现的还非常巧妙公用,性能也好稳定性也好扩展性也好。到后来,每次开会都主动叫我。这样,我的工作就越来越多了。

随着各个业务组不同差异的需求都希望我来帮他们抽象出公共的,我就在思考我手里的这部分代码。我不能今天他们提一个我写一个。他们倒是轻松了,但我手里就好似一盘散沙一样。于是,我不断重构我的公共代码,架构体系框架就这样慢慢成型了。各种各样公共工具,调试工具、优化工具、动态设计工具,凡是能帮助业务开发组人员加快效率的,我都做了工具或写了公共函数DLL。尽量简单易用,不让他们觉得麻烦或不顺手。

过去,各个业务开发组过去是开发人员素质不齐,有人责任心强,有人随意;有人细心,有人粗心;有人理解客户业务深刻,有人理解不深刻。所以开发出来的质量良莠不齐。自从这样做了以后,各个组写的代码少,很多都是我写的公共代码。我的技术好,写的代码质量高,而且是公共的,有错误,一改,大家都没有问题了。所以我们整体的软件产品的产品质量、生产速度都提高了不少。

我发现,大家越找我,各种需求交织在一起,越复杂,我就越需要更深入的学习技术,深刻理解各种技术的差异性和适用领域,去思考各项技术的发展历史、未来趋势,并且自己做DEMO,看能不能更好的解决大家的问题。因此,我的技术能力也越来越高。如果我不去解决这些不去第一线想也想不到的客户需求,我根本就想像不出我某项技术还能这样用。

这就是我的螺旋上升之路。

我那天重翻上个月的《程序员》杂志,看到了我朋友周爱民写的一篇《做人、做事、做架构师-架构师能力模型解析》,他也提到四点,技术能力、业务能力、人际关系、个人内在素质。和我的情况很类似。

有一部分所谓的架构师,技术超深厚,框架堪比Spring之类,但自己一个人闷头写框架不断优化,力竭使用最先进的技术思想,希望把最豪华的设计模式融进去,希望把OSGi融进去,希望把AOP融进去,全无视那些想利用框架减轻自己工作量提高自己工作效率的应用功能开发同事。这是在用公司工资玩技术呢,还是在满足个人技术幻想呢,还是在实验呢?到底在干吗?价值在哪里?

还有的人不会推广自己的框架。不善言辞,就幻想着技术总监能够通过行政命令让大家必须用框架,能不自己写代码就不自己写代码,能交给框架做的就交给框架做。但技术总监号召完了,大家仍然我行我素,各自开发为政,让框架开发者很孤单。

还有的人也不会推广自己的框架,沉迷在自己的理想世界。好不容易技术总监召集大家让大家来听听框架如何应用,但自说自话,满口自己最得意的词汇,听得业务功能开发人员云山雾罩。大家问些问题,如这样的业务开发难题,框架怎么解决?于是,框架开发员就和业务开发员争论了起来。框架开发员觉得这根本就不能答应客户这种变态的需求,而业务开发员说这就是现状。框架开发员说你可以这样这样,业务开发员说这样太麻烦,框架开发员立刻还口这还麻烦?于是双方各执一词,框架也没推广成功。

我手底下有个框架开发员。他的技术渴望很强烈,为了技术难题攻克,可以不吃不睡。并且技术敏感度很强,学习也快。所以当时我感觉他是个程序员的料,就把他拉到我的手下。

但是有个问题,他写出的框架代码,在平时开发业务功能的时候挺麻烦。大家可能需要的是一把铁锹,但是他却给大家N根不同长度不同粗细不同材质的木棍,N个不同形状不同用途的铁锹头。大家会有N种组合。不仅导致他写代码老超任务期,而且也让使用人感觉没多大帮助。使用起来复杂,而且还得配置这个配置哪个,需要注意的地方太多。业务开发组的同事就不愿意用,还不如把代码自己直接写死了得了。

超期还会影响业务功能开发组的使用。本来人家是为了想加快自己的工作效率。你答应好这个星期给业务开发组提供一个功能,但你没有拿出来。就耽误人家进度。你多次拿不出来,人家业务开发组还不如自己开发一个呢,求人不如求己。

我最后警告他:如果你认为自己技术够牛,那么你必须证明你能很快做出来。如果你认为自己技术够牛,最好能牛到,只提供一个函数就解决了他们的问题。别这个代理类,那个聚合类,这个唯一实例类。最好连参数也没有,大家调用一下写一句代码就OK。甚至你做的好,大家都不用调用你的代码,你可以包含在基础框架中,你自己去判断什么时候什么应用需要执行这个动作。如果你认为自己技术够牛,那么在业务功能需求发生变化的时候,你能够保证接口不变的情况下还能适合变化,这才你够牛。别让业务开发组的人跟着你也得改他们自己的代码,那样的设计就很烂了。

小伙听了我的话。进度保证,代码接口简洁。

他说,你真高。我感觉现在我的技术比过去进展飞快。看来人不逼,是不会自己创新更好更快的方法的,老认为自己现有的方法已经不能优化了。我现在发现,很多我过去写的东西还可以做的更好,我准备在开发任务之余优化代码,但肯定保证不影响大家,接口还跟过去一样,我要重构一下。

我对小伙的成长感到欣慰。

但是,小伙还有一个没有逾越的鸿沟。这个问题不解决,我知道,他不会成为一个真正的独立的架构师。

我复查过他的代码,由于他对业务没有深刻理解,所以考虑了N多种情况,给自己以后的修改留下了后路。但也因此代码量大,开发周期长无法适应越来越短的客户需求响应时间,可阅读性不强,功能复杂,稳定性困难。但我从客户行业出发,很多情况他其实都是自己假想的,而且想错了。

我指出了他的问题。他问我该怎么学习业务,他又没有机会到客户一线去实施,也不接听客户电话,客户需求都是业务开发组的人跟他说的。

最了解客户业务的,是在一线做客户咨询、做客户实施的人员。其次是做客户定制化、客户服务支持的人员。最不了解客户的,就是架构组的人员。但恰恰要命的是,架构组的人员做的功能是大家的工作基础,如果基础设计错误,那传递的“牛鞭效应”破坏力就很大。所以,架构必须了解业务。

我了解业务的思路,和我了解技术是一个思路,都是来龙去脉法,研究一项事情的过去、现在、未来,以及和这件事情关联的其他事情,研究方法也如法炮制。

你要制造的是卡车还是轿车,你得明确好。你是要造100万的轿车,还是5万块钱的轿车,也得定好。你是要制造一辆可以自由改装的轿车呢,还是一辆只可以大致改装一些的轿车的,也得定好。这些疑问,都是和咱们面临的客户有关。而我们能面临什么层次的客户,和咱们公司的实力、品牌、组织规模、盈利要求有关。

你如果是一个小公司,想做百万大单只能做的一蹋糊涂。你如果是个大公司,你老去竞争那些5万块的小单,做一个赔一个。所以一个公司的出身就决定了它的竞争地位和它的目标群。我们要为这个目标群服务,所以我们就不要做一个百变金刚的架构。公司有公司的目标,公司招了你给你付工资,就是为了让你为目标客户群服务。如何更快更好更有质量的服务,就是公司的目标。我们就是为了帮助公司实现这个目标。

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体大小
适中 偏大 超大
保存设置
恢复默认
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
首 页 < 上一章 章节列表 下一章 > 尾 页