您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 旅游娱乐 > 市场驱动下软件发展过程中需求工程的挑战2
市场驱动下软件发展过程中需求工程的挑战——一种与软件开发人员面对面的访谈学习方式LenaKarlsson,AsaG.Dahlstedt,BjornRegell,JohanNattochDag,AnnePersson摘要:市场驱动软件发展下的需求工程面临着特殊的挑战。本文给出了一次用于审查这些挑战的试验学习的结果,采用的是一种定性的方法,通过组织来自于八个软件公司的十四个雇员和一组特定软件开发人员进行面对面的访谈。这种学习方式的目标包括两个方面,一是提高对市场驱动需求工程特定领域的理解,二是通过描述遇到的挑战来为将来的研究提出建议。许多重大的挑战已被发现,包括消除市场需求和软件开发的沟通鸿沟、选择合适的过程支持、稳定版本计划的不确定性估计、以及管理需求恒定性。关键字:市场驱动软件发展;需求工程;定性研究;半结构化访1引言本文报告了一份由瑞典软件开发组织给出的关于当前市场驱动需求工程中的实践和挑战的产业定性问题的调查结果。市场驱动软件能够与嵌入式系统的硬件结合,同时也可以被当成COTS(CommercialOff_The_Shelf)产品出售。在低效的RE问题能够被合适地解决之前,为了能够更好地理解软件产业所面临的挑战,需要进行更多地研究。本研究的目的是为了提升对市场驱动需求工程领域的理解,发现和描述当前软件产业存在的RE挑战。本研究的另外一个主要目的是为本领域未来的研究提出建议,这是非常重要的,因为目前大多数正在进行的研究更多的关注于传统的面向顾客的软件开发方式。还有,本研究补充了现有RE调查存在的不足,因为目前基本没有研究关注于市场驱动软件开发存在的具体挑战。这篇论文研究的主要问题是:市场驱动软件开发公司将会面临怎样的RE挑战?本研究致力于市场驱动软件开发,在软件开发社区,这项研究与传统的面向顾客的软件开发相比已经得到了越来越多的关注。这应该归功于COTS或者说封装式软件包市场的出现。今天,软件是大量商用产品中非常重要的一部分,因此,越来越多的公司涉足到市场驱动软件开发的行列中来。各种各样的产品,像移动电话、汽车、飞机、玩具、以及游戏,都包含有软件。市场驱动软件产品销售市场前景广阔,拥有广泛的潜在用户群体,这种情况就需要考虑到用户需求的多样性。市场驱动产品由于市场竞争的激烈性,常常不断连续推出后续更高版本。市场驱动RE与传统面向顾客的RE在很多方面有着截然不同的特点,对这一内容的深入讨论将在接下来的相关工作部分中进行。目前,已经有个别研究涉及到RE问题。然而,还没有一项研究专心地致力于市场驱动开发。更进一步说,大多数相关的研究中,研究团队无论是在人员和相关需求方面,还是在时间的持续性方面,通常都非常庞大。这种定性的研究完成了前面所涉及到的问题并且从中小规模企业发展前景的角度提供了一种市场驱动RE的特征描述。在本次研究中,来自八个不同公司的十四位相关成员参与了访谈。经过七次访谈,一份关于国际工作组的简短文档被呈现。并且,一次包括RE专家的兴趣组会谈通过目前为止面临的挑战的反馈学习的方式被折中地举行。与每一位受访者进行半结构化的访谈。对每次访谈录音并用纸质抄写方式存档,以便用定性数据分析工具Atlas.ti进行分析。本文包括了对所涉及公司的一种描述,关注于公司现实、典型工程和开发过程。此次研究的结论是一系列有可能提高对市场驱动组织所面临的挑战的认识的重点问题,以及指明未来研究的发展方向。我们将通过一种定性研究方法来讨论我们的经验。本文的后续部分将按如下顺序进行组织。第二部分,介绍相关工作。研究方法将在第三部分进行描述。第四部分以一份总结的形式展示学习结果。第五部分对结果进行讨论并与近期的研究发现相联系。这一部分中还探讨了有效性面临的威胁以及我们的研究经验。第六部分对文章进行了总结并对未来的工作提出了一些设想。2相关工作此部分介绍了一些近期所做的与市场驱动RE和RE调查相关的工作。涉及到的参考文献都是些对于我们的研究非常重要的资料,要么关于研究设计,要么关于研究结果。2.1市场驱动需求工程虽然市场驱动软件开发和面向顾客的软件开发之间存在一些共通点,但本文重点讨论的仍然他们之间明显存在的不同点。主要的不同包括项目参与人和进度控制的特点、版本计划以及管理新需求的恒定性。在市场驱动的工程中,没有非常明确和清晰的用户定位。只有主要的潜在用户群,这是一群我们认为可能符合产品预期的构想图景中的用户。对潜在用户和顾客群进行启发式需求引导,是市场驱动RE和面向顾客RE的一个最主要的区别特征。这主要通过市场、技术支持、用户群和商业公开审阅进行管理。通常来说,需求分析由开发人员基于商业全局战略目标、相关领域知识和产品前景进行编写。由于软件开发组织是主要的风险承担者,所以由他来决定下个版本使用哪个需求。尽管如此,为了保持或提高市场共享,需要挑选出满足绝大多数顾客要求的需求。这又进一步强调了市场驱动软件开发中市场的重要性。市场驱动软件开发组织中time_to_market被当做一种遗留属性(标志)。假如产品没有按时投入市场发行,那将会面临着相对于竞争者放弃市场占有的风险。因此,版本数据应该被固定,为了避免版本发行延迟,一些低优先级的需求应该从当前版本中剔除。版本计划仍然是一个主要问题,其目的是在考虑到当前可用资源的前提下,最大限度的发挥顾客可用价值。然而,仍然存在一系列稳定的由现有用户和顾客或上一版本提出的新需求、改进建议、投诉和错误报告。因此,需要有效的优先权和投入评估来对版本计划任务提供支持。更近一步来说,RE过程需要找到一种可以捕捉和保存这一系列稳定需求的方法。2.2需求工程调查目前,已经有个别研究涉及到RE问题。Curtisetal.的经典文章主要关注于大型系统开发工程,既包括传统面向顾客方式,也包括市场驱动方式。虽然他们的研究不仅仅关注于RE,但还是找出了与RE相关的三个主要问题:应用领域知识的缺乏、需求的波动性以及沟通和交流的低效性。Lubarsetal.在几年前发表了他们关于需求模型的研究成果。和Curtisetal.一样,他们的研究既包括传统面向顾客方式,也包括市场驱动方式。[25]中提出的问题和[8]的非常一致,包括他们所举的例子,需求描述不明确性、需求遗漏、需求误解、来自开发组织自身的需求描述确定性的缺乏、与顾客交流的缺乏以及经常变化的需求。接下来,将给出关于RE实践和经验问题的两项研究。在ElEmam和Madhavji共同发表的论文中,提出的问题更多关注的是工程管理问题,比如进行适当的活动、决定何时停止特定的活动、确保用户充分参与的程度、挑选能力足以胜任的成员充当RE中的关键角色。在Chatzoglou的研究中,主要论述了一种具有传统面向顾客特点的工程。提出的主要问题有,缺乏足够的资源来成功完成RE过程,并且在RE过程中没有使用高质量的工具和技术。和Curtisetal进行的研究不同,Kamstiesetal.的后续研究关注于中小企业所面临的RE挑战,并且既包括传统面向顾客方式,也包括市场驱动方式。Kamstiesetal.一定程度上支持Curtisetal.和Lubarsetal.的研究,认为不明确的和不完全的需求是一个普遍存在的问题。另外指出的问题包括,需求文档的复杂性、市场驱动工程需求缺乏文档化以及缺少当新需求实现后会对已经实现的需求造成不可预见的影响的案例。Hofmann、Lehner和Halletal.近期共同发表的文章中,第一个研究的目的在于,无论是对传统面向顾客工程,还是市场驱动工程,在RE实践过程和最终完成之间建立一个明确的联系。并且在这篇文章中,还提出了一个问题,那就是需求变化。他们支持ElEmam和Madhavji的发现,关注于挑选能力足以胜任的成员充当RE中的关键角色这一问题,因为他们发现在定义初始需求时,缺少具有相关领域知识背景的风险承担者的投入与参与。文献[18]中提出的其他问题还有,市场呈现出的不切实际的需求以及(perceivedadhocREprocess)RE过程中理解进一步来说,他们指出在一项开发工程中大致有15%的投入应该致力于RE。Halletal.的文章中强调了,大多数的需求问题是来自于开发组织自身的而不是技术方面的。Halletal.还讨论了公司的成熟度与需求问题发现之间的联系。最后,有一些RE研究不是关注于广义上所面临的挑战,而是关注于特定类型的挑战,例如由Damian和Zowghi所做的关于由风险承担者地理位置引起的问题。一般而言,现在进行的RE研究基本上没有一个是纯粹致力于市场驱动软件开发的,而是既包括传统面向顾客开发组织或工程,也包括市场驱动开发组织或工程。因此,尽管传统面向顾客RE和市场驱动RE之间存有明显的不同,但是无法给出市场驱动软件开发组织所面临的特定RE挑战的综述。所以,有必要对市场驱动软件开发组织所面临的RE挑战进行深入研究。3研究方法本次研究是采用一种定性的研究方法。定性的研究目的在于研究和理解在他们存在的大环境中的社会和文化现象。而且,定性研究研究旨在把研究过的现象放在一个整体的框架里面,而且建议对社会和文化现象最好的研究是通过研究人们的行动和口头表达出的思想关于他们活动的社会背景。在目标是探索感兴趣区,获得一个复杂地区的概观,或是发现多样性而不是相似性时,定性研究方法是很有用的。当目标是提高对一种不太了解的现象的理解时,使用定性的方法也是更适合的。这都是归于我们致力于获取深入信息的事实。在本文呈现出的该研究的目标就是,在市场驱动的软件公司里,获取深度的对需求工程(RE)性质的理解,特别是着眼于探索软件开发公司在该区域的挑战。该目标也为明确阐述对未来研究的假定提供了基础。由于本研究的这种探索性,定性的方法被认为是合适的。研究主要是基于半结构化的会谈,其中包括会见者和被会见者之间高度的讨论,并补充了一个中心组会。这种方法使研究者对某些东西获得了深入的理解,例如公司使用的概念/术语。这证明了持续的帮助数据分析。例如,诸如需求、进程和方法等概念在公司中有不同的含义。两者择一的方法可以用于调查问卷中。这种方法的缺点就是在那时候研究者的假定控制了提出的问题和使用的术语。因此,研究中探索性的元素就很难取得。此外,调查问卷不能提供机会来讨论问题和概念的意义,以及探索在面对面交谈中可能出现的新的看法。定量的方法有时自称是比定性方法要好,论据是相对于定性方法以内在的主观说明为基础,定量方法能提供客观的度量而且能复制研究。然而,我们不会考虑通过争论哪种方法会更好来增益于科学。相反,我们需要对长期研究的更全面的考虑(见图1)。长期研究的阶段需要对假设/理论的探索和理由/证明/确认。探索阶段接下来是求证然后是发现新理论或理论的基础,这需要进一步的求证等。在本文中报告的研究中,我们已经在以市场为驱动的软件开发公司中发现了许多的RE方面的挑战。这些挑战可以视为假定或是新假定、研究和实验建立和执行的基础。本研究包括三个步骤,描述如下。每个步骤分成三个阶段:规划,数据采集和分析(见图2)。3.1步骤1–会谈研究(第一部分)3.1.1.规划本研究第一部分包括“自由讨论”和计划会议来识别不同的感兴趣区并规划该研究。我们使用了一个最大变量取样和便利性取样的结合,由于我们在我们产业合作网络中选取尽可能有不同特点的公司。我们着眼于各种各样的公司,考虑到规模,进程的类型,应用领域和产品类型。我们以五个公司开始,会见了7个人。参与进来的被接见者有不同的角色,目的就是收集关于RE性质的不同的观点和看法。会谈的文件的设计考虑了不同的感兴趣区并借鉴了其他RE调查的灵感。为了测试会谈的文件,进行了两次试验性的会谈。阐明了一些问题,在会谈进行之前,会谈的文件的结构也改善了。会谈文件的总结在附录表A中可见。3.1.2.数据采集本次研究使用了一个半结构化的会谈策略。所有的会谈包括一个接接见者和三个接见者,其中一个负责整个会谈进程。另外两个做大量的会谈记录以便能收集尽可能多的信息。所有的会谈时间从90到150分钟不等,都会记录下来。为了促进和提高分析处理,所有的会谈都做了副本。副本大小在7到23页之间。3.1.
本文标题:市场驱动下软件发展过程中需求工程的挑战2
链接地址:https://www.777doc.com/doc-3311558 .html