我常常会回忆起我职业生涯初期的两个项目: 其中一个庞大,复杂,项目开发人员数量多。项目中每个人似乎都很忙,可却又不完全清楚自己的职责。系统哪怕最边角处作出一点细微的变动,都有可能导致无法预计的结果。人员在不停地变换,每天都有人因为忍受不了无休止的加班而离职。而新员工仅仅经过简单的培训,就开始上岗编码,并被委以重任。项目经理热爱技术,曾经在开会时,花两个小时时间给整个团队讲关于数据库的新技术。同时项目进度一直很紧,开发人员根本没有时间对代码进行优化重构,匆忙上线之后,产品千疮百孔,开发团队整日忙于四处填补漏洞,焦头烂额。另一方面,测试团队非常年轻,对于bug的鉴定,完全依赖开发人员,在整个项目中没有发言权,他们的建议得不到项目经理的重视。毕竟,功能还没有完全实现,测试的重要性显然不够。这个项目最终在1.3版本时,因为越拖越久的各种问题无法解决,最终被公司cancel掉。
而另一个项目却是另一番景象,整个团队人数也很多,但却各司其职,每个人都知道自己该做什么。每周一上午的例会,sub-team leader会对团队工作进行汇报,团队内部专心于独立模块的开发,TL则负责各个团队之间的协调工作。子模块拥有丰富详尽的单元测试,只要点击一个按钮,你就知道自己作出的改动是否正确,并可以放心的继续前行。每天下午的集成测试,确保了每天的工作都被恰当的完成,不会有问题遗留到下一个工作日。 所有的代码开发工作,都必须经过代码审查委员会的review,以确保其质量。测试团队在整个项目中起到需求控制的作用,一切对于需求的理解,来自于他们。他们对每次功能更新或是重大改动,具有一票否决权。整个团队气氛轻松活泼,大家对自己的工作充满信心。
其实在当时,我只是略微的发现,在这两个团队中工作的感觉不太一样,却并不具备发现这两个项目的区别的能力。当我工作了很多年再回头看时,才发现,一个好的团队和一个差的团队之间的差别,是如此的巨大。记得曾经有人说过,一个好的开发人员和一个差的开发人员之间的效率可以相差近10倍。那么一个好的团队和一个差的团队之间的效率比,甚至可以达到100倍。在一个好的团队里,每个人都发挥了120%的作用。而同样的人,在另一个团队里面,只能发挥了20%的作用。
我过去曾经是团队中的Best Performer, 我在项目中的产出使我获得了很多个人的荣誉。我也读过许多关于软件工程的书,了解什么是迭代开发,敏捷宣言,并且熟悉在每一个阶段应有的标准团队活动及制品。我自信满满,认为在拥有了技术和软件工程的知识后,我已经具备了领导项目并带领团队走向成功的能力。
可惜事与愿违。
在我负责的项目中,团队成员来自天南海北,如同一盘散沙,大家各行其是。开发人员个性强烈,难以协调。每个人的项目背景不同,技术参差不齐,在项目中推行的最佳实践和方案遭到质疑,无法顺畅的执行下去。每天都有新的需求,来推翻旧的需求,项目进度并不如计划那般,总是不停在变。 项目最终不可避免的落入各种形式的陷阱。
于是我开始思考,为什么书上教的东西不起作用了? 究竟什么才是好的项目?
我认为有三点是最重要的,团队建设,软件工程,领导的执行力。
首先应该是团队建设,只有好的团队才能做出好的项目。而好的团队并不是最优秀的开发人员的堆砌,好的团队应该是建设出来的。 根据团队中人才的特点,扬长补短,因地制宜,才能建设出好团队。
其次就是软件工程,软件工程方法有很多,而做出选择的条件应该是最适合团队和项目特性的。而这一点,很多软件工程的书上并没有提出。
最后则是个人领导了,只有提升个人领导管理能力,才能帮助团队和项目成功。只有具备领导能力的优秀Leader,才能真正的选择最合适的团队建设方案及软件工程,并持之以恒的执行下去。
我会花一些时间,来记录我在这条道路上学习到的东西,并以此激励自己不断的前进。
分享到:
相关推荐
本书为软件工程领域权威人士之作,书中首先深入讲解了计划类型和计划过程,接着分析了项目团队建设和激励,然后描写了如何与经理共事,如何说服他们采用最佳实践,最后探讨了个人职责、承诺和过程。本书适合软件项目...
内容简介:本书为软件工程领域权威人士之作,书中首先深入讲解了计划类型和计划过程,接着分析了项目团队建设和激励,然后描写了如何与经理共事,如何说服他们采用最佳实践
内容简介:本书为软件工程领域权威人士之作,书中首先深入讲解了计划类型和计划过程,接着分析了项目团队建设和激励,然后描写了如何与经理共事,如何说服他们采用最佳实践
内容简介:在很多方面,管理一个大型的计算机编程项目和管理其它行业的大型工程很相似(比大多数程序员所认为 idea 还要相似);另一方面它又有差别(比大多数职业经
pbrpc RPC暂无木多网络库/React器雷迪斯雷迪斯高朗项目名称关键词注释版原地址博客go / x / time / rate限流器限速限流器组缓存缓存/一致性哈希facebookgo /注入依赖注入Go原始码和标准库更多文章更多文章欢迎关注...
第一条 完成项目需求调研后,避免项目后期出现超出合同范围的需求,项目初期需同用户就所调研的软件需求进行确认。 第二条 需求确认书由项目经理/第一负责人同用户代表签订,一式两份,签订 后交由部门经理统一保管...
在maxs.page上,我写了我喜欢的主题,概述了我正在从事的项目,并记录了我的想法和感受。 它纯属个人性质,不一定反映我的雇主,我的家人,我的社区或除我以外的任何人的观点。 在这里,我可以分享自己建立,编写或...
用沉思、深刻的谚语和从他的生活经历中吸取的教训来祝福你的聊天,这些都记录在他整个职业生涯的歌曲中。 注意:我有一个 AWS 免费套餐,并且为该机器人及其托管的 EC2 实例设置了限制警告。 根据每月的使用情况,...
家庭助理配置 撤退 这是我在英国曼彻斯特的快乐小地方。 我已经将这栋三居室的房屋改造成最令人难以置信的智能家居,它不仅对我有用,...现在,Wiki主要是我的笔记,沉思和空白页的转储。 该计划的目的是作为我的手册,
010 让空白单元格不显示为0 13 ◎函数屏幕提示的妙用 15 011 提示函数的语法结构 15 012 查看函数参数的意义 17 013 快速选定指定参数 17 014 快速获取函数的帮助信息 19 ◎处理数据计算的方法 20 015...
项目里有个功能,在应用内切换语言,之前上线了大半年,一直都是正常运行,但是最近这次发版以后,在国外的同事反馈(这里面还包括CEO… 尴尬),他们的华为手机上出现了中英文混乱的问题。本文记录了解决问题的过程...
这个是本人在东软培训时 做过的项目,希望能给后来人带来一些便利,因为项目较大,本人是占有一定的知识产权,所以收费 希望大家谅解。
1_软件需求说明书.doc