我常常会回忆起我职业生涯初期的两个项目: 其中一个庞大,复杂,项目开发人员数量多。项目中每个人似乎都很忙,可却又不完全清楚自己的职责。系统哪怕最边角处作出一点细微的变动,都有可能导致无法预计的结果。人员在不停地变换,每天都有人因为忍受不了无休止的加班而离职。而新员工仅仅经过简单的培训,就开始上岗编码,并被委以重任。项目经理热爱技术,曾经在开会时,花两个小时时间给整个团队讲关于数据库的新技术。同时项目进度一直很紧,开发人员根本没有时间对代码进行优化重构,匆忙上线之后,产品千疮百孔,开发团队整日忙于四处填补漏洞,焦头烂额。另一方面,测试团队非常年轻,对于bug的鉴定,完全依赖开发人员,在整个项目中没有发言权,他们的建议得不到项目经理的重视。毕竟,功能还没有完全实现,测试的重要性显然不够。这个项目最终在1.3版本时,因为越拖越久的各种问题无法解决,最终被公司cancel掉。
而另一个项目却是另一番景象,整个团队人数也很多,但却各司其职,每个人都知道自己该做什么。每周一上午的例会,sub-team leader会对团队工作进行汇报,团队内部专心于独立模块的开发,TL则负责各个团队之间的协调工作。子模块拥有丰富详尽的单元测试,只要点击一个按钮,你就知道自己作出的改动是否正确,并可以放心的继续前行。每天下午的集成测试,确保了每天的工作都被恰当的完成,不会有问题遗留到下一个工作日。 所有的代码开发工作,都必须经过代码审查委员会的review,以确保其质量。测试团队在整个项目中起到需求控制的作用,一切对于需求的理解,来自于他们。他们对每次功能更新或是重大改动,具有一票否决权。整个团队气氛轻松活泼,大家对自己的工作充满信心。
其实在当时,我只是略微的发现,在这两个团队中工作的感觉不太一样,却并不具备发现这两个项目的区别的能力。当我工作了很多年再回头看时,才发现,一个好的团队和一个差的团队之间的差别,是如此的巨大。记得曾经有人说过,一个好的开发人员和一个差的开发人员之间的效率可以相差近10倍。那么一个好的团队和一个差的团队之间的效率比,甚至可以达到100倍。在一个好的团队里,每个人都发挥了120%的作用。而同样的人,在另一个团队里面,只能发挥了20%的作用。
我过去曾经是团队中的Best Performer, 我在项目中的产出使我获得了很多个人的荣誉。我也读过许多关于软件工程的书,了解什么是迭代开发,敏捷宣言,并且熟悉在每一个阶段应有的标准团队活动及制品。我自信满满,认为在拥有了技术和软件工程的知识后,我已经具备了领导项目并带领团队走向成功的能力。
可惜事与愿违。
在我负责的项目中,团队成员来自天南海北,如同一盘散沙,大家各行其是。开发人员个性强烈,难以协调。每个人的项目背景不同,技术参差不齐,在项目中推行的最佳实践和方案遭到质疑,无法顺畅的执行下去。每天都有新的需求,来推翻旧的需求,项目进度并不如计划那般,总是不停在变。 项目最终不可避免的落入各种形式的陷阱。
于是我开始思考,为什么书上教的东西不起作用了? 究竟什么才是好的项目?
我认为有三点是最重要的,团队建设,软件工程,领导的执行力。
首先应该是团队建设,只有好的团队才能做出好的项目。而好的团队并不是最优秀的开发人员的堆砌,好的团队应该是建设出来的。 根据团队中人才的特点,扬长补短,因地制宜,才能建设出好团队。
其次就是软件工程,软件工程方法有很多,而做出选择的条件应该是最适合团队和项目特性的。而这一点,很多软件工程的书上并没有提出。
最后则是个人领导了,只有提升个人领导管理能力,才能帮助团队和项目成功。只有具备领导能力的优秀Leader,才能真正的选择最合适的团队建设方案及软件工程,并持之以恒的执行下去。
我会花一些时间,来记录我在这条道路上学习到的东西,并以此激励自己不断的前进。
分享到:
相关推荐
本书为软件工程领域权威人士之作,书中首先深入讲解了计划类型和计划过程,接着分析了项目团队建设和激励,然后描写了如何与经理共事,如何说服他们采用最佳实践,最后探讨了个人职责、承诺和过程。本书适合软件项目...
- 在《软件管理沉思录》的第一部分中,作者强调了软件产品质量对于整个项目的成功至关重要。随着软件在各行各业中的应用越来越广泛,其范围和重要性也在不断扩大。传统的软件测试方法已经无法完全满足现代软件开发...
《UI设计资料:交互设计沉思录》是UI设计领域内一部深具影响力的著作,由Jon Kolko编撰。此书不仅对UI设计师而言是一部宝典,也对所有与产品设计、用户体验、人机交互相关的从业者提供了宝贵的见解与思考。在深入...
在《C++ 沉思录》的随书源码中,读者可以期待看到如何在实际项目中运用C++的基础语法,例如类、对象、封装、继承、多态等面向对象编程的概念。此外,还可能涉及到模板、异常处理、STL(标准模板库)、文件I/O、内存...
【标题】:“PHP沉思录之三.pdf”可能是一本探讨PHP编程深入理解与实践的书籍或文档,属于IT技术领域,特别是Web开发方向。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在服务器端编程中占有...
### SQL沉思录:经典案例分析 #### 一、引言与背景介绍 《SQL沉思录》这本书通过丰富的案例和实践经验,深入浅出地探讨了SQL语言在实际应用过程中遇到的各种趣事和难题。作者不仅分享了许多有趣的SQL故事,还通过...
总的来说,《软件管理沉思录》提供了丰富的管理理论和实践经验,对于软件项目经理、团队领导者以及想要提升管理能力的软件工程师来说,是一本宝贵的参考书。通过理解和应用书中的原则,读者可以更好地管理项目,建立...
《Essential C++》、《Effective C++》和《C++沉思录》是C++编程领域的经典之作,为深入理解和高效使用C++语言提供了宝贵的指导。这些书籍涵盖了C++的基础知识、高级特性以及最佳实践,是每一个C++开发者的重要参考...
综上所述,《软件管理沉思录》不仅提供了软件质量管理的实用框架,还揭示了打造高效团队和领导力培养的智慧,对于IT行业从业者来说,这些知识对于提升项目成功率和团队整体效能具有深远指导意义。通过理解和实践书中...
总的来说,《软件管理沉思录》为读者提供了丰富的软件管理知识,从项目管理的细致步骤到团队协作的策略,再到个人能力的提升,全方位地指导读者在软件工程领域实现卓越的管理效果。通过学习这些知识,读者不仅可以...
根据提供的信息,我们可以推断出该文档主要涉及的是C++编程语言的学习资料——《C++沉思录》。虽然给出的部分内容主要是关于版权、转载规定以及联系方式等,并没有直接涉及技术内容,但我们仍然可以根据文档标题、...
通过阅读《设计模式沉思录》,读者不仅可以了解每种模式的定义、用途和实现方式,还能学习到如何在实际项目中选择和应用合适的模式,以及如何避免模式的滥用。书中的案例分析和实际示例将帮助读者将理论知识转化为...
《C++沉思录》是一本面向有一定C++编程经验的开发者所编写的书籍,它凝聚了作者10年的编程智慧和实践经验。该书旨在帮助读者深入理解C++语言的本质,提升编程技巧,从而达到精通C++程序设计的水平。 在C++的世界里...
首先,从《软件开发沉思录_IT168文库.pdf》中,我们可以深入探讨以下几个关键知识点: 1. **敏捷开发**:ThoughtWorks是敏捷开发的倡导者,书中可能会介绍敏捷方法如Scrum和Kanban的实践,强调迭代和适应变化的重要...
### C++的特点 C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅...对于想要深入了解这些主题的读者来说,《对C++的特点,类和继承,STL与泛型编程,库的设计等沉思录》无疑是一本非常有价值的参考书籍。
在实际操作中,例如NGM项目,通过针对现有产品的改进和技术创新,解决性能和扩展性问题,为客户提供下一代解决方案。这样的演进式创新同样至关重要,因为它直接回应了市场的需求。 【人,组织,流程对创新的影响】 ...
- 分析团队的技术、美术和产品能力,确定项目的可行性。 2. **研发前期**: - 研究竞争对手的产品,明确游戏的风格、类型和核心玩法。 - 构建游戏的整体框架。 - 向程序员提供所需的核心功能和技术支持需求。 3....
当遇到项目中缺乏思路的情况,【渗透的沉思】变得尤为重要。这不仅是指在渗透测试过程中进行深入思考,规划完整的渗透周期,更是在信息搜集的基础上预测可能遇到的问题。渗透测试并非单纯依赖工具或技巧,而是需要...