主持人:大家下午好,今天是IBM倾诉月活动的第二期在线聊天节目,欢迎大家来到我们的在线聊天室。今天的主要话题是围绕需求分析师和架构师在开发过程中的问题而展开。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
广大网友在倾诉月前期的group讨论中,提出了很多自己工作中所遇到的困惑和难题,我们已经收集在问题列表中并邀请到身经百战的专家来现场为大家一一解答。
问答现场实录:
问:如何面对客户不断的需求变化?[2008-8-6 14:27:00]
嘉宾[肖勇]: 客户需求的不断变化这是软件项目中经常遇到的。我觉得首先是要做好的是项目的范围管理,也就是说必须要让客户知道,哪些需求是是在可以满足的,哪些是暂时或者不能满足的(不能满足的是为什么?包括:进度,成本等等方面的原因),我相信一般客户还是能理解的。
问:如何让开发团队系统地理解客户的需求?[2008-8-6 14:32:00]
嘉宾[肖勇]: 这需要有统一的工作规范,统一的工作过程,最后,双方需要站在客户的角度去思考问题,弥补针对同一问题站在不同角度去思考而形成的鸿沟。
问:在一个项目进行中,需求分析师的职责有哪些?您觉得一个合格的需求分析师应该具备哪些素质?[2008-8-6 14:33:00]
嘉宾[肖勇]: 职责:产出结构清晰,质量合格的需求工作成果,需求工程师首要的是必须理解行业,其次,有系统化的需求启发和需求工程的技能。
问:如何才能既满足客户需求,又能降低成本?[2008-8-6 14:38:00]
嘉宾[肖勇]: 首要的是了解项目的成本和范围。其次,搞清楚本项目中决定项目成败的首要利益相关者,平衡好利益相关者的利益关系。在成本有限的情况,优先满足首要利益相关者的需要。
问:怎样才能更准确的将需求原型转化为系统原型?[2008-8-6 14:36:00]
嘉宾[肖勇]: 采用业界公认的,统一的符号体系。特定系统需要根据特定的情况自定义一部分转换的规则
问:如何才能精确界定客户需求?[2008-8-6 14:40:00]
嘉宾[肖勇]: 不存在在精确的方式,但是我们可以采用一些可视化的方法让需求更可见,避免客户和开发方对需求理解的不一致性。
问:敏捷过程如何做需求分析?[2008-8-6 14:43:00]
嘉宾[肖勇]: 当然是敏捷的需求方法,一般采用讲故事的方式和描述业务场景的方式,在形式上需要随时随地的与软件的使用者进行沟通,同时也可以辅助采用软件原型的方法
。
问:优秀系统分析师必须有哪些素质?[2008-8-6 14:46:00]
嘉宾[肖勇]: 首先,全局的架构观,其次,灵活的架构视角的采用,最后,理解架构的模式,能够娴熟的使用常用的架构模式的框架。
问:需求开发是指从信息收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为四个阶段:需求获取、需求分析、编写规格说明和需求验证(评审)。哪位高人指点一下:在每个阶段,也就是子过程中要产生什么文档?[2008-8-6 14:48:00]
嘉宾[肖勇]: 需求工程的方法是根据不同的项目情况采用适合的方法,所谓法无定法,不要陷入到某一个特定的框架中,适合就是最好的。
问:我们经常要面对用户需求的变更,如果已经进入了开发阶段,用户突然对需求发生了根本的变化导致整个系统都需要推翻重做。 如果用户提出这样的变更,你如何应对?如何解决此问题,以及此问题带来的风险和危害![2008-8-6 14:49:00]
嘉宾[肖勇]: 首先变化是永恒的,其次变化的过程是需要管理的,最后,严重超出范围是要想办法收钱的。
问:用户提出“变态”的需求怎么办?[2008-8-6 14:57:00]
嘉宾[肖勇]: 让商务人员去处理。
问:现在有个项目,需要不同地域的人在业余时间一起开发,人员很分散。在管理方面和进度控制方面,例如代码管理,文档管理,交流等方面, 各位是否有好的建议。或者提供一些好的参考资料。[2008-8-6 14:59:00]
嘉宾[肖勇]: 开发源码的工作方式就是很好的参考,这里强调的是工作成果需要尽量的集中。
问:需求分析师和需求工程师,区别是什么[2008-8-6 15:01:00]
嘉宾[肖勇]: 有些局部差别,一般需求分析师指的是讲针对需求进行分析产出分析模型的人员。