我相信,但凡做IT的童鞋,在自己的简历上,都会写一个,良好的团队精神。那么,我一直在思考,什么是团队精神呢?团队精神是怎么定义的呢?
第一次听到团队精神,是大学毕业的时候,和朋友一起去面试,让朋友帮我审简历的时候,他提醒我应该在简历上写好良好的团队精神,我追问一句:什么是团队精神?朋友的回答:”不知道,反正大家都有写,而且公司喜欢看。”于是乎,加了团队精神,至于什么是团队精神,不甚明了。
当然,现在也还是不甚明了,只是,最近通过一些观察,有几件小事,引发了我对团队精神的一些思考,现扒出来。先讲一下背景吧。
产品开发团队有一个技术领袖,我们称为老A。老A此人Web开发技术大牛,曾一个人搞定一个巨复杂的项目,所以在开发团队中声誉很高。
数据库团队负责人,我们称为老B。老B此人有一定的开发经历,在数据库方面又特别是在数据库设计方面巨牛,但与产品开发团队相处不是很好,据说产品开发团队在做公司文化墙的时候,做了一个葫芦娃,老B化身其中的蛇精。
运维团队负责人,我们称为老C。老C此人忠厚老实,曾任某游戏公司运维主管,刚到公司不久,大家应该知道的,小公司的开发流程中,发布一般都是不怎么规范的,一般服务器权限,开发团队人手一份自己开发,自己更新。而老C现在就是想把服务器规范起来,于是收回了开发人员的服务器权限。
背景交待完毕,正式开始故事吧。
又到了一个版本发布日,老A十分兴奋地把更新的文件用QQ发给老C。老C一脸不高兴: “我了个去,不是说了SVN吗?”老A一脸媚笑:“下次,下次。”老C开始变得义正严辞了:”下次个毛!不行,你都下次好几次了,每次都下次,这样下去,搞个毛线!每次这样拷来拷去,SVN上边都没有一个完整的版本。”老A看了看老C的表情,心想:”我了个去,为何要把一件简单的事,搞这么复杂?“于是老大不愿意地回到座位上,开始整理SVN。大约10分钟后,老A又到老C的办公桌面前,几乎是僵尸一般的语气:“SVN上边,下载更新,帮我发布上去。”老随口问了句:“内测版测了没?”老A满不在乎地说:“测过了!没问题。”于是老C更了SVN,随即又说到:“为毛没有readme?之前说了,版本更新要写readme的。”老A一下不干了:“我都在你的面前了,你还要个毛的ReadMe?我给你说怎么更,不就完了吗?为何如此娇情?”老C摇摇头,没说什么,就照着操作了。做完操作之后 ,老B与老C在喝水处碰到了,老B问老C:“嘿,兄弟,刚闹什么?”老C没好气地说:“还能闹什么?产品版本更新呗!老A真是,本身挺好的流程,为什么要打破流程呢?这次又不知道会更新几次呢!上次就是他娃发一个文件,其它开发人员又发一个发文件,都TM用QQ发的,后来,其它开发人员的文件把老A的文件覆盖,把老A改掉的BUG又更回来了,害老子被一顿臭骂,搞毛呀!”老B摇着头边走边说:“哎!看来咱同是天涯沦落人啊!”老C一脸不乐地回到座位。
大约10分钟后,老A又到老C面前,一脸媚笑:“不好意思,SVN下边再下个文件,更新上去,有个紧急Bug!”老C一更新SVN,毛了:“我了个擦!你不是说内测版测了的吗?为什么又是这个文件?”老A一阵敷衍:“本来在内测版测得好好的呀,我怎么知道一上正式版就萎了喃?”老C不说话了,事到如今,只能更新。
大约又10分钟后,老A到老B面前:“兄弟,这个版本的数据库更改还没有更改是不?”老B回句:“没有呀,你不是没让我更改吗?”老A恍然大悟:“我了个去,是说为什么前台没数据呢?”声音有点儿大,被老C听到了:“我靠!你不是说了,在内测版测试了吗?测个鸡毛啊?通过了,怎么会发现不了数据库还没更新呢?!”老A不说话了。于是,如此反复三次之后,本版本终于更新,颤颤悠悠上线完成,可时间也从下午4点,到了晚上8点。
基于上边老A与老C的交互,我觉得,老A应该是一个很喜欢大家一起做事的人,因为,本一个人可以按流程走通,并完成的事,他喜欢陪着老C一起完成。但,他与老B的交互证明了,我的看法太幼稚了。这里得先讲下我们公司的产品架构。我们的数据库按不同城市做了分服务器,分库处理,但,每个库上的操作又几乎是一样的,由于有这个几乎,所以我们在数据库之上做了一个数据描述层,人称数据访问接口,此接口上实现了一个类似于PowerDesigner的E-R的实体管理工具,所以,一旦涉及数据库的更改,要先改数据库,然后,要根据数据库的更改去更改数据库访问层的元数据。元数据管理在其它人手中,叫老E吧。于是,就发生了如下的故事。
某版本开发中,老A冲到老E座位上:“兄弟,把元数据管理界面帮我打开下,我加个几个实体。”由于老E也是开发,早已拜倒在老A的牛仔裤下,于是照做了。老B听到了,就说:“哟,老A,要改数据库哇?搞么子喃?”老A一脸不屑地说:“是呀,就是昨天给你说的那个XX业务。”老B:“哦,你不用加实体了,实体,我都加了,你直接用就行了,实体名是YY什么什么的。”老A:“真的?太好了。”于是老A看了一会儿:“我觉得,这个实体名不好,要不改成ZZZ?”老B:“不行哟,不要这么搞嘛,我昨天辛辛苦苦加了一下午。最好不要改。”老A:“毛,我看着不安逸,改个嘛。”老B想了一下:“那你改嘛,反正暂时也没人用。”谁知道,老B这次妥协,给这次版本造成了不小的影响。
该版本结束的时候了,该发布了,老A找到老B:“兄弟,更新一下这个版本的实体嘛。”老B于是乎同步了实体,并把所涉及到的数据库的更改在正式库上运行了,然后老B为了稳妥,在正式版的元数据中点击了刚同步实体的校验,这一校验,不得了!3个实体不存在,4个数据库字段不存在。当时老B就急了:“你改实体,怎么只改实体名?连关联的实体名都不改?另外,你加了字段的?加字段要给我们数据库说,不然,我们怎么懂你加的这个字段是什么东西?对应于什么样的业务?”老A争辩到:“上次,你让我改的嘛,我是只改了实体名,没改关联实体名,你这会改一下,不就完了吗?数据库字段是我加的,走那么多流程来干毛线?”老B:“我晕,数据访问接口,又不只你一个人用,你把实体搞乱了,别人怎么用?再说,加字段名,也不应该是这么加的呀,ISxxx这种命名,是不符合规范的呀。”老A一脸无奈:“反正,现在版本已经开发完了,要么,不发布,要么,你改数据库。反正,不发布到最后,有问题就说你是卡起的。”老B沉默了大概10分钟,无奈地对数据库进行了更改。但内心在说:“妈X的,说的我老子设计数据库,你妹的,结果呢?出了性能问题,又来吼我,这个黑锅,何时是个头啊?而且,这个实体已经在用了,我了个去,还要去找各相关人等说明此事,我操!猪一样的队友。”
基于以上故事,我又觉得,原来老A是位喜欢独立干事的人,因为,他在需要与其它团队交流的时候,没有去交流,而是自己独立将事情做完,到最后用生米煮成熟饭的结论来要挟其它团队成员就范。
那么,什么是团队精神?什么样的人是具有团队精神呢?什么样的表现是具有团队精神的表现呢?我懵懂了。