做了几年技术后,因为公司需要,带了一个小组,开始接触了些。现在总结下我犯的错误。
没有Fire Fast
- 团队里一个新人进来后,发现他持续犯低级错误,问一些简单的问题,并且给其他组员带来了麻烦。于是有了Fire他的想法,然而真正要去跟他谈的时候又觉得底气不足,决定和他先来一次面谈。面谈中发现这是每天一起开玩笑的朋友实在下不了手,又发现以前没有发现的优点,说不定还有改造的空间。就这样,我纠结了好几天,最后因为自己没有迟迟下决定,让他通过了试用期。接下来几个月,我每周都会因为他的不靠谱而感到失望,最终他还是被Fire掉了,但是在这几个月里,我让团队为他的不靠谱买单,最终也没有让他成长。反思这件事情,主要还是因为我害怕开错了人,害怕承担责任。在这件事情中,我学到的是,如果你一直在想要不要开掉一个人,那就开掉他。如果他真的能成长,他在别的公司一样会做得很好,但是现在做得不好,不能让公司和团队其他成员为他买单。另外,做为一个管理者,要学会做决定,尽管这决定不一定是最好的决定。
设计的架构没有考虑到团队的需求和团队成员的能力。
- 我的团队负责几个Android APP的开发, 做为一个对技术有热情的人,对于各种开源框架,新奇技术接触的很多。很自然的会希望把接触到的这些好的框架和支持库给引入到项目中。同时觉得这也是提升团队成员水平的比较好的方法。而其他团队成员都是刚毕业不久,当他们看到我刚刚搭建起来的框架时,他们是很兴奋可以接触到这么多新技术的。然而,之后我却发现他们在错误的使用各个框架,遇到的问题也曾出不穷。究其原因,是团队成员的学习能力还没有足够强,即使是一个学习能力足够强的人,每次也应该只能学习一个知识点,忽然给他们大量的未知知识给他们,他们只能感觉到迷茫。而因为他们对于框架没有足够的了解,之后写出来的代码也难以维护。当发现这些问题时候,没有反思自己的做法,反而是觉得公司没有招到足够优秀的人。通过反思这件事情,我觉得架构应该符合当前成员的能力,然后一边提升团队能力,一边提升软件架构。同时足够优秀并不是指最优秀的,而是足够完成当前工作的,同时要考虑到招聘的金钱以及时间成本等方面的平衡。
缺少沟通
- 与人沟通和与机器沟通是不同的。对于机器来说,你输入一个指令,总是能得到同一个结果。但是人是不同的,每个人的性格不同,理解能力不同,态度也不同。而我却在开始时用计算机的方式和他们聊天,告诉他们要做这个,不要做那个,要在某某时间完成,结果往往没有得到期待的结果,很多时候反而受到他们的反弹,被他们方案。与团队成员的沟通要区别不同的人。让他们去研究一个新的技术点,有技术追求的人会很兴奋,对技术不敏感的人却会觉得是折磨。批评他们的错误,迟钝的人当作耳边风,敏感的人说不定已经觉得被你迫害了。有的人会很主动的说出想法,有的人却要你跟他建立起感情,在温馨的氛围下再对你吐露心声。因此,耐心地和团队成员相处,观其行,听其言,个性化,人性化的沟通很有必要。另外,人的不确定性也带来了项目的不确定性,你可以打开一个计算机处理程序后就让他自己运行完毕,却不能定下计划后就等待执行完成了,要不断地观察,不断地倾听,不断地调整。
原文地址:juude.net
原文 http://juude.net/manageerror/