文摘
分布式敏捷软件开发实现应对日益激烈的竞争和不断变化的需求的软件行业。它激发新兴的软件应用程序的开发和支持用户满意度与市场以低成本快速交付。分布式软件开发提供了一个复杂的分布式团队结构的软件行业有不同的工作场所。分布式敏捷软件开发需要有效和有序的决策在任务分配。任务分配是一项具有挑战性的活动在承诺的光谱软件开发人员在分布式环境中。有效的任务分配的压力下实现项目目标是一个复杂的分布式敏捷软件开发的管理问题。任务分配流程,提出了支持分布式敏捷软件开发有效的任务分配。首先,我们确定了任务分配的不同方面的背景下探索决策DASD的基本要求。根据相关信息识别方面,不同类型的流程活动定义;这些应该满足支持任务分配决策。 Task allocation process during software project planning requires comprehensive information about various factors that influence decision-making. The proposed task allocation process is evaluated based on the process activities. None of the current state-of-the-art research works focus on an approach for task allocation that completely fulfills all activities related to high-level processes or low-level processes. We fill this gap by identifying, classifying, sequencing, and proposing these activities that can be used to realize a methodical approach for a generic task allocation process in a distributed agile software development setup.
1。介绍
分布式软件开发(DSD)提供了不同的方法来达成更多的专家,优化成本,减少交货时间。挑战中遇到DSD和员工明确干扰之间的距离的通信、协调、控制。敏捷软件开发(Scrum)自1990年代初以来一直用于复杂的软件产品的开发,也被用来支持分布式软件分布式项目管理(1]。
敏捷软件开发(ASD)提供了一个积极的应对预期或非预期变化,灵活和快速适应随时变化,精益的最小化成本而不影响质量,和专注于改善和创新2]。根据证据,ASD还提供改进的结果与传统方法相比在DSD,提出了分布式敏捷软件开发(DASD)。然而,当敏捷在DSD之后,一个主要挑战是决定如何控制所需的更高的分布的复杂性和智能评估组织因素和敏捷原则3]。
软件项目是一个people-intensive活动,主要是人力资源及其相关资源。不同的项目任务需要不同的技能和更好的开发团队成员的能力水平。最好安装任务成员分配是一个非常具有挑战性的一个软件项目经理(负责4]。质量、生产率和动机的负面影响低透明和不合理的任务分配方式5,6]。超过40%的项目在中国的失败由于无效的人力资源和任务的安排相关软件项目的4]。任务分配成员决定可以控制成本,时间和质量问题的软件项目(6]。任务分配是基于执行能力和可用性;这一决定是由项目经理或Scrum master (7]。任务分配变得更加重要活动由于影响因素的理解有限,任务分配的后果。决定的分配任务到远程团队是一个主要挑战行动成功发展DSD [8]。通常,DSD团队协调问题由于他们可能要花2.5倍的时间比集中的团队完成任务。协调需要成功的项目开发管理所有依赖项(9]。
有时,不同类型的分配策略和目标相互冲突时缺乏知识的活动需要在DASD完成一个有效的任务分配过程。根据DASD的复杂性,一个完整的流程必须与支持活动正确地定义处理DASD的复杂性。
在这里,我们评论通过可组合性考虑额外的功能性质的软件项目。可组合性的额外功能性质可能是机密的成分类型,如直接可组合属性,建筑相关属性,派生属性,使用相关的属性和系统环境上下文属性(10]。软件架构应该用更好的可用性架构描述语言(11]。技术架构师可以支持建筑设计决策在DASD (12]。
我们提出了任务分配流程支持DASD,基于所确定的信息方面的相关任务分配在DASD上下文。这项工作是基于选择出版物的模型、方法、方法、框架和算法在不同的软件开发任务分配设置(DSD, ASD和DASD)。这些出版物存在因素、依赖、角色、功能,和挑战/影响DASD的任务分配的风险。
本文的研究问题如下:
(问),活动应该完成一个完整的和有效的在DASD任务分配流程吗?
这项工作的主要目标如下:(我)评估现有的研究工作(2)识别现有的方法、流程、模型、方法和框架支持DASD的任务分配(3)定义一个完整的任务分配过程DASD的上下文中
2。软件开发过程和现代方法
2.1。分布式软件开发
2.1.1。模型
基于扩展的Bokhari使用贝叶斯网络的算法,提出了一个决策支持模型。DSD这个模型支持多个目标和特点,和大量的场景模拟随机成本(13]。
一个决策支持模型提出了使用遗传算法进行任务分配。任务、资源、目标、和不同的参数被用作主要的实体。基于遗传算法,双片段的染色体组成,最初的信息资源配置进一步单独的任务和时间的分配个人任务的信息资源组合(14]。
虚拟团队有效性模型(改编自科恩的自我管理工作团队模型),提出了分布式团队(虚拟团队)。六个分布式团队的案例研究,以及任务设计的影响,团队特点,组织背景下,团队绩效和团队过程是描述(15]。
多准则模型为任务分配和MCDA(多准则决策分析)的决策支持系统提出了支持分布式团队的全球软件行业。模型的实现提高决策的效率,这个模型是由公司承认作为标准项目启动程序的一部分(16]。
全球合作模式提出了支持全球软件开发。不确定性管理方法的映射。提出了不同类型的建议来解决歧义在德牧17]。
2.1.2。方法
语言的应用决策分析方法ZAPROS三世必经我提出了支持DSD相关因素的排序。支持这项工作任务分配和提高性能的任务在一个快速和实用的方法。ARANAU工具(图形支持,用于提供图形呈现之间的支配关系的替代品,用于支持ZAPROS III-i方法)使用(18]。
混合的方法基于语言决策分析方法(VDA)提出了在DSD支持任务分配活动。ORCLASSWEB工具(自动化方案的比较过程,并提供一个问题的结果来支持决策)和ARANAU工具使用(19]。
2.1.3。框架
团队成员之间的工作包分配框架提出了支持德牧。定性研究通过德尔菲研究是确定每个因素的单一指标。根据研究结果,提出框架的实现后,达到提高软件质量(20.]。
在全球软件开发框架提出了任务分配,帮助决策者控制延迟和重新分配。框架是验证与来自世界各地的不同成员(21]。
2.1.4。算法
任务分配提出了软件众包与解决方案为一个多任务协作开发multiworker分配。提出了一系列算法,实验结果证明的有效性提供解决方案(22]。
一个动态效用为软件外包开发任务分配算法。Kuhn-Munkres算法与加权两偶图用于最优匹配任务的成员。结果显示,更好的性能在总分配效用达到成功的一种改进的水平(23]。
解决异构任务分配问题在人群中智能软件开发系统,提出了三种算法:甘斯(生成对抗网络)为文本生成生成决策数据和放大数据特性,Baum-Welch获得模型参数的算法,和维特比算法获得最优的任务分配策略。基于敏捷经理游戏平台(模拟平台),这种方法是评估实验(24]。
2.1.5节讨论。定性研究
提出了定性研究来识别不同的标准应用于在DSD任务分配。应用标准通过访谈确定不同的软件开发公司的项目经理。近年NVivo(定性数据分析工具)是用于数据分析25]。
2.1.6。系统文献综述
系统文献综述(SLR)提出了确定多准则模型,决策模型和方法在DSD任务分配。不同类型的使用工具,和未来的工作是提出基于单反的结果(26]。
提出了系统的映射发现德牧相关的挑战和可能的解决方案。开始工具(进行一个惊人的选择和过滤过程的出版物)。研究工作是分类根据COBIT(信息及相关技术的控制目标)框架。映射和COBIT治理目标的映射COBIT治理组件完成(27]。
DSD调查团队的协调需求,集中协调的团队知识的作用。根据研究结果,共享知识团队和共享任务的知识非常重要,解决协调问题(28]。
执行系统的文献综述和调查问卷DSD不同因素的识别。一个概念性的成本估算模型提出了基于这些因素(29日]。
2.1.7。调查
进行网络调查与54参与者从全球软件开发。识别不同的因素,他们的相对重要性是任务分配中描述上下文。本研究还探讨了价值类型在任务分配决策(30.]。
彻底调查对全球虚拟团队绩效。根据调查结果,团队信任和团队凝聚力和相互影响彼此的关系。AMOS 19.0(统计软件进行分析的结构、使用结构方程建模)使用(31日]。
2.1.8。扎根理论
扎根理论探索的影响提出了一个分布式团队的软件工具的性能。15分布式团队是观察和采访了两年多。推荐不同的软件工具来解决相关问题的性能虚拟项目团队,提高虚拟团队在一个分布式环境的性能(32]。
2.1.9。任务分配策略
的任务分配策略DSD提出了基于信息系统的体系结构和外部因素可追溯性视角。根据这项研究,任务分配的策略应考虑的重要因素,减少沟通和协调开销和时间延迟33]。
2.1.10。本体
提出了本体来表示概念对DSD任务分配和提供了一个不同的因素的理解。根据组织结构三个角度,即产品的角度来看,功能的角度来看,和项目的角度来看,介绍,这些观点之间的关系也进行了描述。StarUML工具(设计图形模型,说明了该本体)使用(34]。
2.1.11。分类
分类提出了探讨集成在DSD因素导致项目失败。Nonoptimal为分布式团队任务分配,任务依赖相关的系统性不足属性和无效的模块化的工作,和许多其他因素,可能会导致项目失败了(35]。
2.1.12。任务的协调组合
最优IT-mediated任务协调组合提出了支持不同层面的任务依赖关系,时间色散,DSD感知时间的限制。他们通过调查和分析测试95全球分布的团队对他们的性能增强。这项研究有助于理论与实践(9]。
2.1.13。软件工具
TAMRI(工具)任务分配,提出了基于分布式系统方法和贝叶斯网络。它支持多个标准改进加权的目标。总结任务分配方法,实现的工具,和三个应用场景也提出了(36]。
2.2。敏捷软件开发
2.2.1。模型
ASD提出数学优化模型和算法提出了使用贝叶斯网络来支持敏捷迭代调度。在ASD提高规划的质量考虑规划等因素的依赖关系和资源的能力(37]。
项目性能的预测模型,提出了反映领导和组织因素的影响组织的敏捷性和灵活性。提出了一个框架来获得信息(关于领导力的因素,敏捷性因素,灵活性因素,组织因素,和项目性能)是该模型的基础。人工智能技术(径向基函数方法和贝叶斯网络)和使用统计工具。正确理解提供了如何实现最高的项目性能通过模型应用程序(38]。
2.2.2。方法
方法提出了对个人能力的计算每一个团队成员。18参数提供标准、价值观和体重因素权衡个人能力。方法验证在一个小ASD公司39]。
软件开发团队的角色是基于人格类型定义的。幻相类型指示符(MBTI)是用来衡量软件开发团队参与者的人格类型。规则项目经理和程序员定义为团队组成。结果验证不同分类技术和提供更好的精度40]。
2.2.3。框架
框架提出了capability-centric web工具;此工具帮助跟踪功能团队组成及任务分配计划(41]。
2.2.4。算法
计算方法,提出了考虑不同因素的估计成本,时间,和精力。三个案例中不同水平的因素是表明了所提方法的有效性。根据这三个案例中,估算值改变由于因素水平的变化42]。
2.2.5。定性研究
个人和团队的能力措施通过定性研究确定和使用,形成高效的团队。面试进行了14从业者在电信公司;受访者被移动转账系统发达在瑞典和印度(43]。
2.2.6款。实证研究
探索性实证研究提出了需求工程的ASD和集中在需求依赖关系。混合的方法(与敏捷的和计划驱动的方法)的体系结构是用来支持可伸缩性和管理依赖项(44]。
2.2.7。系统文献综述
基于实证研究的系统评价,五个因素强烈影响软件开发团队识别的性能。此外,比较这些因素与ASD团队的敏捷宣言,可以提高性能通过专注于这五个因素,即团队协调、目标定位、团队凝聚力,共享心理模型和团队学习(45]。
回顾不同的任务分配方法采用定量ASD。任务分配不同类型的应用技术以及它们的优缺点。大多数技术是定量方法,但定性方面不解决大大46]。
研究系统的映射算法,影响生产率的因素在ASD。主要是确定因素取决于敏捷团队和积极影响生产率47]。
2.2.8。调查
采访调查中各参与者的八个组织完成确定ASD团队的新员工培训活动。不同类型的新员工培训目标识别与团队规范,文化背景,工作责任,理解其他团队成员的职责,标准的工作,敏捷技术和项目领域知识。映射新员工培训技术与高或非常高的贡献提出了支持不同的新员工培训目标(48]。
半结构化面试与团队成员不同的敏捷软件开发团队。四类描述的迭代目标,导致软件开发和项目管理文献[49]。
进行各种软件公司和调查得出结论,使用ASD (Scrum)对软件项目管理(有积极的影响50]。
2.2.9。扎根理论
理论包括58敏捷专家属于23新西兰和印度的软件公司。非正式、隐式、瞬态和自发的角色用于组合自组织ASD团队识别。这些角色是导师,协调员,翻译,冠军,启动子和终结者。理解这些角色帮助团队和他们的经理来执行他们的职责为自组织的团队51]。
扎根理论,和23个实践者的ASD 19团队在13个国家采访。16个因素相关的五类和对敏捷方法的选择产生影响。根据情况提出了各种建议来支持敏捷方法的选择(52]。
2.2.10。试点研究
了解激励self-assignment因素在ASD,面试是对12参与者的ASD。三组因素,即任务型、开发商,和经验性,识别;根据分析,任务型和开发商因素比经验性[更重要53]。
. 2.2.11。分类
分类,提出了和依赖分析。分类是用来评估敏捷实践解决依赖关系在ASD(三个项目54]。
2.2.12。决策支持系统(DSS)
Sprint规划决策支持系统(spe工具)Sprint规划的改进。spe是基于规划扑克和匈牙利算法,以及团队成员的能力水平等因素和任务依赖关系(55]。
2.2.13。控制实验
根据控制实验的结果,软件质量明显改善,当参与者在测试驱动的开发(应用更细粒度的任务描述56]。
2.2.14。软件工具
以人为中心的敏捷软件工程(哈泽)在线工具提出了敏捷项目管理。哈泽工具进行数据分析方法用于任务分配。动态方法反映能力等因素的影响,平等、工作负载变化,完成时间,团队成员的信心(57]。
软件工具姨(贝叶斯敏捷迭代调度)使用Java编程语言开发,用于控制时间表,并支持一组策略的安排的任务在ASD (37]。
提出了一种多智能体仿真基于任务分配值(可能的最高价值)在ASD (Scrum团队58]。
2.3。分布式敏捷软件开发
2.3.1。模型
多准则决策模型提出了基于多准则决策分析(MCDA)对软件开发项目计划在分布式Scrum。认知映射和麦克白(基于分类评价技术测量吸引力)。实验与模型描述和评估三个计划,和通用标准,全球软件开发标准,Scrum计划(标准也提出了1]。
架构设计在德牧,概念模型,提出了建筑设计。检查表对从业人员也提出了在表格格式问题,理由和例子回答(德牧使用Scrum)考虑问题。发现相关建筑设计实践的重要性和验证通过建筑师的采访来自七个不同公司的德牧后(59]。
DASD努力评估模型,基于用户故事的不同方面,例如大小、复杂性、质量、新奇、类型和风险。模型验证通过创建不同的项目场景来评估工作(有或没有风险60]。
概念模型提出了控制范围渐变和评估变化对成本的影响,时间、质量、利益相关者的参与,和设计改造。该模型的有效性验证通过专家判断和案例研究(61年]。
任务分配模型提出了基于监督机器学习对DASD和实现。根据研究结果,它支持决策和支持的任务分配62年]。
2.3.2。方法/方式
混合方法使用语言决策分析方法的分类和描述支持DSD排名的因素。口头支持决策过程通过多准则决策分析方法定性分析。标准和它们的值来确定采访专家,然后每个因素的特点是借助一个问卷调查。之后,顺序分类(ORCLASS)方法跟踪了分工的因素是插在群体的偏好。最后,ZAPROS三世我应用于秩序的重要因素。ORCLASSWEB工具和ARANAU工具使用(8]。
情境DASD方法提出了类型软件架构的发展框架。调查和采访安排在DASD上下文中理解情境变化的影响。实验结果是通过的实用和统计分析(63年]。
基于角色的任务分配提出了相关预测传入任务分配一个合适的角色。提出任务分配器的性能比较与现代神经网络(神经网络)和ML(机器学习)模型,它比模型的整体精度69.3% (64年]。
2.3.3。框架
定量框架提出了支持DASD的任务分配。不同类型的因素、依赖和技术支持DASD和非技术能力确定。角色分配模型提出了(6]。
2.3.4。案例研究
实现研究与9个团队进行两个项目属于两家公司,公司(A)在敏捷软件开发和公司工作(B)在v模型开发方法。结果显示,满足需求相关专业协调和工作协调影响团队绩效。因此,团队的协调需求的满足是必要的方法来实现所需的性能(65年]。
案例研究是使用敏捷和Scrum在分布式环境中进行的。不同类型的挑战和建议来控制这些挑战提出了支持DASD。Jira(基于web的软件项目管理工具)和GoDaddy主机使用(66年]。
一个案例研究提出了大规模敏捷项目,和二十相关协调机制的同步活动和同步定义工件。近年NVivo(定性数据分析工具)和通讯工具,如松弛和Skype,使用(67年]。
协调挑战中标识的上下文中DASD商用现货(COTS)的安装和定制软件系统。协调机制和工具来解决不同类型的依赖关系描述的主要协调挑战[68年]。
2.3.5。定性研究
敏捷实践的影响在低地理分布在奥地利和德国是通过与专家访谈调查。归纳分类方法应用于从收集的数据得出结论。提出了挑战和建议(69年]。
实证研究:协作工具所使用的软件公司在DASD协作了。协作工具分类和提出应对三个维度,即沟通、工作空间,和生命周期,在DASD (70年]。
2.3.6。系统文献综述
系统的文献综述进行识别的因素,然后运用SWOT(优势、劣势、机会和威胁)框架提出了支持全球敏捷软件开发。根据拟议的框架,优势和劣势是内在方面的组织,而机会和威胁是外部方面的组织支持全球敏捷软件开发(71年]。
文献综述进行确定实践、问题,并成功因素当扩展敏捷在大型组织。文献综述作为输入进行行动研究的研究在一个软件公司,跟踪ASD过程规模的过程(72年]。
2.3.7。调查
敏捷企业体系结构之间的关系,积极沟通,和识别性能。积极沟通维度之间的关系及其影响全球分布式敏捷开发是通过理论和实证方面描述。定量数据分析方法请(偏最小二乘法)。结果显示,通信效率支持积极的完成一个项目的时间和预算范围内,和沟通有效性积极支持功能和质量2]。
提出了实证研究,调查了相关假设的验证德牧的解决问题。软件过程能力等严格、标准化、敏捷性和可定制性识别。这些能力应付增加的挑战任务环境复杂性(73年]。
重要的成功因素是通过系统识别映射研究专家的问卷调查和验证。研究的主要发现为高优先级的成功因素提供相关信息来支持敏捷需求变更管理在DASD (74年]。
2.3.8。扎根理论
扎根理论进行,参与者来自38个软件公司接受了采访。根据这项研究,团队成员之间的信任在DASD对应对至关重要的挑战。不同类型的技术提高了团队成员之间的信任支持DASD (75年]。
2.3.9。分类
DASD的分类提出了依赖环境,和许多类型的依赖关系被确定在整个软件开发过程。任务分配是如何根据目标可以改变和依赖关系的影响是如何改变由于基于任务分配也描述的例子(76年]。
2.3.10。决策支持系统(DSS)
风险管理的决策支持系统提出了DSD,可以通过提出的检索工具和指导方针。不同因素对决策的影响和风险管理策略来处理识别风险因素。此外,系统还可以延长跨站点添加任务分配的特点在DSD根据风险评估的结果5]。
3所示。提出了DASD任务分配过程
批判进行观察DASD的任务分配的不同方面。基于当前信息与任务分配,任务分配确定相关的各个方面。图1提出了这些任务分配的确定方面在DASD上下文。这些方面是软件开发项目的目标,任务相关的软件项目开发中,角色的成员在一个团队中,成员的能力在一个团队中,相关因素不同对象的软件开发环境,软件开发环境的不同对象之间的依赖关系,以及软件项目开发的风险和挑战。
这些方面探索的关键信息,它提供了一个更好的理解相关有效决策的要求。他们提供了基础概念的提出了任务分配的过程。基于这些方面相关的任务分配情况下,我们确定需求的不同类型的活动必须满足成功任务分配决策。
基于这些基本方面,我们定义多个流程活动来支持决策在DASD的任务分配。我们这些流程活动分类成不同级别:高级流程活动和低级流程活动。拟议中的任务分配过程中定义的三个阶段:高级流程活动被认为是在阶段1中,低级流程活动被认为是在第二阶段,成员分配和任务是在第三阶段完成的。
任务分配的基本方面背景DASD为高级流程活动提供输入。他们没有细节突出问题的主要活动。他们提供了一个非常基本的和一般的解释或演讲的活动。
高级流程活动提供输入低级流程活动。低级流程活动提供的详细描述每个活动。
例如,因素包括在高层流程活动识别的基本概念,而不是一个详细的解释,和低级流程活动提供其类别因素的详细描述。(1)高级流程活动(阶段1)。定义目标、任务识别能力识别、定义角色、因素识别、依赖识别,和挑战/风险识别高层流程活动。(2)低级流程活动(阶段2)。任务需求识别、类别的功能,分类因素,类别的依赖关系,识别任务之间的依赖关系和解决依赖性问题,并确定挑战/不同类别的风险和建议是低层次的流程活动。(3)任务分配(阶段3)成员。成员分配任务的最后阶段提出的过程。在完成高级流程活动和低级流程活动,任务分配给团队成员。
图2介绍了序列完成任务分配过程的三个阶段。低级流程活动取决于高层流程活动的完成,和任务成员分配取决于低级流程活动的完成。在过程的起始阶段,高级流程活动完成;在第二个阶段,低级流程活动完成;然后在最后阶段,成员分配任务就完成了。
3.1。高级流程活动(阶段1)
在第一阶段的任务分配过程中,高级流程活动完成。高级活动包括定义目标、任务识别能力识别、定义角色、因子识别,识别的依赖。
3.1.1。定义目标
目标在整个启动软件工程的生命周期,例如,形成一个高效的团队,验证想法,平衡客户价值和上市时间,支持业务需求,外部(客户)感知价值强调功能,内部市场潜在价值,经济价值(收入),质量好,减少技术风险,和测量市场产品性能(77年]。软件项目经理必须定义多个目标在整个软件项目开发计划。这些软件项目的目标是最小化成本,减少缺陷,以支持高质量的产品,最大限度地减少的时间完成,团队成员的利用率最大化,最大化客户满意度(78年]。
很多目标是提出研究中定义,例如,减少开发工作(79年[],减少缺陷78年,80年),最大限度地减少成本(1,4,8,13,14,16,18,19,25,33,36,76年,81年- - - - - -85年最少的时间(),8,13,14,18,19,33,36,37,55,78年,81年,83年,85年),增加质量(8,13,14,18,19,24,33,36,55,56,76年),完成任务的时间(57提高团队成员的工作效率),(42,43),改善工作关系和最大限度地提高项目的需求83年),按时完成,交付)完成,功能完成,满足质量要求2]。
3.1.2。任务标识
软件项目是由多个任务。一个任务可以被定义为最小的作品有明确的功能,比如写一个文档,开发一个组件,和测试代码,或者可以是任何类型的需要努力在软件开发过程(86年]。任务分配流程基本上依赖于任务识别。在ASD,识别用户故事,每个用户故事是分解为不同的任务6]。
等提出了研究开发任务标识(4,13,19,20.,23,25,36,55,57,58,65年,78年,79年,81年,84年,85年]。
3.1.3。定义软件开发团队的角色
不同类型的角色分配给人由项目经理或项目负责人组成一个软件项目开发团队。根据项目经理,该活动是基于经验与人有关,可用性,和所需技能87年]。正确地将角色分配给一个开发团队的成员对形成一个高效的团队至关重要(88年]。基于DASD(敏捷和Scrum方法),确定不同类型的角色,如Scrum master,产品负责人,质量经理,设计师,程序员,维护专家,测试人员,配置管理器(6]。
角色定义与先前提出适当的标准研究等(6,29日,39,40,51,55,88年- - - - - -91年]和[87年]。
3.1.4。因素识别
”因素特征或功能相关的任何东西;这些是用来理解事情的本质(对象、实体或上下文)。为更好地理解任务分配在DASD,应确定不同因素。
为更好地理解任务分配、因素中确定提出研究[1,2,4,6,8,9,13,15,18- - - - - -25,28,29日,32- - - - - -34,38,40,42- - - - - -46,51- - - - - -55,65年- - - - - -69年,71年- - - - - -74年,79年,80年]和[82年,83年,85年,87年,90年- - - - - -95年]。
3.1.5。依赖识别
任务依赖关系声明情况而成功的特定任务开始执行以下任务或具体行动的成功取决于一个特定对象的存在(对象可以是工件,一个人,或一块信息)。协调满足管理活动之间的依赖关系。分配团队在国际上是广泛的挑战的根源之间的协调相关的任务。协调对任务绩效有显著的影响,当任务极其相互依存的。不满意的来源是分布式团队之间的协调成本和时间超支以及降低质量。
为更好地理解任务分配、依赖标识在提出研究[6,9,13,33,37,44,54,55,65年,67年,68年,73年,76年,80年,81年,85年,95年]。
3.1.6。挑战/风险识别
合并ASD和DSD原因存在风险的严重性,因为这两个项目开发方法是彼此相反。因此,用ASD DSD使开发过程风险和难以控制。DASD有各种风险相关的软件开发生命周期和项目管理(96年]。sprint相关风险、团队管理、团队互动、沟通、位置、地理分布和识别任务的DASD (60]。
3.2。低级流程活动(阶段2)
在第二阶段的任务分配过程中,低级过程完成的活动。低级过程活动包括任务需求识别、定义类别的因素,定义类别的相关性,确定任务之间的依赖关系和解决依赖性问题,识别挑战/风险和建议。
3.2.1之上。任务需求的识别
软件项目调度必须处理的分配有限的资源(人、时间、技术和资金)的任务。这可以被看作是一个优化问题中,资源分配由指定的时间间隔执行的活动(实现任务)之间的关系,同时考虑时间(优先级任务之间)和资源约束(资源可用性)和最小执行时间目标(37]。
开发任务可以有不同类型的需求根据任务的性质。必须确定这些任务需求及时克服以后发展的问题。一些任务要求被识别出来,例如,任务复杂性[6,14- - - - - -16,20.- - - - - -25,55,58,65年,79年),任务类型(6,13,15,19,22- - - - - -25,30.,36,41,55,65年,67年,78年,84年,95年)、任务与严格的时间表(30.],[预算要求14),所需技能4,6,13- - - - - -15,23,24,24,30.,34,35,44,65年,81年,84年)之间的耦合任务(4,6,9,13,14,28,34,35,37,44,54,55,65年,68年,73年,80年,81年,85年,89年,95年),期限(34),需要的资源(34),需要努力(14,20.,24,24,34),任务量(6,28,30.,68年),完成任务所需的时间(35,37,55,58,81年,95年),和任务相似(35,85年,95年]。
3.2.2。类别的功能
能力可以分为两个领域:技术能力和非技术能力。
(1)技术能力。在DASD背景下,技术能力确定在不同的领域:(1)技术知识:团队成员必须有技术知识根据他的角色在一个特定的领域如工程监理、需求工程、设计、编程、测试、配置管理、质量和维护。(2)工具知识:团队成员必须能够实践和选择的工具来支持领域的影响。(3)敏捷知识:团队成员工作的DASD设置一定的知识和理解的价值观ASD如维护产品待办事项列表和sprint backlog,安排日常会议,安排sprint计划会议,安排sprint回顾会议,组织sprint burndown图表,在规划扑克和贡献。(4)DSD知识:团队成员工作的DASD设置一定的知识和理解的价值观DSD如分布式通信,分布式合作,提高并保持信任,实践的工具用于分布式团队合作和跨文化合作。(5)方法论的知识:方法论的知识是团队成员的能力,如学习和工作策略,阅读技巧和信息处理、测试策略、演讲和报告,和研究。
(2)非技术能力。在DASD背景下,非技术能力确定在不同的领域:(1)人际能力:人际功能包括沟通能力、社交能力、客户服务、和浓度。(2)团队合作:团队合作性的功能包括自我负责、理解,提供想法和参加别人的概念,好奇心和自我激励。(3)解决冲突的解决冲突:功能相关的包括倾听别人的能力,常识,管理情绪,解决冲突,并启动。(4)职业发展:有关专业发展能力包括学习能力,冒险,平衡所需的资产来满足众多的意图,抵抗压力,监督进展,并创建改进整个开发(6]。功能定义与先前提出适当的标准研究等(6,23,39,43,51,57,78年,87年,88年,90年,91年,97年,98年]。
3.2.3。类别的因素
有不同类别的因素相关的DASD的任务分配,如项目相关因素、个人相关因素,网站相关因素,团队相关因素、任务相关因素,敏捷相关因素,环境相关因素和技术因素有关。所有这些类型的因素必须确定在DASD满足任务分配的上下文。
(1)项目相关因素。类型的项目(6,42,52],[范围50,52),质量要求(6,42),硬件/软件需求(6,42],复杂性[6,42),产品架构(6,25),项目成本(6,50,52),成本变化(52),和项目完成所需要的时间和精力6)项目相关因素。
(2)个人相关因素。沟通技巧(6,42,52),在团队意识6,42),管理经验(6,42)、安全(6,42),工作时间(6,42),过去的经验(6,42),技术(6,42,52),熟练程度(4,6,30.),人格类型(40],资历水平[55),能力水平(55,工作投入92年),与组织承诺92年),状态(状态等人在团队的永久工作人员或临时工作人员)(4),工资(工资支付根据团队成员的地位)(4人相关因素。
(3)网站相关因素。团队成员的知识和技能6,34)、可用性的团队成员6,30.,34网站),任务特异性(6,30.],承包商可靠性[6,25),劳动力成本(25]和[6,30.),现场工作负载(29日,30.),工作时间(6,34),时间和文化差异6,25,29日,30.,34),语言的差异(29日),和接近客户和市场25)网站相关因素。
(4)任务相关因素。任务量(6,30.),任务类型(6,19,22- - - - - -25,65年,84年,92年)、任务复杂性(6,14,20.,22- - - - - -25,55,58,65年,79年],[预算要求14)、任务环境复杂度(73年),接近客户需求(6,34),所需技能4,6,13,14,23,24,24,30.,34,34,35,44,65年,81年,84年),需要的资源(6,34)、任务的最后期限(6,34,任务优先级6,任务新奇9),熟悉任务(65年,任务可分析性9),和任务可变性(9)任务相关因素。
(5)敏捷相关因素。透明度和开放(6,99年),优先交付(6,One hundred.),足够的文档(6,One hundred.,良好的沟通(6,74年,One hundred.[],协调74年,客户参与6,52),灵活地支持变化(6),更好的风险分析(71年),自组织团队(71年敏捷相关因素)。
(6)团队相关因素。团队规模(2,9,15,16,20.,28,29日,32,34,44,46,51,54,66年,67年,72年,73年,79年,83年,93年)、团队并发性(79年)、团队强度(79年],团队分裂[79年),团队效率(9)、团队有效性(9),团队速度(43),能力(多样性43,92年),团队形成年龄(1],团队技能适合[1,团队信任31日,32),团队力量(15,团队精神15),团队凝聚力31日,32,45)、团队绩效、团队的灵活性(92年),和成熟的团队19)团队相关因素。
(7)环境相关因素。个人原因(6,25,政治目的6,25开销),沟通和协调,自然DSD [30.),组织的目的(6),组织文化52),分布式站点的数量(5),地理分布式站点之间的距离(5)、项目进展(6),团队,数量和类型的开发方法(6)环境相关因素。
(8)技术相关因素。互动媒体(5),合作模式(5),网络媒介(5)和工具(5)技术相关因素。
3.2.4。类别的依赖关系
有不同类别的依赖性,这些依赖关系应该确定提高适当的协调在任务分配。
(1)基本依赖关系。流,健康,和分享基本依赖关系。(1)流依赖:当一个活动形式的东西被进一步活动;例如,软件设计师使进一步的软件设计开发人员使用。(2)依赖:许多活动提供输出,必须连接在一起,如单个组件的集成级别必须连接在一起。(3)共享依赖:许多活动需要使用任何形式的方法,如技术专家的时间6,54,76年,80年]。
(2)组件依赖关系。两个组件之间的依赖关系定义了路径,和系统的分层结构可以定义基于组件之间的依赖关系(101年]。外部依赖项组件的扇入和扇出作为度量的软件组件的可重用性102年]。单个组件通常是独立开发的分布式站点,和他们的集成需要同步完成系统需求和功能103年]。软件组件可能有强烈的依赖性。管理这些依赖关系是非常重要的,因为这些有强烈影响软件架构中的其他组件。软件组件之间的依赖关系影响工作环境的开发团队76年]。
(3)软件依赖关系(1)语法依赖性:它定义了源代码文件之间的关系,其类型是数据和功能语法的依赖关系。它可以表示为 ,它指定数量的数据、功能和方法引用程序文件对程序文件。(2)逻辑依赖关系:它定义了语义关系或间接程序文件,以及大约有明确的关系。这使得程序文件之间的关系由单一一起改革由于修改的限制或许多软件项目团队参与者(6,76年,80年,104年]。
(4)工作(WD)的依赖关系。该软件可以影响工作质量依赖性。(1)工作流程依赖关系:它定义了明确的软件项目团队参与者之间的关系受到工作流以及流程。工作流程依赖关系与开发团队成员在整个修改请求。由于工作流程依赖关系,一个团队成员所做的修改会影响其他人的工作(6,80年]。(2)协调需求的依赖:它代表了一个团队成员需要协调的程度与另一个团队成员在给定的分配的开发任务80年]。
(5)Inter-task依赖性。池、顺序、互惠和团队依赖任务inter-task依赖性。(1)集中依赖的任务:独立,团队成员工作是聚合前完成他的工作。例如,团队成员独立完成之前有限的编码模块与其他模块的集成。(2)顺序依赖任务:独立,团队成员必须之前完成他的任务提供下一个团队成员的工作。例如,在测试计划设计测试用例是由团队成员;作为输入使用这些测试用例在测试阶段,下团队成员使用的。(3)相互依赖的任务:团队成员工作之间来回传递。例如,所有通过调试实践,工作流程团队的参与者之间的一边到另一边;这些参与者是程序员负责进行测试。(4)团队的依赖任务:团队成员同时检测问题和形式的解决方案。通过需求分析,例如,所有团队成员必须确定客户的需求(6,9,54,76年]。
(6)敏捷的依赖性。信息依赖性,流程依赖关系和资源依赖敏捷依赖性。(1)信息依赖性:信息是核心需求在软件项目开发;它声明不同的依赖关系等要求,专业知识、历史、和task-member任务。(2)过程依赖:当一个任务之前需要完成另一项任务。它考虑的活动和业务流程依赖关系。(3)资源依赖:当一个对象需要项目的成功,这包括实体和技术依赖关系(6,54,76年]。
(7)分布式软件开发依赖关系。地理、时间、文化、技术、知识、组织、人员、资源、网站,沟通和协调依赖DSD依赖项(6,30.,73年]。
3.2.5。任务之间的依赖关系和解决依赖性问题的识别
任务之间的依赖关系中确定先前提出的研究(4,6,9,13,28,30.,36,37,44,55,65年,73年,76年,80年,81年,85年,89年,95年]。依赖问题解决之前提出的研究(4,9,13,36,37,44,55,65年,73年,76年,80年,81年,85年,89年,95年]。
3.2.6。挑战/风险在软件开发的各种类设置
有几个挑战/风险识别和归类到DSD, ASD, DASD。建议相关的每个类别的挑战也进行了描述。
(1)在分布式软件开发/风险挑战。这些包括优先级冲突,超载问题,把时间和精力的人,低的非正式沟通机会,低丰富的通信中,缺乏以前的知识(28),与分布式团队成员沟通,时区和工作时间,文化差异,语言差异,工具,软件工程实践,团队动力,IT基础设施的合作,不同的知识水平、不对称处理策略和标准,跟踪和控制,知识产权问题,创造团队精神(1),低质量决策、计划的决策问题,缺乏信息共享,不安全感与表演16有关任务管理,缺乏透明度,低信息共享,没有足够的可见性的虚拟团队内部/外部的组织的成员,对项目进展缺乏透明度,低效率的沟通(32),缺乏协调,低信任、凝聚力差(31日),缺乏强有力的组件或项目所有权,组件依赖关系,可怜的流程来应对需求变更,组织文化差异、缺乏有效的任务分配,处理错误和缺点,复杂的许可证问题,低效的成本和精力估计,冲突管理,可怜的团队互动的机会(103年)、企业环境、所有权、关系管理、项目管理和规划、范围、要求、资金调度、开发流程、人员、技术、外部依赖(105年),确保治理框架设置、维护利润交付,风险优化、资源优化、利益相关方参与(27),沟通、协调、控制(106年)、任务分配、知识管理、地理分布、合作结构、文化分布、利益相关者关系,通信基础设施、技术(107年),和时间、地理和社会文化相关问题(108年]。(1)建议不同类型的命题提出了应对挑战的协调,共享知识的任务,团队的知识共享,任务意识,存在意识DSD [28]。不同类型的软件工具建议来解决这些问题相关的性能虚拟项目团队。正确选择和使用软件工具可以支持沟通、协作和项目管理活动(任务管理等任务规划、任务分配、任务透明度,和任务跟踪)(32]。不同类型的描述建议根据不同的实践,比如全球任务管理,知识和技能管理、全球项目管理,管理之间的位置和位置之间的协作。提出了这些建议来解决歧义在德牧17]。可能的解决方案与这些目标相关的挑战(确保治理框架设置、维护利润交付,风险优化、资源优化和利益相关方参与)识别支持德牧[27]。有效协调团队信任和凝聚力较高的积极支持积极的反馈和改善项目性能(31日]。提出了不同的策略来处理相关风险沟通,协调和控制在德牧106年]。不同类型的风险提出了解决技术覆盖规划、控制和社会融合区域(107年]。提出了政策建议来减轻相关的不同类型的挑战DSD[的不同方面109年]。
(2)在敏捷软件开发/风险挑战。挑战在采用敏捷方法包括改变定期从客户端,缺乏需求,每日Scrum会议,剪裁后的敏捷过程采用的困难,选择敏捷集成不同类型的项目,以满足最终用户的需求,时间效率妥协,缺乏团队合作,缺乏管理支持,可怜的建筑规划,逐渐要求,培训不足(110年),范围渐变,过于乐观的日程,需求或开发人员的镀金技术,重视质量,设计不足,开发人员和客户之间的摩擦,预算风险,取消费用,要求错误,技术风险、安全风险,承包商失败(111年]。
不同的开发和部署风险(技术债务,开发和IT运作分离,并增加新的ASD团队缺陷)和项目管理风险(unstandardized项目管理工具,缺乏知识保留)识别(112年]。
根据实证研究,依赖关系必须被认为是风险管理的一部分,因为他们创造问题(对项目计划、优先级的变化,负面影响和延迟发货),以防他们被发现在后面的开发阶段(44]。(1)建议:受访者报告的风险缓解策略相关进度风险,预算/金融风险、技术风险、结构风险、安全风险,部署风险,风险,需求变更风险、性能风险和程序性风险(113年]。组织经验丰富的项目开发和管理,相关风险和多种方式描述组织如何处理他们(112年]。持续的沟通和协作推荐来减轻风险由于依赖关系,以及混合方法架构也有助于管理依赖性(44]。不同的敏捷方法描述如Scrum,极限编程(XP)和动态系统开发方法(DSDM)风险管理。共享比XP和Scrum提供更好的风险管理实践(111年]。
(3)在分布式敏捷软件开发/风险挑战。包括沟通与协调问题将在同一个项目协调多个敏捷团队和同步sprint在大规模敏捷开发程序中,复杂的软件架构问题由于集成问题,依赖与其他子系统和团队,管理和整合异构子系统不同的团队,敏捷团队之间的地理距离问题和缺乏团队凝聚力在不同的地点,不同的文化和思维创造相关的问题在人们怀疑变化,鼓励团队讨论任务和障碍,干扰处理高级管理,缺乏归属感的管理责任和损失,相关方法挑战不正确的实践敏捷开发和建立共识的敏捷思维和实践,创建一个以团队为中心的相关项目管理挑战奖励模型,定义明确的角色和职责,考虑所需能力分配团队任务时,处理关键利益相关者工作量的增加,固定价格合同在ASD,计划外需求/风险和减少可预测性(114年),组织Scrum团队,创建和优先积压,估算的故事作为一个团队,创建发布计划,sprint长度、依赖关系管理,产品所有者有效性,持续集成,保持速度1),未能符合建筑设计组织结构和实践和分配的工作因此,问题清晰的架构决策,可怜的意识和分布式团队之间的沟通和知识管理不满意,不满意的质量保证,未能有一个稳定的体系架构,不完整或不正确的实践应用的设计和开发,问题发现架构依赖关系以及解耦组件单独的任务,任务的问题跨越多个网站(59),缺乏面对面的沟通,任务分配不合理,没有敏捷教练,时间和语言差异,团队成员之间知识共享不足,昂贵的实现中,怀疑敏捷开发,不恰当的管理承诺、缺乏敏捷过程评价机制(71年,变革阻力,分布位置,质量保证,与非敏捷集成部分组织,不满意承诺以及团队精神,过度的压力和工作量,缺乏必需的知识,指导和培训,需求管理层次结构,测量进展(72年),团队成员有时不确定别人的责任,进步被屏蔽或推迟等待资源和信息的时候,当他做了一个令人沮丧的条件工作(交付物)和不得不等待活动(外部)从其他成员和新资源没有完成所需的历史信息(67年),竞争重点,语言和文化的差异,过程偏差,不清楚所需信息,缺乏可用性和响应性时区差异造成的,不定的进步,测试成为一个瓶颈,防火墙和安全屏障和返工由于误解(更大的风险68年)、任务环境复杂度(73年),不同的文化有不同的方法来解决相同的问题,缺乏面对面的交流,而不是最初的顶层设计和后期的不完整的高级需求成为原因浪费资源和时间,和穷人的工具和一个贫穷的环境导致可怜的项目(66年]。(1)建议:类型的建议提出了四维空间,即任务、结构、演员、和技术;决策支持系统对风险管理也提出了5]。提出了不同类型的策略来处理风险(不协调的活动,缺乏团体意识,低质量的通信带宽,工具支持不足,大量的人在一个团队中,缺乏协作环境,和数量的增加网站)在DASD (115年]。挑战与空间有关,基于时间的,和社会文化差异在DASD可以通过改善处理信任级别,以作为一个团队工作。不同类型的技术提高了团队成员之间的信任(75年]。协调机制和工具来解决不同类型的依赖关系描述的主要协调挑战[67年,68年]。软件过程能力等严格、标准化、敏捷性和可定制性识别。这些能力降低的负面影响团队分布和动态特性的要求和应对增加的挑战任务环境复杂性(73年]。解决通信挑战德牧的敏捷企业架构。根据经验证据,敏捷企业架构支持沟通的效率和有效性,提高全球分布式敏捷开发的性能(2]。七个建议有关沟通的挑战、语言、意识、技术、和连通性。使用实践和工具辐射信息,定期把团队,提供和鼓励沟通渠道、沟通计划,准备替代传播策略,修改过程模型,并坚持定义的过程和实践建议支持DASD (69年]。不同类型的挑战,如不同的文化有不同的方法来解决相同的问题,缺乏面对面的交流,而不是最初的顶层设计和后期不完整的高级需求成为一个浪费资源和时间,和穷人的工具和一个贫穷的环境导致可怜的项目。建议应对不同的挑战提出了支持DASD (66年]。建议相关的挑战不同的关注点等组织的工作方式,建筑知识管理、质量管理、变更管理、设计实践,介绍了模块化和任务分配德牧使用Scrum [59]。
(4)挑战/风险有直接影响任务分配过程。挑战/风险从识别优先挑战/风险DSD, ASD, DASD,在DASD任务分配有直接的影响。这些挑战/风险需要关注以下管理给出。
挑战/风险直接影响任务分配在DASD优先从确定挑战/风险DSD, ASD, DASD。他们需要管理的关注。包括缺乏透明度与任务管理,缺乏有效的任务分配和分布、共享知识的任务,不足和缺乏任务计划和跟踪。由于全球任务管理风险,解决任务依赖关系和无法找到架构依赖关系也可能导致错误的决定。
3.3。成员分配任务(3阶段)
在第三阶段的任务分配过程中,执行成员分配任务。任务分配成员提出了(1,4,8,13,14,16,18- - - - - -20.,22- - - - - -24,24,36,37,55,57,58,65年,78年,79年,81年,84年,85年,95年,116年]。
4所示。评价和讨论的基础上,提出DASD任务分配过程
在表1,我们包括了任务成员分配工作。在这个表中,我们调查了任务分配成员找出有多少高级流程活动和低级流程活动被认为是前成员分配任务。在所有工作表1除了[6),成员分配任务完成;我们包括这工作,因为它完成了许多其他流程活动的任务分配过程支持DASD的任务分配。
我们评估所有任务映射基于成员提出了DASD任务分配过程。没有一个研究工作表1完全被认为是所有高级流程活动和低级流程活动之前DASD的成员分配任务。他们认为分配之前很少活动。在呈现在表中1一些低级的流程活动,如定义目标、任务标识和识别任务需求被认为是除了[6]。功能定义与标准(6,23,57,78年)、角色定义与标准(6,55),其他作品只是识别功能和角色。作品没有提供解释标准,甚至提到的名字在识别的任何标准的功能和角色。
很少的因素和依赖项(任务)之间的依赖关系。许多因素被确定在这些研究工作1,8,13,18- - - - - -20.,36),但类别定义的这些因素都不是。类别被定义在[6),但团队因素和技术因素不包括在这项工作。任务依赖性问题解决在一些作品,但是类别的识别依赖关系(6,76年]。确定类别的因素和类别的依赖关系不正确地考虑在任务分配任何工作。挑战/风险识别(24,81年,95年]和[8,13,16,18- - - - - -20.,55,76年]。
以下是未来工作的建议:(我)有必要提出方法、模型和方法支持高级流程活动和/或在DASD低级任务分配过程的流程活动(2)这些类型的方法、模型和方法,考虑所有类别的相关因素DASD成员分配任务之前应该提出(3)这些类型的方法、模型和方法,考虑所有类别的相关依赖性DASD成员分配任务之前应该提出(iv)挑战/ risks-based DASD所需任务分配方法
软件开发(SD)、分布式软件开发(DSD),敏捷软件开发(ASD)和分布式敏捷软件开发(DASD)开发设置。任务标识(TI),定义目标(做),定义功能(DC),能力识别(CI),定义角色(博士),角色识别(RI)因素识别(FI)和依赖识别(DI)高层相关活动。任务需求的识别(TR),类别的因素,类别的依赖,解决依赖性问题(RD),和挑战/风险识别(C / R)都是低级的活动。项目相关因素(PF)、individual-related因素(ID),与因素(SF)、任务相关因素(TF),敏捷相关因素(AF)、环境因素(EF),团队相关因素(TmF)和技术相关因素(TecF)类别的因素。基本依赖关系(BD)、软件依赖关系(SD),工作流程依赖关系(WD),敏捷的依赖关系(广告),任务依赖关系(TD)、DSD依赖性(DSD-D)类别的依赖性。✓:完成;-:部分完成;✗:未完成。
5。结论
分布式的敏捷软件开发给软件开发带来了很多好处,但它也是一个非常复杂的安装来源决策由于分布式环境。无效的计划通过一个不完美的任务分配的任务分配为成功的项目发展过程中产生了许多问题。关于研究问题,任务分配流程提出了在DASD支持决策。基于任务分配的不同方面的背景,定义不同类型的活动,分为高级流程活动和低级流程活动支持DASD的任务分配。
根据本研究的目标,提出了一种完成任务分配过程和评估现有的相关工作。我们的评估认为足够详细的活动,因此综合多种途径和方法。我们所知,没有一个以前作品支持完整性的感觉我们指出高级活动或低级流程活动,使更好的匹配实际任务成员的功能。通过详细的工作,较强的理解与任务分配过程的所有活动。这样的理解是强制性的正确决策项目经理或Scrum master,引导项目成功完成。也有条不紊地指导保持详细的历史项目决策对优势和劣势的分析团队在不同的网站。在更高的观点,未来的项目的失败可以得到解决,可以客观地实现最优的资源。
任务分配不可知论者对相关因素,依赖,和团队成员每个任务的风险和功能需求提供不切实际的和次优的解决方案,极有可能错过目标项目的目标。详细信息中简化了决策和提供了一个理解的预期结果。我们建议的过程将有助于软件行业提高其过程通过考虑所有活动前成员分配任务。它将支持最后的决策与完整的信息在DASD任务分配上下文。即使任务优先级可以反映高层管理的偏好。
数据可用性
所有的数据用来支持这个研究的发现中imcluded文章。
的利益冲突
作者宣称没有利益冲突。