`
mabusyao
  • 浏览: 247671 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

项目沉思录 - 0

阅读更多

我常常会回忆起我职业生涯初期的两个项目: 其中一个庞大,复杂,项目开发人员数量多。项目中每个人似乎都很忙,可却又不完全清楚自己的职责。系统哪怕最边角处作出一点细微的变动,都有可能导致无法预计的结果。人员在不停地变换,每天都有人因为忍受不了无休止的加班而离职。而新员工仅仅经过简单的培训,就开始上岗编码,并被委以重任。项目经理热爱技术,曾经在开会时,花两个小时时间给整个团队讲关于数据库的新技术。同时项目进度一直很紧,开发人员根本没有时间对代码进行优化重构,匆忙上线之后,产品千疮百孔,开发团队整日忙于四处填补漏洞,焦头烂额。另一方面,测试团队非常年轻,对于bug的鉴定,完全依赖开发人员,在整个项目中没有发言权,他们的建议得不到项目经理的重视。毕竟,功能还没有完全实现,测试的重要性显然不够。这个项目最终在1.3版本时,因为越拖越久的各种问题无法解决,最终被公司cancel掉。

 

而另一个项目却是另一番景象,整个团队人数也很多,但却各司其职,每个人都知道自己该做什么。每周一上午的例会,sub-team leader会对团队工作进行汇报,团队内部专心于独立模块的开发,TL则负责各个团队之间的协调工作。子模块拥有丰富详尽的单元测试,只要点击一个按钮,你就知道自己作出的改动是否正确,并可以放心的继续前行。每天下午的集成测试,确保了每天的工作都被恰当的完成,不会有问题遗留到下一个工作日。 所有的代码开发工作,都必须经过代码审查委员会的review,以确保其质量。测试团队在整个项目中起到需求控制的作用,一切对于需求的理解,来自于他们。他们对每次功能更新或是重大改动,具有一票否决权。整个团队气氛轻松活泼,大家对自己的工作充满信心。

 

其实在当时,我只是略微的发现,在这两个团队中工作的感觉不太一样,却并不具备发现这两个项目的区别的能力。当我工作了很多年再回头看时,才发现,一个好的团队和一个差的团队之间的差别,是如此的巨大。记得曾经有人说过,一个好的开发人员和一个差的开发人员之间的效率可以相差近10倍。那么一个好的团队和一个差的团队之间的效率比,甚至可以达到100倍。在一个好的团队里,每个人都发挥了120%的作用。而同样的人,在另一个团队里面,只能发挥了20%的作用。

 

我过去曾经是团队中的Best Performer, 我在项目中的产出使我获得了很多个人的荣誉。我也读过许多关于软件工程的书,了解什么是迭代开发,敏捷宣言,并且熟悉在每一个阶段应有的标准团队活动及制品。我自信满满,认为在拥有了技术和软件工程的知识后,我已经具备了领导项目并带领团队走向成功的能力。

 

可惜事与愿违。

 

在我负责的项目中,团队成员来自天南海北,如同一盘散沙,大家各行其是。开发人员个性强烈,难以协调。每个人的项目背景不同,技术参差不齐,在项目中推行的最佳实践和方案遭到质疑,无法顺畅的执行下去。每天都有新的需求,来推翻旧的需求,项目进度并不如计划那般,总是不停在变。 项目最终不可避免的落入各种形式的陷阱。

 

于是我开始思考,为什么书上教的东西不起作用了? 究竟什么才是好的项目?

 

我认为有三点是最重要的,团队建设,软件工程,领导的执行力。

 

首先应该是团队建设,只有好的团队才能做出好的项目。而好的团队并不是最优秀的开发人员的堆砌,好的团队应该是建设出来的。 根据团队中人才的特点,扬长补短,因地制宜,才能建设出好团队。

 

其次就是软件工程,软件工程方法有很多,而做出选择的条件应该是最适合团队和项目特性的。而这一点,很多软件工程的书上并没有提出。

 

最后则是个人领导了,只有提升个人领导管理能力,才能帮助团队和项目成功。只有具备领导能力的优秀Leader,才能真正的选择最合适的团队建设方案及软件工程,并持之以恒的执行下去。

 

我会花一些时间,来记录我在这条道路上学习到的东西,并以此激励自己不断的前进。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics