软件开发项目中与客户沟通的重要性及方法探析

2022-09-12

近年来, 随着计算机的发展和社会对应用软件产品需求的日益增加, 软件产品的规模不断扩大, 复杂程度不断提高, 在软件开发中出现成本和工期难以控制、产品可靠性差、不能满足业务需求等大量问题。软件设计专家GradyBooch曾指出, 许多软件项目失败的根本原因是开发人员没有正确理解用户的真正需求, 没有与用户进行充分有效的沟通。

获得清晰、准确地用户需求, 充分了解用户对软件系统在功能、性能、设计约束等方面的期望, 是项目成败的关键, 而解决这一问题的根本途径是开发方与用户进行充分、及时、有效的沟通, 让用户最大限度的参与到软件开发过程中来。与用户的沟通是贯穿于软件开发的需求分析阶段、系统设计阶段、编码阶段、系统测试等各个阶段的, 是整个软件开发过程的神经中枢。

本文结合从事软件项目开发方面的实践和体会, 对软件开发的各个阶段中开发方与用户沟通的重要性及沟通的方式方法进行深入分析和探究。

1 需求分析阶段

需求分析是软件设计实现的基础, 开发方在需求分析阶段的任务是通过各种方式、渠道了解用户的需求, 将用户需求精确化、完全化, 最终形成需求规格说明。与用户的沟通是项目的开端, 也是项目建设的基石, 在软件开发过程中具有举足轻重的地位。在实际工作中沟通活动可参照下列顺序进行:

(1) 召开需求说明会。首先开发方针对要了解的问题列出笼统的提纲, 在需求说明会上, 用户中所有与软件项目有关的人员都要结合自身业务应用实际详细说明;开发方要准确理解用户建设系统的目的、功能和性能需求, 同时激励和启发用户提出自己的想法和建议, 引导用户说明可能影响系统设计的某些细节问题。需求说明会方式接收到数量最大、质量最高的需求信息。

(2) 发放需求调研问卷。需求说明会后, 开发方对所有需求进行分类汇总, 认真分析研究, 结合系统要实现的总体目标, 针对技术人员和业务人员分别制定出详细的需求调研问卷, 问卷需要非常细的颗粒度, 涉及软件开发的业务、技术、应用、数据库等各种软硬件环境。对其中某些已经明确的需求, 也要写出来, 供用户确认。

(3) 走访部分用户。对于用户反馈的需求调研问卷, 分类整理, 对某些模糊或不确定的需求, 走访相关人员。对问题进行细致深入的探讨, 尤其是对具体业务, 要深入发掘用户的真实需求, 详细了解用户业务特点和习惯。最好把沟通的结果整理为详细的书面文档, 由当场用户确认, 避免理解错误而引起的系统设计的偏差。

(4) 整理需求分析。对收集到的需求信息加以处理, 尽可能全面详细地描述项目的应用背景、功能需求、性能需求、操作界面需求、与其他软件的接口需求以及对项目进行评估的各种评价标准等。针对不同层次的人员, 形成不同形式的需求分析报告文档。对于领导层, 描绘系统总体框架图;对于业务人员, 描述系统的业务流程图;对于技术人员, 用数据流图、实体关系图等各种图形进行多角度描述。同时, 设计出体现系统主要功能的原型系统。

(5) 确认需求分析。要针对用户不同层次的人员分别召开需求分析说明会, 向各层次人员分别解释说明需求分析的内容结合原型系统边讲解边演示, 从不同的角度最大程度地激发用户隐含或潜在的需求以及与之有关的硬件和支撑软件的要求仔细记录用户提出的具体意见和细致需求。会后, 整理需求, 修改和完善原型系统再与用户反复沟通修改, 直到达成共识。

2 系统设计阶段

系统设计是信息系统开发过程中一个重要阶段, 是将需求分析中的主要内容进行细化, 最终形成系统设计文档。尽管在需求分析阶段已最大限度地发掘需求, 但随着对系统的深入理解, 用户会提出更细节或者更新的功能需求。本阶段是开发方与用户进一步确认需求的阶段, 是对需求分析的进一步细致确认, 对准确地指导编码有重大的意义。这时, 需要项目经理与用户的各层次人员进行定期有序的沟通, 启发用户尽早地提出某些新的需求和可能会变更修改的需求, 及时补充完善到系统设计中去。

据笔者经验, 项目经理每周要向用户汇报项目具体进度, 要采取面对面交谈的方式。向用户具体介绍项目进展状态、项目质量以及下一步的工作计划, 启发用户提出上阶段可能疏忽或遗漏的问题。

3 编码阶段

编码阶段是将系统设计的结果转换成计算机可运行的程序代码, 主要是软件开发人员的工作。看似不需要用户的参与, 但是需求分析是不完善的、需求变更是必然要发生的, 因此沟通交流是非常必要的。越早发现问题, 越早处理, 越能减少因需求变更而产生的工作量。

这一阶段是对需求分析的补漏拾遗, 可以采取电话或书面文档等多种方式, 频率可选择为半月一次。主要是项目经理与用户之间的交流, 根据用户对系统功能的新理解, 及时完善、补充和修改系统设计文档, 给编码提供完整、准确的依据。

4 测试阶段

软件系统测试目的是检查软件的功能、性能和其他特征是否与用户的需求一致, 是决定软件系统成功与否的关键环节, 需要开发方和用户相互配合共同完成。系统测试应分两个阶段进行, 一是开发方依照需求说明书对软件系统进行有步骤的测试, 对发现的具体问题与用户沟通, 提出解决方案, 用户被动参与。二是在开发方与用户一起对系统进行联合测试, 双方关注的功能是不完全一致的, 要充分调动用户的积极主动性, 可以参照以下步骤进行。

(1) 召开需求分析会。测试人员说明自己对需求规格说明书的理解, 这时, 用户对系统有了深入、透彻的理解, 对系统要实现的目标任务会更加清晰, 会对系统的某些功能提出更细致、更实用的要求, 可能还需要对系统设计修改完善。

(2) 编写测试设计文档和测试计划。以开发方为主, 交由用户审定和确认。

(3) 编写测试用例。由用户对测试用例提出具体要求, 双方共同编写、评审, 进一步保障用例的合理性和实用性。

(4) 执行测试。双方共同执行测试, 对出现的问题查找、分析原因, 确定解决方案。

5 结语

综上所述, 软件开发过程是一个开发方与用户持续、不间断沟通的过程, 用户及时地把新需求和新想法传递给开发方, 及早地修正软件中可能存在的问题和缺陷, 最大限度地减少因需求不完整而造成的一系列影响软件质量的问题。可以说, 开发方与用户的有效沟通是引导项目走向成功的指路明灯。

摘要:与用户进行及时有效的沟通贯穿于软件开发的需求分析、系统设计、系统编码、系统测试等各个阶段, 是整个开发过程的神经中枢。本文着重阐述软件开发的各个阶段与用户沟通的重要性及采取的方式方法。

关键词:软件开发,用户参与,有效沟通

参考文献

[1] 张海潘.软件工程导论[M].北京:清华大学出版社, 2003.

[2] (美) 凯西施瓦尔贝.IT项目管理[M].北京:机械工业出版社, 2002.

[3] 吴洁明.软件工程应用实践教程[M].北京:清华大学出版社, 2003.

[4] 詹红雨.计算机软件项目管理中的需求分析[J].内将师范学院学报, 2008, 19 (4) :58~60.

上一篇:垂吊植物扦插繁殖技术研究下一篇:加强农村村级财务管理促进新农村经济可持续发展