软件的开发工作经过交通需求预测四阶段法分析阶段,进入以后,就开始着手解决"怎么做"的问题,软

(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&4次下载&&|&&总9页&&|
您的计算机尚未安装Flash,点击安装&
阅读已结束,如需下载到电脑,请使用积分()
下载:2积分
23人评价21页
8人评价7页
16人评价19页
9人评价16页
7人评价26页
所需积分:(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
若此文档涉嫌侵害了您的权利,请参照说明。
评价文档:
下载:2积分论文摘要:深入分析了软件项目实施中影响进度的主要原因,根据软件开发过程中不同
阶段进度管理的特点,将软件项目进度管理划分为4个主要的工作阶段:计划阶段、需求阶
段、实施阶段及收尾阶段。结合各阶段进度管理工作的特点,说明进度管理需要解决的关键
问题及相应的解决办法。
论文关键词:进度管理;项目计划;软件工程;软件项目管理
随着计算机应用的日益普及和深入,软件产品的规模越来越大,复杂性越来越高,传统个人
作坊式的开发方式已经越来越不适应软件产业发展的要求,软件产业已逐步进入以团队开发
为主的阶段,软件开发过程中的项目管理工作日益受到人们的关注和重视。在软件项目实施
过程中,影响项目成功的因素有许多,其中进度管理是软件项目管理的一个重要方面。
影响软件项目进度的因素分析
统计表明:导致软件项目不能按进度要求完成的主要因素
有以下几个方面:
1)缺乏详细准确的项目计划。项目计划确定了项目的范围、进度、审核、
验收、费用等项目管理的诸多因素,是整个软件生命周期中的重要环节,也是项目管理最重
要的方面之一。项目计划是项目跟踪和管理的重要基础。许多项目失败就是由于缺乏详细准
确的项目计划,导致项目进度管理失去控制。
2)缺乏对需求变更的有效管理。对于应用
软件项目来说,影响项目进度的一个非常重要因素就是项目实施中的需求变更。需求变更管
理不善将会导致开发工作不断反复,开发进度停滞不前。
3)开发过程缺乏有效的控制和
管理。软件开发过程中,一方面,由于开发工作缺乏有效的监督检查机制,造成软件开发各
阶段的进度管理工作失去控制;另一方面,由于开发过程中的阶段性成果失去有效的版本管
理,使整个开发工作陷入混乱。
4)不重视团队建设工作。目前,软件开发过程中存在的
一个严重问题就是人员的流动问题,许多合同软件项目从开始实施到项目完成人员流动频繁。
造成这种现象的原因固然有许多,但一个根本的原因就是在项目实施中忽略了团队建设,造
成整个项目团队没有凝聚力。
2软件项目进度管理的阶段划分
在软件开发过程中,
无论采用什么样的开发模型,软件开发都要经过“启动一需求一设计一编码一测试一验收”
等多个工作阶段。为了深入分析研究各阶段中影响项目进度的主要因素,根据各阶段进度管
理的特点,将软件项目的进度管理工作划分为4个阶段:计划阶段、需求阶段、实施阶段、
收尾阶段。这4个阶段与软件工程各阶段的关系如图1所示。
计划阶段进度管理的重点
是从软件项目整体进度管理的要求出发,对项目实施中影响进度的全局因素进行分析,制定
项目实施的总体工作计划;需求阶段是开发过程中项目双方协作最为密切的一个工作阶段,
进度管理工作涉及到对项目双方工作进度的管理和控制;实施阶段的特点是全部工作由项目
开发方承担并完成,进度管理工作的重点主要是对开发方的工作进度和产品质量进行管理;
收尾阶段的工作重点是如何做好项目的验收工作,进度管理工作主要是项目验收的准备和验
收工作的实施。[!--empirenews.page--][1][2][3]下一页
3计划阶段的进度管理
在软件项目启动阶段,需要根据项目的合同条款及总体工作的目
标要求,制定整个项目的总体工作计划,即要对项目实施中的各项活动做出周密的安排。计
划阶段与进度管理有关的因素主要有以下3个方面:
1)项目进度计划在项目的初期,项
目负责人首先应该根据项目的合同要求,明确项目的工作范围。然后依据工作内容,对资源、
成本及工作进度做出合理估算。进度计划应明确项目开始日期及完成日期,项目各工作阶段
的工作内容及开始时间和完成时间等。由于项目进度计划是整个项目计划工作的基础,项目
的进度计划必须详细、准确、合理。项目的进度计划将是进行项目进度跟踪和控制的重要依
2)里程碑设置为了便于对进度计划的执行情况进行跟踪和控制,需要对项目进度计
划中某些重要的时间点进行设置,即将这些时间点设置为里程碑。里程碑描述了每一开发阶
段项目应达到的状态。每当项目进行到每一个里程碑时间点时,要进行本阶段进度完成情况
的工作检查。里程碑确定了软件开发各工作阶段的最后完成时间及需要交付的阶段性工作成
3)需求的变更控制对软件项目进度影响最大的因素是需求变更。所以不论是ISO9000
认证,还是CMM认证都是十分强调对需求的变更控制。对软件项目的变更控制管理工作必须
从项目计划阶段开始,确定需求变更的工作流程。这有助于将需求变更带来的不利影响减到
最小程度。由于软件项目实施中存在许多不确定因素,所以项目实施过程中要允许对项目计
划进行调整,但是对计划的修改工作都必须在有效地控制下进行。
4需求阶段的进度管
需求分析阶段的工作目标是要获取详细、准确地用户需求,分析工作要想按计划完成,
需要项目双方共同努力才可以实现。本阶段进度管理工作的因素主要有3个方面:技术因素、
管理因素及沟通因素(图2)。
1)快速原型技术及需求复用技术。快速原型技术和软件复
用技术是开发方快速、准确获得用户需求的主要技术手段。通过原型技术可有效解决软件产
品可见性差的问题,用户通过对原型系统实物的使用,有助于提高对未来系统的认识能力。
利用需求复用技术可以复用其他相似系统的需求分析结果,有助于加快整个需求分析的工作
2)进行需求的管理。需求阶段的工作一方面是进行需求的获取;另一方面需要对
已获取的需求进行管理。通过需求管理,一方面可以有效遏制需求分析阶段的需求变更,确
保需求分析的工作进度;另一方面通过良好的需求管理工作,可以提高需求分析结果的可复
3)与用户进行有效的沟通。分析人员要快速、准确地获得用户的实际需求,除了
具有优秀的需求分析经验和技能外,很重要的一点是必须与用户进行良好的沟通。通过有效
的沟通工作,分析人员一方面可以准确、全面地了解用户的真实想法,提高需求分析的工作
进度和质量;另一方面也容易赢得用户的信任和尊重,在需求分析工作中得到用户更多的支
持和配合。[!--empirenews.page--]上一页[1][2][3]下一页
5实施阶段的进度管理
项目实施阶段包括设计、编码、测试几个软件开发工作阶段。开
发工作在本阶段进入以开发方为主的项目实施阶段。本阶段影响项目进度的主要因素有以下
两个方面(图3)。
5.1组建结构合理的项目团队,提高团队战斗力
1)组建结构合理
的项目团队。实施阶段的项目团队需要由具有不同技能的技术人员组成。在组建团队时,项
目负责人必须根据工作内容,分析项目实施过程中涉及到的技术因素,确定项目团队的人员
构成,在项目实施中遇到相应技术问题时,团队中都有熟悉该领域的人员能够予以解决。所
以结构合理的项目团队是各阶段工作进度按计划进行的关键。
2)职责明确、分工合理。
在各阶段项目实施的过程中,要求项目组各成员的工作分工和责任明确,防止团队成员挑肥
拣瘦、推委扯皮、不负责任现象的发生,使开发工作从制度上得到保证。3)加强团队建设,
降低人员风险。团队开发的最大问题就是团队管理。一个人心涣散、人员流动频繁的开发团
队,很难做到按计划、高质量地完成软件开发任务。所以项目负责人要加强项目团队的建设
工作,营造一种团结协作、认真负责、积极向上的工作氛围,增强团队的凝聚力和战斗力,
降低团队成员流动的频率,做好人员流动风险的防范工作。只有团队稳定,团队具有较强战
斗力,项目进度计划才能得到落实和保证。
5.2采用新技术、新方法提高开发工作的劳
采用软件工程研究的新技术、新方法支持各阶段软件开发工作,是提高软件开发
工作效率,加快软件开发进度的有效手段。提高软件项目工作进度的技术手段有2类。
软件复用技术。软件复用技术适用于软件开发的各个工作阶段。通过软件复用可以大大加快
软件开发的工作进度并提高产品质量,所以复用技术是提高软件开发劳动生产率的重要手段。
要在项目团队甚至整个软件企业实现更大范围的软件复用,做好知识管理工作是实现软件复
用的根本。对于软件开发中的知识管理来说,目前还是一个薄弱的环节,制约了在更大范围
内进行软件复用的能力。
2)CASE技术。计算机辅助软件工程(CASE)技术是提高软件开发
工作效率的另一个主要的手段。通过用于辅助软件开发、运行、维护和管理的工具支持,能
够加快软件开发速度,降低开发成本。
6收尾阶段的进度管理
收尾阶段是整个软件
项目实施的最后阶段,本阶段进度管理的目标是做好项目验收的准备工作,使软件顺利通过
用户验收并交付使用。本阶段进度管理工作的重点体现在以下2个方面。
1)做好验收测
试工作。在软件项目验收之前需要接受用户的验收测试。对于合同软件项目来说,用户的验
收测试工作往往以系统试运行的形式出现。为使软件系统能够顺利通过验收测试并交付用户
使用,项目组首先要做好试运行工作计划与试运行工作准备;其次,要做好试运行期间运行情况的记录,试运行结果数据将是软件能否通过验收的重要依据;再次,对于系统试运行期间出现的问题,项目组需要认真分析原因。及时完成系统的修改和完善工作。
[!--empirenews.page--]
2)做好验收文档资料的准备工作。软件项目验收的一个重要内容就是文档资料验收。在项目验收之前。项目组需要根据合同要求,向用户项目验收组提供相关的软件系统文档资料。为保证文档资料的准确、全面。并能顺利通过用户的验收,需要对文档资料进行认真准备和审核,防止将不合格的文档资料提交给用户,造成工作上的返工。
目前,进度管理问题已经成为软件项目实施的主要问题。文中研究了软件项目实施中影响进度的主要因素,提出了一个软件项目进度管理的阶段划分方法,给出了各阶段进度管理需要解决的重点问题。文中给出的软件项目进度管理策略适合于合同软件开发的进度管理工作,对其他类型的软件项目实施也具有一定的参考。【睿泰问答】在开发过程中,怎么去控制需求变更时对当前阶段开发工作产生的影响? - 上海睿泰信息科技有限公司
- 畅享博客
|收藏博客|加入友情链接|给博主留言
上海睿泰致力于不断创作符合IT企业需求的研发管理方法论、工具和服务,为客户提供高效率、高收益的IT研发管理整体解决方案。是中国唯一拥有自主知识产权和方法论以及唯一提供远程实时互动学习平台的研发管理咨询公司,拥有自主研发的优秀软件产品“集成化研发管理平台MainSoft”和国内人员规模最大、结构最完整的研发管理咨询团队。
【睿泰问答】在开发过程中,怎么去控制需求变更时对当前阶段开发工作产生的影响?
【睿泰问答】在开发过程中,怎么去控制需求变更时对当前阶段开发工作产生的影响?
【解答】睿泰咨询一部经理& 资深咨询师 杨俊(新浪微博名:睿泰杨俊)&&&&&&&& 在软件项目开发的过程中,软件的需求变更是一个回避不了的问题,对其处理的好坏,更是决定了软件开发项目是否能够顺利、完美、高效率得到实现的关键。在开发过程中,怎么去控制需求变更时对当前阶段开发工作产生的影响?如何处理好需求这个问题,从而使客户、公司、研发人员多方达到共赢。下面,就这个关键点,谈谈我的一些看法。&&&&&&& 一、必须进行需求变更管理&&&&&&& 需求变更的出现主要是因为在项目的需求确定阶段,用户与软件项目组往往不能确切地定义自己需要什么。用户常常以为自己清楚,但实际上他们提出的需求只是依据当前的工作所需;软件项目组以为自己清楚,但实际上他们是根据目前已知的有限了解来确定软件的具体需求。随着开发工作的不断进展,系统功能的开始展现,用户对系统的了解也逐步深入。于是,他们可能会想到各种新的功能和特色。特别是在用户已经长期使用过同类产品以后,针对一个新的测试系统,他们提的新要求就更多,需求变更因此不可避免地一次又一次出现。&&&&&&& 这时,如果开发团队缺少明确的需求变更控制过程或采用的变更控制机制无效,抑或不按变更控制流程来管理需求变更,那么很可能造成项目不断处于更新、待完善状态中。如果再加上没有一个完善的软件测试与发布系统,软件新的更改的质量就没法得到保证,更会让软件项目组整天处于焦头烂额中,甚至导致整个项目的失败。当然,即使按照需求变更控制流程进行管理,由于受进度、成本等因素的制约,软件质量还是会受到不同程度的影响。但实施严格的软件需求管理会最大限度地控制需求变更给软件质量造成的负面影响,这也正是我们进行需求变更管理的目的所在。&&&&&&& 需求变更控制一般要经过变更申请、变更评估、决策、回复这四大步骤。如果变更被接受,还要增加实施变更和验证两个步骤,有时还会有取消变更的步骤。针对变更控制流程,通常实施需求变更管理需要遵循如下原则:&&&&&& &1.需求变更要有统一的归口。所有的需求变更都必须汇总到项目经理或专门负责需求变更管理的人员手中。&&&&&&& 2.把需求分类,做个EXCEL表格,量化解决。这个需求管理表格会有下列这些项:客户名称、需求提出人、提出日期、功能模块名、客户现在版本号、需求描述、需求分类(需求、BUG)。需求描述不清晰是反复修改的罪魁祸首。对于BUG,要有错误报错整个的屏幕截图,千万不要就截那个错误消息框那么一小块。&&&&&&& 3.对需求进行评估。一个项目中需求调研的充分与否是项目日后成败的关键要素之一。&&&&&&& 在讨论需求时,开发人员与用户应该尽量采取相互理解、相互协作的态度,对能解决的问题尽量解决。即使用户提出了在开发人员看来"过分"的要求,也应该仔细分析原因,积极提出可行的替代方案。客户想要什么?要这干什么?为什么这么想?会不会有别的想法?&&&&&&& 通过以上四步我们的目标是:搞清客户的要求,找出要求的逻辑,客户想要的结果,同时排除开发的风险,挖掘与控制潜在的要求,把客户的需求合理化,说白了就是别搞个逻辑复杂又不实用的东西出来。&&&&&&& 4.在需求变更评估通过后,在修改需求或BUG的时候,要按照模块来集中修改,而不要挑好改的先改了,不好改的就最后改。按照模块来集中修改,你会通盘考虑所有这些需求和BUG,而不是糊窗户式的补窟窿。&&&&&&& 5.需求变更后,受影响的软件计划、产品、活动都要进行相应的变更,以保持和更新的需求一致。并妥善保存变更产生的相关文档。&&&&&&& 变化并不是人们最害怕的,最怕的是跟不上变化的步伐。同样,在软件开发过程中需求的变更会给开发带来不确定性,但只要把需求变更作为重点、难点小心加以控制,建立一个简单、有效的变更控制流程,按照需求变更管理规则来实施,那么软件开发的进度、成本和质量也就有了“安全”的基础。&&&&&&& 二、实施阶段性的目标管理&&&&&&& 目标管理以制定目标为起点,以目标完成情况的考核为终结。目标管理通过专门设计的过程,将团队的整体目标逐级分解,转换为各成员的分目标。同时,目标管理是以目标的实施及完成情况的检查、奖惩为手段。其中成果考核是评定目标完成程度的标准,也是人事考核和奖评的依据。目标管理加大了对员工成果绩效的考核力度。简单点说:可能管理过程是松散的,完成目标的具体过程、途径和方法,项目经理并不过多干预,但目标成果考核是严谨的。所以,在目标管理制度下,过程监督的成分很少,但控制目标实现的能力却很强。故能降低软件开发项目的管理成本,使开发项目更易生存。&&&&&&& 对于开发项目而言,目标管理的好处是:①目标管理对项目内易于度量和分解的目标会带来良好的绩效。例如,对于在技术上具有可分性、可量化的工作,由于责任和任务明确,因而常常能起到立竿见影的效果。②目标管理有助于改进团队的职责分工。③通过目标管理,可以明确目标优先次序。④目标管理启发了自觉,调动了各成员的主动性、积极性、创造性,强调自我控制,自我调节,将个人考核和团队利益紧密联系起来,因而提高了士气。&&&&&&& 目标管理可以具备阶段性,并要对目标进行深度分解。一个终期目标需要由几个阶段性目标组成。这就好像驾驶飞机,需要把每一次长距离飞行任务分解成几个航程,在每一个航程预定的结束时间,检查飞机的位置、状态和航向。只有通过这种方式才能及时发现问题,进而解决问题。&&&&&&& 好的软件是做出来的,不是改出来的。软件必须依靠具有一定水平的开发人员集中精力开发,不可能靠反复的修改来完成。软件修改次数越多,出错的可能性就越大。因此,对于一个已经累计了许多变更需求的软件。实施一个具有阶段性的目标管理,更能将软件做好。&&&&&&& 另外,落实奖罚是激励成员实现自己所规划的分目标的最好方式。一般来说,没有人会不受到奖赏和处罚刺激的影响,这种影响所带来的是激励人员全力以赴的工作。总之,有效的奖罚能使工作更具效率,也更为成功。&&&&&&& 总而言之,在复杂多变软件开发项目中,项目经理应该要应用和掌握高效的项目管理方法,而以目标实现为核心的目标管理就是其中一种方法。&&&&&&& 三、以测试为核心控制软件开发过程&&&&&&& 软件系统往往体现一定的功能,这些功能要符合一定的使用目的。现实世界是在不断变化的,而且变化的速度是越来越快,唯一不变的就是“变化”的主题。这一现实也就直接影响到了实现实际功能的软件系统,体现在需求、技术实现手段、应用环境等多个方面,这些都直接影响到了软件系统自身的稳定性。如何让软件系统在不断的改进中依然表现完美,以测试为核心控制软件开发过程,是一不可缺少的环节。&&&&&&& 测试的主要任务是控制开发人员随意提交低质量的程序。例如:在测试中有个定义叫返回,意思是当开发人员提交了问题过多的程序后,测试人员可以不用告知程序中的问题,直接返回程序要求开发人员重新修改。这样既控制了被提交程序的质量,也使测试人员把工作重点从寻找简单的低级错误,转移到寻找程序中复杂的逻辑错误。坚决反对“测试人员是帮助程序人员发现问题的”说法,而应该强调测试人员是站在一个更高的管理控制层面上。&&&&&&& 在这里给一个与测试相关的建议:重视设计复查和代码复查。&&&&&&& 很多程序员习惯于这样一种工作方式:只做不想。他们更关心每天可以写多少行代码,完成几个模块。在这种态度下,他们都很不愿意复查自己的工作,而习惯于在软件测试阶段把隐藏的错误改正过来。但设计复查和代码复查在大型的软件项目中已经有30年的应用历史,而且已经被证明在设计和代码编写阶段的复查比软件测试更能有效的消除错误。一些经验数据表明,在设计和代码复查时发现的错误是在同等工作量下软件测试发现的错误的两倍。&&&&&&& 四、建立一个完善的、快捷的版本更新机制&&&&&&& 有些行业客户,需要你在实施过程中就修改需求定制化软件,非要按照他们的习惯做才肯用,自然更新版本不断。&&&&&&& 而客户端一多,自然更新一次就非常累。而且哪个更新了哪个忘了更新,更新的版本一致不一致,都会引起各种问题。所以,为了更新,咱们可以直接在软件中集成同步更新功能。客户端软件一启动的时候,先自动监测服务器上的版本一致不一致,如果不一致,就自动更新同步服务器上的软件文件。这样可以达到下面的目标:有的客户还没有发现那个BUG的时候,就已经被我们更新了。从而提高用户的满意度。&&&&&&& 所有的管理方法,实施起来最终只有一个目的:做出好软件。&<div class="votes" id="Score
查阅更多相关主题的帖子:
下一篇:上一篇:
您还未登录,不能对文章发表评论!请先  [摘 要] 成功的软件产品是建立在成功的需求分析基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。因" />
免费阅读期刊
论文发表、论文指导
周一至周五
9:00&22:00
软件项目需求分析过程中与用户沟通的要点问题研究
2013年17期目录
&&&&&&本期共收录文章20篇
  [摘 要] 成功的软件产品是建立在成功的需求分析基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。因此,在软件项目的需求分析过程中,开发人员需要从项目的需求调研开始前就进行充分的准备,特别是要了解和掌握一定的用户业务领域知识;沟通中必须注意把握需求的层次,才能从项目的总体目标、业务流程和具体功能实现等方面保证用户需求的完整;在沟通中掌握不同用户群体的代表性人物,可以使需求调研分析的成果具有权威性、完整性和一贯性;在开发人员主导下积极引导用户提出自己的需求,才能保证形成的用户需求既有合理性,又有可行性。 中国论文网 /3/view-4344037.htm  [关键词] 软件开发;需求分析;用户沟通   [中图分类号] TP311.5 [文献标识码] A [文章编号] 1673 - )17- 0057- 03   1 前言   成功的软件产品是建立在成功的需求分析基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。当用户有一个问题需要用计算机系统来解决,而开发人员开始帮助用户解决这个问题时,沟通就开始了。   需求获取可能是软件开发中最困难、最关键、最易出错及最需要沟通交流的活动。有些开发人员对需求的获取往往有错误的认识,认为:用户知道需求是什么,我们所要做的就是和他们交谈从他们那里得到需求,只要问用户系统的目标特征,要做什么或不做什么或都凭用户自己确定就行了。但是实际上需求获取并不如想象的这样简单,一个软件项目的需求要经过开发人员与用户的有效沟通与认真分析才能确定下来。   这其中还有对问题的理解,用户对计算机系统的能力和限制缺乏了解,任何一个系统都会有很多的用户或者不同类型的用户,每个用户只关注自己需要的系统,而不知道系统的整体情况,他们不知道系统作为一个整体怎样工作效率更好,不关心系统中信息资源的规范与共享问题,也不太清楚哪些工作可以交给软件完成,他们大多不清楚需求是什么,或者说如何以一种精确的方式来描述需求,他们需要开发人员的协助和指导。但是用户与开发人员之间的交流很容易出现障碍,容易忽略了那些被认为是“很明确”的信息。   本文结合笔者在实际软件项目开发工作中的经验,就需求分析时与用户沟通中应注意的几个问题进行研究分析。   1 沟通前的准备工作是开发人员必须做的功课   开发人员与用户沟通前的准备工作一般有常规准备和可能需要的业务领域知识准备两个方面。   常规的准备工作包括对项目整体环境的熟悉,着重需要了解项目的背景、项目的目的、项目的利益相关方等信息,以便对当前项目的总体情况有一定了解。同时还要围绕这些方面对将要展开的调研进行需求调研问题的准备、需求调研模板的设计、需求调研时间安排等。   承担需求调研的开发人员除了做好上述基本的准备工作外,还需要结合自身对用户业务领域知识的掌握情况,主动积极了解客户业务和相关知识。这是因为,虽然开发人员可能在信息技术方面非常专业,但对于具体的用户业务可能并不十分清楚。这个项目对用户将有什么帮助、某一系统功能是否有用、某一流程处理是否合理,在不了解用户业务的情况下,我们将很难做出判断。这一掌握业务领域知识的工作也可能是要贯穿项目发展过程始终的。   因为只有在了解业务的基础上,我们才能和用户有共同的沟通语言和业务理解,才能真正理解系统应具有哪些功能。笔者曾在对某钢铁企业ERP项目的生产管理系统进行调研的过程中由于缺乏冶金生产方面的知识,有许多问题不能很好理解。   当时,笔者向用户虚心请教,并在调研结束后及时对有关生产知识进行了补充。后来在进行该项目的设备管理系统调研前,笔者结合前段时间了解的冶金生产工艺知识,又事先浏览式地学习了一下有关冶金设备知识,再进行调研时与用户的沟通就顺畅了许多。   应用领域的知识是无边无际的,在各种项目的调研过程中,肯定会出现由于需求分析者缺乏某一领域的知识而影响需求分析工作准确、顺利进行的问题。遇到此类问题时,需求分析者应虚心向用户请教,同时应及时补充应用领域的知识。在调研前做好充分的准备是十分必要的。   2 把握好需求的层次是与用户有效沟通的保证   对于一个软件系统项目来讲,开发人员需要面对不同层次,不同部门的客户,要广泛听取意见。不同组织机构层次,不同业务部门,甚至不同计算机使用水平的客户对系统的要求都会有不同。比如,总经理级别的客户可能只是对宏观报表感兴趣,业务细节操作他们一般不会发表什么意见。部门经理则关注日常工作报表,系统功能的实现以及可能的扩展策略。普通业务操作人员则关心操作方式、界面风格、易用性等。因此,把客户分成不同的群组就变得非常有价值,这样将会使需求分析的工作变得简单。因为开发人员可以从不同群组的维度来分析需求,对于特定的需求问题,则需要关注特定的客户群来合作沟通。   在软件工程中将软件需求分为业务需求、用户需求、功能需求与非功能需求3个层次。从与用户沟通的角度来看,也可以分别通过3个不同层次的需求将用户划分为三大类群体。   业务需求反映了用户对软件产品高层次的目标要求。在项目中,一开始用户高层领导通常会讲,我们上这个系统的目标是什么,我们为什么要上这个系统,我们要达到什么样的一个高度。通过这个层次的调研与分析来确定所开发项目的目标和范围。   经过上面的业务需求分析确定了项目的目标和范围后,紧接着就是同用户中层领导讨论,他们主要会讲我们的业务是什么,我们怎么工作,我们的工作流程是什么。这就是用户需求。通过对项目的用户需求分析,得出了项目的基本业务流程。   得到了这些信息后,开发人员开始整理,把软件功能点找出来,确定软件如何完成用户的工作,这是软件功能需求。按照功能需求做出来的软件是否能够被用户认可,这时不仅要面对用户的中层领导人员,还要面对基础管理人员和现场操作人员。
  在功能需求满足用户要求的基础上,用户自然会提出一些方便性、安全性之类的要求,也就是非功能需求。所谓非功能性需求,是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。例如系统的性能、可靠性、可维护性、可扩充性,以及对技术和业务的适应性等。非功能性需求涉及的范围很广,软件产品本身不是孤立存在的,还涉及诸多外在环境的影响。非功能性需求必须考虑软件既要可用,又要易用。   4 注意在沟通中掌握不同用户群体的代表性人物   用户组织中的人员在很多方面存在差异,例如:使用系统的频度和程度、计算机系统知识、所进行的业务过程以及个人的素质和喜好等。结合不同需求层次的用户的特点,可对用户进行一定的分类。将用户分类并归纳各自特点,详细描述他们的个性特点及任务状况,将有助于需求的获取和分析。   不同的问题需要询问不同的人,对于操作细节的问题,要和实际负责操作的用户进行沟通,而对于关乎全局的问题,则要和相应的管理层用户进行沟通。如通过组织架构图得知储运系统的仓储管理活动涉及3种角色:仓库主管、计划员、理货员。   我们发现仓库主管是对全盘业务相当熟悉的人,他负责协调本部门的全局事务;计划员则是负责接收和处理采购计划和到货信息,理货员按出入库通知单承担收发货的具体操作,这些人都将通过建成后的系统操作完成自己的业务。若我们调研的目的是搞清该部门的整体性流程,我们会很自然地选择仓库主管作为访谈的对象。   不可能对所有的用户都进行需求获取,这样做时间不允许,效果也不一定好,所以要识别出能够确定需求和了解业务流程的用户作为每类用户的代表。每类用户至少选择一位能真正代表他们需求的人作为代表并且能够作出决策,用户代表往往是本类用户中的3类人:对项目有决定权的领导、熟悉业务流程的专家、系统的实际使用者。   每一个用户代表代表了一个特定的用户类,并在那个用户类和开发者之间起沟通连接作用,用户代表从他们所代表的用户类中收集需求信息,同时每个用户代表负责协调他们所代表的用户在需求表达上的不一致性和不兼容性。   5 注意积极引导与合理利用用户的需求   由于用户往往对规划中的项目没有直观的认识,对于计算机系统的应用特点也缺乏了解,所提出的需求大多是以眼前的工作环境为基础,只关心自己局部的业务与数据要求,不能从全局的视角理解新系统投运后的组织机构与业务流程,对于一些有前瞻性的设计思想会不以为然。   例如在做ERP项目的能源管理系统时,由于数据是以自动采集为主的,我们规划了每分钟的能源仪表运行数据和按小时、班和日的结算数据功能,负责能源管理的用户人员却说他们只是月底有套月报表就可以了,没有精力按日管理,更不会按小时来管理。我们根据自己在这个领域的开发经验,耐心地向用户介绍了这样设计对于用户能源管理的必要性,同时说明这样一定能够满足按月报表的需求,方案获得了用户高层领导的认可与赞许。结果在项目投运的一年后,该企业就围绕节能降耗和降成本工作,利用能源计量系统的小时量和班量数据在基层车间开展了现场能源管理与指标考核活动,利用日量数据上形成的周报、旬报,开展了全面的旬成本分析和重点工序的周成本分析。   这个案例说明开发人员在具备充分的业务领域能力后,在与用户的需求沟通中主动发挥引领作用,可以实现项目开发中的甲乙方双赢效果。   还有些时候,用户的想法在实际实施过程中是不现实的。若一味地求全和盲目遵从用户的设想,将为项目的后续工作带来很大的风险。因此应尽量避免在需求分析中包含技术实施上有难度的功能。如在笔者曾经负责的一个项目中,用户要求新的管理系统应实现和社保、医保等管理系统的数据接口,以方便这些系统中的数据导入新的管理系统。   许诺提供与社保、医保等系统的数据接口,将为新系统的成功实施带来很大的风险。因为熟悉这些系统需要时间,开发与它们的接口也需要时间,而且与社保、医保这样的系统谈接口条件,也不是我们单方面能够决定的。因此与外部系统接口的可行性结论为:不可行。   6 结语   将知识从一个地方传送到另一个地方并不是一件简单的事情,而且原始的需求通常是以不完整的形式呈现的。它也许只是在某个现有系统的用户脑中,甚至有时用户都没有意识到他们知道什么。因此,作为一个称职的开发人员,在项目的需求调研开始前必须进行充分的准备,特别是要了解和掌握一定的用户业务领域知识,还要注意在整个项目活动中主动向用户学习;沟通中把握需求的层次,就能够根据项目的总体目标与任务范围、业务流体与数据关系、业务作业与功能实现这样3个基本层面来理清用户需求的不同层次关系,进而确保与用户沟通的有效性;在沟通中掌握不同用户群体的代表性人物,可以使需求调研分析的成果具有权威性、完整性和一贯性;在需求调研的沟通中既不是用户说什么就是什么,又不是开发人员凭自己的经验和理解“闭门造车”,而是要在开发人员主导下积极引导用户提出自己的需求,通过讨论分析再归纳形成用户的合理需求,这样才能保证设计的新系统在符合计算机系统规律、发挥计算机系统能力特长的基础上,真正满足用户的需求。
转载请注明来源。原文地址:
【xzbu】郑重声明:本网站资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有,如有不愿意被转载的情况,请通知我们删除已转载的信息。
xzbu发布此信息目的在于传播更多信息,与本网站立场无关。xzbu不保证该信息(包括但不限于文字、数据及图表)准确性、真实性、完整性等。

我要回帖

更多关于 需求分析阶段的任务是 的文章

 

随机推荐