zoukankan      html  css  js  c++  java
  • 带项目的一些体会以及合格的 Leader 应该具备什么特质?(转)

    许多项目有这样几种 Leader:

    1. 泛泛而谈型

      很多时候 Leader 仅仅给出一个大方向,提一些高屋建瓴的理论方向,事情还是交由普通开发人员去做。完了可能又会回头埋怨开发人员的水平不行,没有达到他的预期。最终软件产品磕磕畔畔发布,达不到预期,责任推到开发人员头上,Leader 又高屋建瓴祭出华丽的重构方案或二期方案。

    2. 纯技术型

      这样的 Leader 也有很多,可能来自于团队内部的大牛升职,也可能来自外部,他们有个共同的特点,爱“玩”技术。这样的 Leader 也许是具备了太多“工程师气质”,可能对于管理,人事,项目进度,客户关系等问题抱有抵触或并不擅长,信奉大型互联网公司自由的工作氛围,推崇“牛逼”的技术。我遇到过一个20个人的团队 Leader,公司的抱有极大期待的产品,要用 GO 语言去做。

    3. 纯管理型

      还有许多团队的 Leader,非技术出身,而是纯管理人员。他们中有许多管理能力没有问题,但是对于软件项目,却常常弄得团队疲于奔命。因为软件项目的人员工数很难精确衡量,技术难度(生产性)对于纯管理人员来说很难把握,导致不能把握项目,对于项目中的技术风险,时间风险不能有效控制。

    理想中的 Leader 应该至少具备以下特质:

    1. 技术实力过硬,但不爱玩技术。

      我相信这一点足以 Pass 掉 90% 人,矛盾吗?不矛盾,技术实力过硬,才足以担当软件项目的 Leader 把控全局,这一点毫无疑问。但是他必须有清晰的目标和大局观,知道自己到底在做什么,因为 做技术 和 做项目 是完全两件事。要做项目就不要玩技术,要玩技术请去研究机构。有许多 Leader 在承接新项目时,爱使用自己并不了解的新兴技术,只为在自己的简历中增添一笔,却对其中的风险认识严重不足,甚至最终效果与理想中差之甚远。

    2. 有能力降低复杂度,而不是增加复杂度。

      这是上一点的延伸,做为一个 Leader,不管是做产品还是做项目,技术不是目标,技术只是实现目标的过程,这个过程,越可靠,越容易,就意味着成本越低,风险越小。强悍的 Leader,能够把复杂的目标需求,高度分解,把复杂的开发技术,抽丝剥茧,带领开发团队一步一步稳扎稳打的向前。

      从企业做项目做产品的角度看,技术本身没有“牛逼”与“落后”之分,许多人对两年前的技术嗤之以鼻,对新兴概念趋之若鹜,这样的人,个人认为只能划拨到“软件开发爱好者”当中去。成熟的技术意味着可靠,学习成本低,方案成熟,最最重要的:风险低。

      在编码方面,有许多 Leader 推崇一些牛逼的写法,牛逼的设计方法,对一般10行代码完成的工作,缩减到2行,大加赞赏,如果是个人项目,自己开心就好,但是对于团队协作,商业项目,这是不可取的。所有的目标都应该放在:提高生产性,降低复杂度。二十年前,厉害的编码方法是为了节约存储成本,运行成本,但是当下,存储成本与运行成本与人力成本相比,已基本不值一提。别人多花半个小时去理解代码的成本,已经大大超过你节约的那几个字节的存储成本,还不包括经验不足的开发人员理解错误所造成的损失。

    3. 有一定的奉献精神,愿意带领大家成长

      做软件项目的 Leader 是要有很大奉献精神的,因为传统行业还有拜师这么一说,一日为师,终生为父,但是在 IT 业,还没看到过拜师这一说,开个玩笑。

      Leader 要有一个觉悟,苦心培养和教育开发团队,帮忙他们成长,但是懂得感激你,懂你好的人,不会太多。但是依然要去做这件事情,想方设法帮助团队成长,因为更重要的目标是把项目把产品做好。方法有很多,比如我们过去尝试过组织书友会,当时找的是《代码大全》这本书,每周两次,轮流讲解,也组织过PPT学习,公开Review等方式,都取得过比较好的效果。

    4. 强有力的控制欲与控制力

      我认为一个没有控制欲的人是难堪大任的,有了控制欲才能谈控制力。做为软件项目的 Leader,面对复杂的外部环境,内部环境,对控制能力的考验是极大的。

      外部环境的风险可能包括企业或客户较高的预期,极具挑战的时间节点,不确定的目标需求,做为 Leader ,必须有能力化解。

      内部环境的风险主要来自人员,如缺编,水平参差不齐的团队。

      曾经我带过一个基本由新手组成的团队,客户想要的软件产品却要达到较高的设计指标,并且有着严格的工期要求,此时,控制欲与控制力就发挥了基本的作用,将软件高度模块化,核心功能全部由我自己设计编写,组织团队到会议室看着投影仪教他们写插件,找一个有代表性的功能进行实现,对实现的方法,编码的风格做强制要求,让他们照抄,要求他们达到代码风格高度统一。对UI部分的所有细节都进行了高度的强制要求,专门做了一个UI DEMO,对UI上的元素布局方法,间距,边距等进行说明。每周若干次的项目例会以外,至少两次代码 Review,考虑到团队成员的实际水平,开始我会在 Review 时帮着他们重写,一行一行的推敲,告诉他们如何分析,如何设计,如何编写,几次以后再不合规,加班加点也必须重写。经过一段时间的磨合,大家逐渐进入状态,形成了较强的凝聚力与战斗力。

    5. 诚以待人

      虽然放到第5点,但这却是最最重要的一点,这一点做不到,以上所有都是一纸空文。

      做为一个团队 Leader,必须和团队成员坦诚相待,能够帮助大家的就用心帮助,对于自己也不是特别擅长的问题,不可以顾左右而言他,对团队成员进行打压,这一点亦有许多人做不到。此外,团队成员的工作情况,生活情况,都必须有基本的了解,家庭生活压力是否较大,是否有家人需要照顾,住的是远是近,公司给的待遇是否偏低,都必须在心里有一杆秤。至于怎么做,我想对于一个成年人来说,无需多言。

    6. 其它等等基本素养,不再赘述。

    这篇随笔想到哪里就写到了哪里,有些凌乱,错漏不全再所难免,欢迎批评指正。

    http://www.cnblogs.com/sheng_chao/p/4565529.html

  • 相关阅读:
    第三方驱动备份与还原
    Greenplum 解决 gpstop -u 指令报错
    yum安装(卸载)本地rpm包的方法(卸载本地安装的greenplum 5.19.rpm)
    Java JUC(java.util.concurrent工具包)
    netty 详解(八)基于 Netty 模拟实现 RPC
    netty 详解(七)netty 自定义协议解决 TCP 粘包和拆包
    netty 详解(六)netty 自定义编码解码器
    netty 详解(五)netty 使用 protobuf 序列化
    netty 详解(四)netty 开发 WebSocket 长连接程序
    netty 详解(三)netty 心跳检测机制案例
  • 原文地址:https://www.cnblogs.com/softidea/p/4567309.html
Copyright © 2011-2022 走看看