与傲慢的程序员工作只会让我们更加谦虚

一年多前我加入团队的时候,公司是一个有着超过25年的非常成功的行业软件和解决方案提供商,位于德国。行业软件的本身是基于Windows和OSX的客户端平台解决方案以及服务器接口,由于HTML5的崛起,公司决定要把行业软件的功能逐步转移到Web上,甚至是手机,平板等智能设备上。

这种行业软件开发的背景决定了团队的软件工程师,是优秀的桌面软件开发程序员,他们能够熟练的驾驭此类行业软件的开发,并且在自己的工作领域都有着丰富的经验和出色的作品。这些都是我开始和他们一起做开发的时候所没有设想的地方,通常而言,我养成了一个学习的习惯,就是从来不去任意裁断一个程序员的技术和能力,不论是非常优秀的程序员,还是刚开始学习的,我觉得对于任何人做一个裁断都是不公平的,因为无论是优秀还是刚开始学习,都同样会经过一个学习的过程,而我们不能因此而否定过程的重要,只是看现在的结果,所谓万事皆有可能,任何人都可能某一天达到专业,而同时,我也不会向任何人去学习,因为我总认为技术有着它专业的标准,所以只要专注如何达到专业就可以了,而且每个人都有自己的理解方式,我们对于世界本身而言,都是独一无二的,所以认为如果是向某个人学习,这其实是一种对于学习的误解。

这样的习惯想法有一个好处,就是不会因为时常在意谁的技术如何,从而影响自己的工作,但是也无形之中形成了一种我没有意识到的从我身上散发出来的“傲慢”,而当冲突因此产生的时候,才可能意识到自己的所谓”傲慢“态度所在。

与这个团队的工程师一起工作,从一开始就不是一个顺利的过程,当你尝试去了解你需要做的工作的时候,你看到的是一个todo列表,还有一些简简单单写下来的项目目标等等。由于习惯了对一个项目开发事先做计划的方式,所以从一开始就开始一个艰难而必须的改变,这种改变在行为上是很快速的,但是心理上并非如此,对于这种没有完善计划的方式的各种意见,沉积到心里,直到有一天爆发出来。

由于开发的继续,todo列表变的越来越丰富,而项目变的庞杂,而对于项目中的某些成员而言,由于他们对于我所做的工作的技术并不熟悉,所以他们会询问我一些问题,当他们询问这些问题的时候,我一开始就犯了一个严重的错误,因为我从来没有设想过他们的技术背景或者有意去了解一些,所以当他们问到我一些,我认为答案很显然的时候,我开始怀疑他们是不是在和我开玩笑,而当我去回答他们的问题的时候,我总是假设他们对于其中的某些前提以及有所了解,所以使用简单的快速的回答来结束对话,这样的回答必然是不能被他们理解,所以事情的结果比我想象的要糟糕许多,当我紧接着接到多个极速的”What"的提问的时候,我仍然没有意识到这一点,当接着又有若干个“Why”和粗鲁的态度出现的时候,我感到他们的恼怒,但是,那个时候,我确是一头雾水,感觉到不耐烦,并开始反问他们。

可想而知,事情的结果如何,幸运的是,团队的管理者是一个能够尝试去理解别人的人,经过若干次的摩擦之后,他发现了我的问题所在,并且尽可能的提醒我,并告诉我,我应该注意的地方,如我前面所提到的,任何事情的改变,对于自己来说行为上容易,但是心理上很难,特别是我没有意识到自己的问题所在的时候,当他告诉我,我是一个聪明的,有天份的,思维敏捷的程序员的时候,我错误的权当这是我的优点,尽管我其实并不这样认为,然后他告诉我说,我需要慢一点,听完别人的解说,然后开始回复的时候,我权当是因为他们的不知道,其实我听了一半就知道他们所要说明的问题了,所以想要节省时间,快速的解释给他们,并把这当成了他们的误解。

虽然这样的情况持续了一段时间,看似一切良好,而事情也没有再象原来所出现的那样激烈,但是这并不意味着这一切的结束,而是更加的糟糕。

在一次不愉快的争论之后,团队管理者告诉我,让我们双方向对方道歉,我开始思考问题的所在。

事情的经过非常的可笑,当团队的其他成员,开始学习并且使用新的技术的时候,我发现他们的代码和这种技术的最佳实践相差太远,我尽量的把我的工作范围限定,并把自己的代码和他们的隔离,从而保证他们可以写自己的代码,不至于影响到我的设计,但是当他们提交他们的代码到我负责的工作中的时候,我通常都会拒绝采用他们的代码,这带来了他们直接的质疑,为什么不采用他们的代码,是不是因为不够好,虽然我有所解释,但是问题仍然激化到,他们开始比较我写的代码和他们所写的代码的效率,这是那一次争论的开始,我知道通常而言程序员都是傲慢的,但是当问题到了需要比较谁写的代码好的地步,当时,我觉得这是一种侮辱,所以告诉他,如果他不满意,可以把项目分成了两个部分,我们各自工作在一个部分,事情也确实是这样,项目的代码分成了两部分,我们各自开始在自己的代码上工作,并且因此团队管理者了解到并参与,告诉我们需要向对方道歉。

此时我才停下来,思考整个事情的问题所在,并且思考自己的问题所在,当一个项目一开始的时候,管理者给予了我很多的信任,这种信任会产生一种误解,就是我认为我在负责这个项目,所以我开始负责计划每一部分,挑选合适的技术,并熟知可能的实现。这种对于责任的态度其实并没有什么不妥,问题在于,我固守了我的计划,这种执着的态度,把个人的角色和项目中个人所应该具有的角色混淆起来,在没有项目中个人应该具有的角色的明确定义之下,给自己定义了一种角色,并且一直错误的执着着。

在与项目其他成员的争论中,我也开始思考他们的技术背景,习惯以及态度,事实上,他们对于新的技术知道的很少,而且并没有全盘的计划,甚至于不确定每一个实现的可能,而最重要的是,他们是非常自负的程序员,所以如果告诉他们说,你不够专业,也许是对他们,在工作上而言,最大的侮辱,即便是不采用他们的代码,对于他们而言,也是非常难以理解的,而当他们开始边学边用的写代码,并看到自己的代码工作了的时候,他们觉得有着足够的能力来完成项目,这个时候,如果我是正面的回应他们,我们的对话一定是不愉快的,不论我多么的礼貌,事情总会向着不合理的方向发展,因为我持有对于他们的项目观点的否定,而且始终坚持,没有放弃。而对于我而言,所需要选择的恰恰是放弃,这个问题有时候很难理解,为什么我们需要放弃一个更好的方案而采用一个不够良好的呢?事情的本质就是,项目本身的存在,不是以个人的方式存在的,而我们互不相识,也不存在个人的积怨,即便是相识,也都是礼貌的交谈,所有矛盾所导致的,是因为项目的存在,而从审视自己的角度看,都是因为自己所坚持的那些观念,如我所想,其实万事都有其存在的方式,团队如此,公司如此,项目如此,并不是一个良好的计划就是最佳的解决之道,随其自然,放下心中所执着的才能化解矛盾本身。

当追溯到事情的前后,以我发现在这种冲突中,最好的办法,就是真正的改变自己,不是从行为上,而是从心里上,把所有自己的意见,看法,对于自己的行为的维护,以及各种埋藏在心里的东西都拿出来看一遍,不是去衡量和对比从而去判定自己的想法是如何的优秀,所以自己有着各种正当的理由,而是彻底的抛开所有这些成见,而直接面对问题的所在。

我发现,我所执着的这些其实都是可以放弃的,我可以放弃一个更加良好的方案,可以放弃我的意见,可以放弃我的态度,可以放弃我对于自己角色定义(当然这个定位是错的),然后尝试给自己一个新的定位,到底我应该在项目中起怎样的作用,并且把自己的思考详细的解决方案告诉团队的管理者。

幸运的是,团队的管理者看到我的信之后,采用了良好的策略解决了问题的所在,我知道我心里还是有很多无法抛开的所执着的观念,还没有发现,而这些观念对于个人而言,本没有错,但是对一个团队而言,一个不在那个角色上的成员而言,可能是大错,我尝试改变,不仅是行为上的,而首先是观念上的,正如我所感觉到的,和傲慢的程序员一起工作并不是件坏事,反而是一件好事,因为他们的存在,让我看到自己的“傲慢”的一面,从而变的更加谦虚,理解和学习到了更好的沟通方式。

(纯粹是为了个人的爱好才写英文部分,勿见怪)

A year ago, when I have recruited to the current team, the company which I was working for is a successful E-commerce business software solution provider in German. All their prevailing products are based on Desktop computing and Server side service interface definition, as HTML5 become one and key technology for today human life, the company decided to migrate their software and service gradually from Desktop to Web, even more on possible smart devices.

The background of the company, have indicated that those major software engineers working at the company, they are high skilled in Desktop software programming, probably they are expert on that field, certainly have rich experience on and excellent works. All these facts, I never even think about it when I started to work with them. Regularly I have developed an habit, which I will never judge anyone else, especially on their skill and knowledge, whatever they are experienced programmer, or just some one start learning something new, I think it's unfair to judge them.

We all know that we have been through some process to achieve today skills, and we may sometimes be proud of our skills for now, but we can't forget the journey of learning, is much more important than result. Everything is possible, one primary programmer of us could be professional one day anyway. As well, I don't really learn from others, and I know to learn technology, we have plenty of criteria and best practice there, on books or the internet, and there is a standard to be professional, which we should focus on. To learn from people, or copy their success, that maybe possible, but not the way I am looking for, as everyone is unique in the world, with different talent, different comprehensive mind, we can't exactly copy that, but rather to find our own way.

All these mind have been rooted there for a long time, and the best of them is I can work smoothly without disturbing from judging people, and the worst part is I wasn't aware that also could be a kind of "arrogant", and when things happened, I start to know what it is. (on writing)

转载于:https://my.oschina.net/hellomaya/blog/355241

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值