许多项目有这样几种 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

带项目的一些体会以及合格的 Leader 应该具备什么特质?(转)的更多相关文章

  1. Tomcat增加Context配置不带项目名访问导致启动的时候项目加载两次

    eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/.现在需要改成这样访问http://localhost.修 ...

  2. 2."结对项目"的心得体会

    上个星期,老师给我们布置了个课堂小作业:   某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做.二柱立马就想到写一个小程序来做这件事. 这个事情可以用很 ...

  3. 抒发一下这些天用django做web项目的一些体会

    最近接触了一段时间的python,觉得python写脚本还是挺方便的,做一个简单的桌面应用也很nice,但是随着深入,对python做功能复杂的web项目我彻底死心了​,每个环节都是一堆的坑,部署阶段 ...

  4. 在Intellij IDEA 下通过Maven新建项目的一些体会

    因为习惯的原因,一直在用jetbrain的IDE,最近的在开发javaEE项目,并尝试用maven来管理依赖,那这中间又出了什么让我不得不写下来的呢 一.先来看看在IDEA下怎么用maven建项目 1 ...

  5. HNU_小中初数学学习软件(可视化编程)_结对项目总结与体会

    前言 经过将近一周的共同努力,HnuLyx和我终于完成了项目,期间心酸苦辣,受益良多,请允许我一一道来. 问题(需求要求的

  6. C#生成带项目编号的Word段落

    using System; using Microsoft.Office.Interop.Word; using Word = Microsoft.Office.Interop.Word; names ...

  7. 详解一名合格PHP工程师应该具备的基本知识结构

    在学习php时的一些小沉淀,供童鞋们欣赏哈.. 1.掌握语言本身的语法,熟悉常用类库是必须的: 2.面向对象最为当今的主流也是必须掌握的: 3.常用设计模式必须掌握,设计模式是前辈的总结.经验: 4. ...

  8. 带UI 的小初高数学学习系统 —结对编程项目总结

    一. 项目综述 本系统是基于QT Creator 4.3.0开发环境,开发语言C++,能够实现用户注册,发送短信验证码,用户登陆,用户选择题目类型和数量,显示用户本次答题基本功能.支持对用户账号查重, ...

  9. 采用apicloud开发移动端项目心得体会

    作为第一批吃螃蟹的,来说一说apicloud做移动端项目的一些体会. 刚开始接到项目,需要移动端开发两个项目,公司人员里面没有一个会原生android或者ios开发的,目前能出的技术也就是web,后端 ...

随机推荐

  1. wwwtyro/cellophane

    wwwtyro/cellophane A dead simple web terminal that gets all of the boilerplate out of the way and le ...

  2. 架设FLASH视频流server心得

    什么样的情况下才使用FMS?有下面几种情形的时候,你可能须要用到FMS 1.须要通过Flash Player 播放视频,而视频是以流的方式,而不是http渐进式下载的方式进行播放的时候.渐进式下载就是 ...

  3. 无法删除 C_PAN.GHO: 访问被拒绝 解决办法

    右击“C-PAN.GHO",属性->安全(如果没有安全选项卡,可以在工具->文件夹选项->查看中将”使用简单头文件共享“前的对勾去掉),这时”添加“和”删除“按钮应该是不可 ...

  4. SESC中的热量模拟器

    SESC安装见前文 配置sesc支持热量模拟 ../sesc/configure --enable-power --enable-therm make 遇到问题: 1 找不到 liblevmar.a ...

  5. Linux mysql 数据库忘记root密码

    1.修改MySQL的登录设置: # vi /etc/my.cnf 1在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi. 2.重新启动mysqld # /etc/i ...

  6. 推荐一套.NET文档处理组件Spire.Office

    原文:推荐一套.NET文档处理组件Spire.Office 以前的项目中用到一点Word简单处理的功能(文字替换和转PDF格式),当时使用的是一套COM组件,必须在服务器上安装office环境.最近考 ...

  7. 转:svn命令行操作

    原文:http://zhumeng8337797.blog.163.com/blog/static/10076891420115218821912/SVN命令行 -- ::| 分类: CVS |字号 ...

  8. 【leetcode】Candy(python)

    题目要求的比它的邻居比自己奖励,因此,我们有最少一个多的.所有我们可以找到所有的坑,凹坑例如,存在以下三种情况. 找到全部的凹点后,我们就能够从凹点处開始向左右两个方向依次查找递增序列.当中每一个高的 ...

  9. Linux渗透+SSH内网转发

    http://www.jb51.net/hack/58514.html http://blog.chinaunix.net/uid-756931-id-353243.html http://blog. ...

  10. cocos2d-x物业现场

    pushScene()和popScene()用法: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTYyNjY3MTc=/font/5a6L5L2 ...