对于软件项目团队,人员的技巧和经验可能对生产率产生高达10倍的影响。在《人月神话》中曾提到对于一个100人的团队,最好是只保留25个经验丰富的项目经理进行开发,而解散其它成员。当实际上一个软件团队不可能要求每个人都经验丰富,经过充分的培训和智商奇高,都是牛人的团队往往更容易出现混乱。因此 需要谨慎实施只雇佣优秀开发人员的想法,一个更好的方式是多考虑如何去建设一个有战斗力的团队或者是如何真正去保证团队的有效性。
平衡和工作匹配是软件项目团队的重要方面。只要失去了平衡,团队就会变得脆弱。正如一个成功的橄榄球队,进攻,防守,教练,替补,传球等各种角色和活动都不可少,伟大的球队需要在每个位置都有关键球员,但是球队中不可能每个人都是球星。因此球员应该更多关注如何赢得比赛胜利,而不是单纯的个人荣誉。
团队合作远比个人总和重要,因此项目经理需要真正做到人尽其材,每个人才都能够真正找到适合自己的位置,这样人才的配置才能达到一个平衡状态。对于如何为软件项目提供人员时候,波姆提出以下五项原则:
1.顶尖人才原则-使用更好和更少的人员
对大多数项目都有一个自然合适的团队规模,偏差太大都不利于发挥团队的能动性。另外团队中不可避免的有辅助性工作要做,必须要为软件项目团队配置如《人月神话》外科手术队伍中谈及的一些秘书和辅助人员,但是我们需要搞清楚的是核心团队的人数要尽可能的少,以保证高度的概念完整性。
2.工作匹配原则-把任务分给技能和动力都匹配的人
对软件团队,辨别难以琢磨的个人技能并做到最优分配是相当困难的,而且项目经理的个人主观意愿也可能使分配复杂化。在软件项目团队中最胜任编码的程序员总是希望能够得到提升上升为设计师和经理,由于帕金森定律导致的金字塔上升现象在软件项目团队更加明显。我们不能承认编码工作的重要性,也不能给高效编码人员更高的薪水,好的编码人员都在朝上走,在用的编码人员都很难是经验丰富的高效率人员。人才不能发挥所长,对工程师和管理者来讲是一个双重的打击。
3.职业发展原则-帮助员工的自我实现并取得好成绩
新员工刚进入团队中的时候职业发展原则是很有效的,可以帮助员工技能的完善和自我价值实现。当对于老员工和技能达到一定层次的员工,这点上往往是困难的,组织或团队不可能一直产生很多新的东西或应用新的技术,团队中也不可能一直都存在职业发展的机会。在组织中,组织的培训受益最大的往往是中等或中等以下的员工,而团队的培训往往更是战术性的,关注的是结束后就能马上应用的内容,而不会太多关注和培训业界新的知识和技术。
4.群组平衡原则-选择与其他人互为补充和协调一致的人员
在软件项目中我们不仅仅是关注项目的进度,质量,范围和成本四要素的平衡。还需要关注人员角色分工的平衡,冒险和保守的平衡,外部和内部的平衡,纪律和灵活性间的平衡等等。任何一个方面失去平衡,项目都可能处于危险中。
5.逐步淘汰原则-一个不称职的人留在组织内对谁都没有好处
不称职可以给你提供寻找更好员工或四使用更少员工的理由,不称职会阻碍其它组员自我实现能力,并且在某些方面会破坏团队内的平衡,给团队其它成员造成不称职也可以在团队中生存和获取报酬的负面影响。
软件开发是一项集体运动,项目经理必须培养一种团队合作,而不是单纯的追求个人成功的氛围。群组平衡和工作匹配应该是最主要的目标,因为顶尖人才原则和逐步淘汰原则必须在群组平衡的前提下实施。另外职业发展原则不可以过分强调,因为过分强调这一原则而忽视了团队成功的个人或组织在竞争激励的市场上不会长久。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhijie435/archive/2008/12/10/3488388.aspx
分享到:
相关推荐
《软件开发的201个原则》是一本全面阐述软件开发过程中应当遵循的原则性指导书籍。该书内容丰富,覆盖了从项目启动到交付的各个阶段,旨在帮助软件开发团队提高产品质量、优化开发流程,并最终实现项目的成功交付。 ...
软件开发团队中的沟通需要遵循一定的原则,包括明确性原则、尊重原则、开放原则、灵活原则等。明确性原则要求团队成员在沟通过程中保持明确、具体、清晰的表达方式。尊重原则要求团队成员相互尊重,尊重彼此的意见和...
在原则方面,办法遵循了四个核心原则:战略导向性,强调考核与公司战略的一致性;可操作性和低成本,确保考核过程简单高效且信息获取成本低;整体与个人相结合,平衡团队与个人的贡献;结果可运用,将考核结果作为...
因此,测试用例需要不断更新和扩展,以保持其有效性。 6、**测试活动依赖于测试内容**:测试策略和方法应根据软件的特性、环境和风险进行定制。不同的软件系统需要不同的测试方法和技术。 7、**没有失效不代表系统...
软件工程是一种应用计算机科学理论和技术原理的方法,旨在有效地管理软件开发过程中的复杂性和不确定性。它覆盖了软件从概念化到最终交付的所有阶段,强调在每个阶段都实施严格的管理控制和质量保证措施。 **软件...
这十大原则提供了软件测试工作的指导框架,通过遵循这些原则,测试团队能够更有效地发现和修复问题,确保软件产品的质量和用户体验。在实际操作中,这些原则需要结合具体项目和团队情况进行灵活应用,以达到最佳的...
5. **团队协作**:敏捷开发强调团队合作,书中也涉及了团队沟通、协作和自我组织的策略,以及如何通过每日站立会议、回顾会议和规划会议来增强团队的协同效率。 6. **持续集成与自动化**:Martin倡导使用持续集成...
1. **敏捷原则**:包括“尽早并持续交付有价值的软件”、“欢迎改变需求,即使在开发的后期”等12个核心原则,这些原则指导着敏捷团队的行为和决策。 2. **设计模式**:书中深入讲解了面向对象设计中的经典设计模式...
它强调快速响应需求变化,提高团队协作效率,重视软件的可维护性和质量。敏捷宣言是其核心,包括四个价值观:个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,以及响应变化高于遵循...
敏捷软件开发是现代软件工程领域的一项重要实践,它倡导快速迭代、持续集成和...通过将敏捷原则、模式与实践结合起来,可以有效提升软件开发的效率和质量,使开发团队能够更快地响应市场变化,最终实现产品的成功交付。
软件架构是软件开发中一个至关重要的领域,它不仅规定了技术层面的互动,还涉及到团队与个人之间的互动。...通过学习和运用本书中的原则和方法,读者可以更好地理解软件架构的重要性和如何在实际工作中有效地运用它。
敏捷宣言提出的12条原则支撑着上述核心价值,包括对个体和交互的重视、软件功能的频繁交付、对变化的开放性和欢迎态度以及对优秀团队和有效工作的认可。 3. 敏捷开发的模式: 敏捷开发模式,又被称为实践,是指一...
微软解决方案框架(MSF)是一种综合性的方法论,旨在帮助组织高效地管理和实施软件开发项目。...通过理解和应用MSF的基本原则和团队模型,项目团队可以更有效地管理软件开发过程,提高项目成功率。
《Building Software Teams》一书由Joost Visser撰写,旨在为软件开发团队的领导者提供一系列实用的指导原则和方法,帮助他们更有效地管理团队和项目。 #### 一、软件开发团队的重要性 软件开发团队是实现软件产品...
- **测试用例设计:** 测试用例的设计直接影响测试的有效性。 - **全面性:** 除了功能性测试,还需要考虑非功能性测试。 **实践建议:** - 使用场景分析法来设计测试用例,模拟真实用户行为。 - 结合等价类划分和...
此外,他还着重讨论了设计模式在软件设计中的应用,模式作为软件设计领域的通用语言,可以促进团队内部的沟通,减少技术债务,提高软件的可维护性和可扩展性。 这本书不仅仅是理论的阐述,更是实践经验的总结。它...
在开发团队中,有效地调度软件项目代码是至关重要的。这涉及到多个方面,包括代码管理、版本控制、协作流程以及质量保证。在这个名为"teamSoftwareProject-master"的压缩包中,我们可以推断这是一个Java项目的源码...
书中详细解释了12条敏捷开发原则,如尽早并持续交付有价值的软件,欢迎改变需求,通过持续集成提高可部署性,以及团队自我组织等。这些原则为实践敏捷提供了指导。 3. **Scrum框架**: 敏捷实践中,Scrum是最广泛...
**MSF(微软解决方案框架)**是微软提出的一套用于...总的来说,MSF提供了一种结构化的框架,通过其基本原则和团队模型,帮助项目团队实现高效协作、风险管理、质量管理,以及持续改进,从而提高软件开发的效率和质量。