协调大型项目,协调定义为“管理活动之间的相互依赖关系” ,协调机制是允许个人集体行动的组织安排。相互依赖关系包括共享资源依赖关系和活动同步。
北京软件外包公司是创造性的工作,这意味着单一的最优解可能不存在,而完成的进度可能难以估计。这样做的一个原因是,不同工作之间的相互依赖可能是未知的或具有挑战性的,以便识别,使得很难知道谁应该参与工作,以及是否有正确的顺序来使各方完成自己的专门工作。
大规模软件开发协调是非常重要的,因为许多软件外包人员和开发团队同时进行这项工作。在这些项目中,相互依赖关系比小型项目更为不确定; 因此,团队需要知道谁是专家和哪些专家联系,特别是当他们在团队之外甚至在不同的网站。Licorish和MacDonell [13]研究了全球软件团队,发现团队网络专家的可用性与项目级绩效相关。
协调可以是预定义的或定位的[14]。在协调情况之前就进行了预定义的协调。它通常包括建立书面或不成文的规则,例程,程序,角色和时间表。另一方面,当情况未知和/或无法预料时,就会发生协调。参与这种情况的人不知道如何贡献。他们不了解实现什么,谁做什么,工作应如何分开,子活动应该按什么顺序和何时行事。因此,在相互协调的情况下,有关各方必须以临时方式即兴和协调努力。
软件开发项目,特别是大规模的努力,具有预定义和位置协调的组合。例如,参与的团队可能已经知道团队的目标和工作流程,但他们可能不知道谁在团队外执行什么,否则他们可能知道谁在做什么,而不是完成任务。为了补偿缺乏对活动实际发生的预定义知识,团队和团队成员必须自己更新活动/情况的状态,以更好地了解谁做什么。通过例如共同地点和会议来改善团队成员和团队之间的知识交易,可以加强对过程和活动的认识。
当然,当团队成员彼此紧密相连时,特别是当他们在同一个房间的时候,他们通过观察和监听他们的活动来更加意识到其他成员的工作。此外,例如在日常会议期间,团队成员不断更新状态,并意识到这些变化。然而,将大型项目的每个成员都放在同一个房间或同一个会议中往往是有问题的。实证案例,例如Boden等 [16]展示了例如组件工具在支持知识管理方面的局限性,如果不是基于他们旨在支持的社区的工作实践。同样,北京软件外包公司大规模发展的主动权,在基本协调机制未能支持在三个地点的40个队的协调。相反,北京软件外包公司研究中的知识共享和工作协调是通过一些实践社区实现的,这些社区被称为组织中定期分担关注或一系列问题的群体。基于这些发现,我们提出,面向社会化的协调机制在大型多团队和多场所环境中至关重要。
2.2。建筑协调
架构协调通常用于最小化协调团队之间以及跨地理,文化和语言边界的需求。大型分布式项目的参与者通过软件模块接口协调其开发工作。依托这一策略,可以分别开发每个软件模块,从而缓解协调问题。
然而,经验表明,架构协调的有效性是有限的,因为系统模块从来不是真正独立的。孤立地开发技术上相互依赖的模块可能会导致差异,这些差异通常在整合之前保持隐藏[20]。此外,遵循模块化开发并将特定模块的工作分配给单个团队的组织,培养更多关于该模块的专业知识,而不是关于系统不同部分的更广泛的知识。这可能导致更多的知识依赖,如果模块具有功能依赖性或复杂的集成点。Herbsleb等。证明仅仅模块化不足以克服这些挑战,基于架构的,基于计划的和基于流程的协调,而不需要协调配合的可能性就会失败。
在大规模软件开发中通过模块组织团队的另一个替代方案是分配团队对功能的责任。Paasivaara等人研究了特征的协调在使用Scrum的大型全球分布式软件开发项目的案例研究中。大型项目中的一个功能可以涵盖几个子系统和模块。Paasivaara和同事发现,基于特征的Scrum Scrum会议可以是一个很好的协调机制,因为一小部分具有共同兴趣和目标的人可以共享,讨论和解决问题。
2.3。通过网络协调
假设一个人不可能拥有在大型项目上工作所需的所有知识,而且协调是至关重要的,那么北京软件外包公司人员和软件团队就需要依赖嵌入在内部,源自一个关系网络,也称为社会资本。社会资本既是网络本身,也是可以通过该网络动员的资产。Oliver等人 [23]将知识网络作为网络,促进学习,并连接专家和新手,以通过群组交互来支持按需连续学习。
如前所述,大型项目团队经常孤立工作,同时与其网络中的关键专家进行沟通和协调。因此,需要在不同层次上进行协调:北京软件外包公司团队内部,团队之间以及团队与组织的其他部门之间进行协调。在他们的系统文献综述中,Mathieu et al。[24]得出结论,团队在网络中的中心地位有利于表现。Centrality似乎为团队在获取和应用资源方面提供了优势。该团队在如何利用团队内的社交互动方面拥有社会资本,以及如何利用其网络中的外部联系人创造价值[25]。
社会资本使软件外包团队能够实现不可能实现的结果,或者只能以开发团队的额外成本实现[25]。此外,由于社会资本增加了信息传播的效率,如果培养知识网络,大型项目的技能或作用就会减少冗余; 即如果社会资本很强。
团队和团队成员的社会资本价值取决于许多因素,包括知识网络特征。例如,一个既定的网络内的沟通和协调不良导致业绩不佳。孤立工作的团体从外部网络中获益最少。相比之下,凝聚力的群体能够传播从知识网络获得的信息,并最大化自己的表现。围绕一个团队的知识网络的特征也会影响社会资本的价值。一个这样的因素是外部接触冗余。相同的接触导致相同的知识来源,导致冗余。由于网络需要时间和精力,联系冗余会阻碍性能。因此,对于两个相同大小的知识网络,具有较少冗余联系的知识网络将提供更多的益处。
网络稳定又起重要作用。当人们离开组织时,他们的联系通常与其所包含的任何社会资本相融合[26]。假设其他工作人员的变化(例如团队成员轮换,晋升和搬迁)也会影响团队的社会资本是公平的。此外,不同类型的团队具有不同的网络需求。刘易斯[27]发现,丰富的外部知识网络对于处理陌生任务的跨职能团队而言,比从事熟悉和不相关任务的团队成员更有价值。主要原因是对专业团队的团队成员(例如组件团队)来说,将其专业知识整合到表现上可能不太重要。
显然,一个大型的软件外包开发项目能够在成员聚集起来时,积累社会资本,主要任务,监督活动和协调工作,特别是在需要相互调整的情况下,即通过非正式沟通进行协调。所谓“边界扳手”的作用对于连接组织网络的偏远部分尤为重要。此外,还有培训机制,积累了软件外包团队在工作中的社会资本。某些开发方法(如敏捷软件开发)和软件外包开发实践(例如配对编程,日常会议和审查会议)可以促进开发团队内的频繁联网和广泛的互动。例如,实践社区(CoPs)和不同论坛的参与促进了软件外包开发团队和单位的联网,如大规模开发。通过投资于社会资本,组织可以使许多人获得的少数知识拥有专门知识或独特知识。