Why My Team Failed

我过去常对有些国家的人有着这样的印象,他们在工作上有着出色的表现,其实并非完全如此。当你有机会和他们一起工作的时候,你就会发现。

在一年多的和一个团队工作中,我一直在观察他们的运作方式,我发现一个团队很容易崩溃,如果没有一个有经验的,负责任的管理者,或者是不幸有一个不负责任的管理者。特别是当他们正在开发新的产品的时候,而这个时候,他们所现有的成员对于新的技能一无所知。

当团队的管理者开始为团队构建而招摹新的工作成员的时候,所招摹的对象通常是有着良好经验的程序员,在开发的第一阶段,这些程序员会贡献出他们对于项目的看法,以及为新的产品构建计划,虽然这个时候团队的管理者颇为兴奋的了解到这些新的技术和可能性,但是通常他们会犯一个错误,就是给予这些新的成员过多的依赖,从而让新的成员认为他们在为这个项目负责,更糟糕的是,他们可能认为这个应用就是他们所计划的那样。

当开发开始的时候,团队原来的人员也会加入到开发的团队中来,虽然他们对于这种新的技术一无所知,但是,对于他们而言,边学习便开发已经成为了习惯,项目的管理者期待着事情像想象中的那样顺利,在预定的时间得到预定的结果,但是,他忘记了给予团队的成员他们的明确的职责分配,谁应该工作在那一部分的,谁应该管理那一部分的代码,结果是,事情向着无法预期的方向发展,当新的成员开始检查代码的时候,他们发现这些老的成员所写的代码,并没有按照预期他们计划的那样,所以他们开始觉得有必要和老的成员协商,交谈,并不断的解释,试图告诉他们,这个应用应该是怎样的。

看上去他们是在尝试帮助,实际上他们也自认为是在帮助,并且确实是想要让团队的成员了解这些新的技术以及专业的代码组织方式,但是这是一个错误。因为他们忘记了,这些成员其实已经在所在的公司工作了5年或者更长的时间,他们已经习惯了他们自己的那种工作方式,所以你不可能让他们去尝试改变,并且不要期待他们会听你的。

而当这发生之后,事情就会变得很难看,我们无法否认通常而言,程序员是比较傲慢的群体,这种傲慢甚至于好像一种职业疾病,不管是这个程序员知道或者不知道这些新的技能,他们已经工作了多年,有着丰富的经验和产品开发的经历,所以对于那些在他们面前唠叨不停的新成员而言,是有点对他们专业的侮辱。所以一开始,他们尝试回避对话,然后他们可能会粗鲁的停止对话,这个时候新成员才意识到问题所在。

当到了这个阶段的时候,是应该管理者显示其魅力的时候了,如果说一个项目管理者只是纠结于矛盾中的个人情节,比如不愉快的对话,或者是粗鲁的尖锐的措辞,并只是尝试解决这样的问题,他就会失败。以为他没有回顾到问题的所在,并且没有对于问题有着很好的思考,显然管理者不应该只是期待项目赶快完成,产品开发出来,然后去卖钱,而是关注开发的问题所在。

个人认为,其实解决方法是,对于新的成员而言,尽管他们定义了产品,并且有着丰富的经验,专业的代码能力,熟知这些新的技术,但是要让他们知道,他们并不主导整个开发,对于团队而言,首先应该挑选一个开发计划,然后不管这个开发计划如何,新的成员都应该按照开发计划,也许这个开发计划并不是他们所预想的那样。

对于原来的成员,他们在公司工作了很长的时间,他们应该负责建立计划,尽管他们对于新的技术知道的很少,或者自以为知道的很多,也不管从专业的角度看,他们的计划可能并不怎样,也可能看上去愚蠢,但是所有的成员应该按照其去做,因为一旦计划选定,其产品就已经确定。并不是所有的公司在一开始都值得拥有一个好的产品,不过他们都在成长中,对于公司而言,最重要的是,维持团队的稳定,从而维护其产品和业务。

一个团队很容易失败,因为如果管理者不看问题所在,只是纠结于其中的个人情节,因为所有的这些个人情节,不愉快的事情本身都不是原因,原因始终都是由于他的计划不周全,或者是他所犯的错误,而他常常否认的那种。

I usually got impression from different source about people in some other countries, and they are superior at their work, that‘s not all true. When you get to work with some of them, you will know what they are...

Being yearly working with a team and observing how it works, I found a team is easily to collapse if there is no experienced and responsible manager, or there is an irresponsible manager. Especially when they are developing new product and all those previous member doesn‘t know it at all.

When the team manager to construct the team by recruit new members, those new members usually had good experiences on their works, and from the first phrase of development, those new members will contribute their idea and build the plan for the new product, at this moment, team manager usually made a mistake, to give those new members too much credits, so they are thinking they are responsible for the project, and the product should be the app what they have planned.

As the development begin, those previous team members who don‘t know about those new skills well also join in, and team manager expected that things going as well as what he expected, he didn‘t clearly let all members knew about their position, who will be in charge of what part of the work, so things start to run into an unexpected way, those new members who think they have planned the app, they think the app they are working on, should always follow their plan and when they find that those previous team members who didn‘t do it, they begin to negotiate with them, try to discuss with them, explain to them, as they think they are helping.

But they are wrong, indeed in their opinion, they are really trying to help others to understand the project well, to know how to be more professional in new skills, but they forgot all those previous members, most of them have been working at the company for about more than five years, and commonly those people have get used to the way they are working with their team, and they won‘t change and listen to other members.

When it happened, things will go ugly, we all can‘t deny a fact that programmers usually arrogant, it‘s like a decease rooted in programmers mind, whatever they know or don‘t know the new skill, if they have many years of experiences on programming, they will regard that those programmers who are telling them how to do, a bit insulting, at first they just ignore the conversation, and later they will shutdown it, this time, those new members start realize what happened.

Usually when a team go into this kind situation, it‘s time for team manager to show his charming power to handle it, if a team manager only focus on those personal issues like unpleasant conversation, being rude and sharp words, he will be failed, because he didn‘t track back to the real problem, and take a reasonable thinking about it, team manager should not be the guy who only push their members to be working efficiently, get the work done, and get the money earned, but see the problem of development.

Actually the solution is, for new members, even though they knew all about this new app, and they probably have a thorough thinking and very good plan on it, professional and writing beautiful code on it, but they should know they are not in charge of the development, and the whole team should pick a plan first, and to work on that PLAN whatever it was or not their plan, even its not good enough, they should follow that.

Those previous members, who have been working at the company for years, they should be responsible and making the PLAN, even its bad, awkward, or sometimes stupid from professional view, but all team members should stick on it, the way the app will be, is the way the team chose, not all company deserve a great app at beginning, but they are growing up, for the company, the most important part is, to sustain the stable of team, and maintain their business easily and well.

A Team will be Failed, if the team manager didn‘t look into the real problem of the team, to discard all those personal issues, because all of them, are not the reason, the reason always happened on his PLAN, and his mistakes, and usually what he denied.

时间: 2024-10-21 00:21:49

Why My Team Failed的相关文章

Failed to load slave replication state from table mysql.gtid_slave_pos: 1146: Table 'mysql.gtid_slave_pos' doesn't exist

http://anothermysqldba.blogspot.com/2013/06/mariadb-1003-alpha-install-on-fedora-17.html MariaDB 10.0.3 Alpha install on Fedora 17 x86_64 MariaDB 10.0.3 Alphawas just released. So for those of you that recall my previous MariaDB 5.5 install post, I d

Failed to allocate memory: 8

Failed to allocate memory: 8This application has requested the Runtime to terminate it in an unusual way.Please contact the application's support team for more information. 解决办法直接在新建模拟器的时候把它的内存RAM设置在1024以下就可以,最好设置成512 如图:

VS 2017 Git failed with a fatal error的解决办法

前几天,满怀欣喜的从VS2015更新到了VS2017,经过这几天的试用,整体来说感觉还是挺不错的.昨天推送项目到远程服务器的时候,发现出现了推送失败的错误,错误如图: 按照提示,我看到输出窗口的输入内容如下: 当时以为更换了VS导致了ssh key丢失,重新输入密码验证一下就可以了,于是开始想办法找输入密码的地方. 经过一番折腾寻找,发现点击操作的时候,出现如下菜单: 这里我们选择"打开命令提示符"菜单,打开了命令提示符,输入提交到远程命令: git push origin maste

Team Foundation Server 2013 with Update 3 Install LOG

[Info   @10:14:58.155] ====================================================================[Info   @10:14:58.163] Team Foundation Server Administration Log[Info   @10:14:58.175] Version  : 12.0.30723.0[Info   @10:14:58.175] DateTime : 10/03/2014 18:1

android开发打包签名出现-failed to export application的解决思路

在app发布到应用平台的时候需要打包签名,这个时候会遇到一些头疼的事情,比如打包失败会出现failed to export application错误等.我这里就给大家讲一下我的深刻体会.本文为什么说是思路而不是解决方法呢?因为一千个读者就有一千个哈姆雷特,不同的adt环境会出现各种奇葩的问题,所以我不敢保证解决所有打包失败的问题,之体提供给大家一种解决问题的思路.仅供参考. 1.查看错误详情,根据详情搜索错误码的原因 打包时候出现 failed to export application 不要

Linux网络管理(7)centos7中team组的实现

Linux网络管理(7)centos7中team组的实现 在linux 中,centos7之前都是使用bond机制来实现多网络绑定同一个IP地址,来对网络提供访问,并按不同的模式来负载均衡或者轮回接替管理处理数据.而到了contos7之后,提供了一种强大的工具,nmcli工具命令,使用此工具,将会根据命令参数的配置来重新生成特定的配置文件来供网络接口使用,方便而又灵活.在linux不再使用 bond机制定义,而是使用网路组 team 机制,把 team组当作一个设备.下面通过案例说. 主备模式t

iOS"Request failed: unacceptable content-type: text/html"

以前用的好端端的接口,今天访问居然出错了,但是再用浏览器测试,发现可以正常返回数据,甚是奇怪啊. 下面是错误信息: 获取服务器响应出错 error=ErrorDomain=com.alamofire.error.serialization.response Code=-1016"Request failed: unacceptable content-type: text/html"UserInfo=0x7fdfd8729680{com.alamofire.serialization.

Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8

过程中,增大对应AVD的内存为2G后,结果无法启动AVD了: [2012-12-18 18:01:38 – Emulator] Failed to allocate memory: 8 [2012-12-18 18:01:38 – Emulator] [2012-12-18 18:01:38 – Emulator] This application has requested the Runtime to terminate it in an unusual way. [2012-12-18 1

对数据集“dsArea”执行查询失败。 (rsErrorExecutingCommand),Query execution failed for dataset 'dsArea'. (rsErrorExecutingCommand),Manually process the TFS data warehouse and analysis services cube

错误提示: 处理报表时出错. (rsProcessingAborted)对数据集“dsArea”执行查询失败. (rsErrorExecutingCommand)Team System 多维数据集或者不存在,或者未经处理. 解决方法: Manually process the TFS data warehouse and analysis services cube When you need the freshest data in your reports, when errors have