博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【软件工程心得】与真实客户交流
阅读量:4948 次
发布时间:2019-06-11

本文共 1621 字,大约阅读时间需要 5 分钟。

这是大三上学期写的,具体时间是软件工程课程的“需求分析”阶段结束之后。写这篇文章的目的是将自己在这个过程的收获记录下来,并分享给其他三个团队成员。刚才重看课程总结,想起还有这篇,就发到博客上了。

欢迎大家点评,以下是正文:


  • 与客户交流非常重要。没有明确需求,就会做很多无用功:
    你以为用户是这样想的,写出代码。交给用户时,用户说他想要的不是这样的功能。那你就得改代码了。如果这个功能牵扯到其他很多功能呢?牵一发而动全身。到时候将会苦不堪言。
  • 一定要主动与客户联系。你要知道,你做的是真实的项目,跟你的收入有关系。不要害怕与用户交流,多交流可以减少很多麻烦。

1、交流前

  • 仔细研究客户已给出的需求描述。并记录在研究时所有的疑问,无论大小。

    记住,从多个角度进行分析。尤其要从用户的角度进行分析。比如教师报课系统,从教务处的角度看,是整合多张表格;而从程序员的角度,是对数据库添加的操作。要体会他们是如何看待这个问题的。

  • 将客户的需求进行分类,哪些是核心功能,哪些是不太重要的功能。
  • 把所提供的功能,用思维导图画出来。这样客户就能从宏观上看到所有功能。
  • 做出原型,尽可能把所有功能体现出来。这里就深入较为细节的部分,能在很大程度上解决需求不明确的情况。你理解的用户需求,和用户真实的需求,这之间相差有多大,通过原型就能体现出来。

    如果可以,做出可以操作的原型,而不是静静地躺在纸上。网上有在线的原型制作工具,提供了制作可运行的原型的功能。

2、交流过程

  • 带上思维导图和原型(纸质原型,能交互的原型也带上)。

    客户可能无法在一开始就完全理解你跟他都说了什么,没有一个总体的概念。这些东西他可以在你进行讲解的时候查看对应的部分,也可以带回去,好好了解你会做成什么样。

  • 带上笔和纸。

    仅有思维导图和原型是不够的,客户可能提出新的疑问,而这些疑问并不能通过思维导图和原型进行解答。如果只是用语言描述,客户可能会理解错你想要表达的意思。因为你在讲解的时候,在头脑中是有成像的,但是用户在脑中并不能及时生成图像,也就很难理解。这时候就可以用笔在纸上将你的想法画出来,这样更利于用户理解你的想法。

  • 如果项目不涉及机密,一定要提出录音请求!

    这有多重要呢?如果你没有多少经验,客户传达的很多重要的信息,一开始你可能没发现他们的重要性,或者认为你能记住它们,但过后却忘了。客户描述需求时,很可能自相矛盾;或者描述不清楚,很难理解;或者你刚好在思考他的上几句话,漏掉了他正在说的重要信息。而一旦录音,你可以不用害怕忘记什么重要信息,可以更专注于如何引导出用户需求。

  • 详细描述原型的每一个功能该如何操作。

    使用“用户场景”进行描述:
    1. 给出一个目的
    2. 从软件打开开始,一步一步展示,直至达到这个目的。
      用这样的方式给客户展示一遍,能让客户较为全面了解你的软件将做成什么样子。
  • 要判断是否能够完成客户的每一项需求,要大胆的说“不”。

    不能老是让客户来决定该怎么做,有些客户的要求会让你在实现功能的时候变得很复杂。你可能认为,客户说怎么做就怎么做,这样就是完美的了解用户需求。尽管用户需求很重要,但是砍掉不合理的需求也很重要,这样才能实现共赢。

  • 描述完你的原型之后,对这次交流进行一个总结。

    让客户知道你是否都了解了刚才你们交流的内容。这样客户会更放心一些,因为他有了一个总体的概念。

  • 交流结束,一定要留好联系方式。让客户可以方便联系到你,而你也可以方便联系到他。

    最好再找客户要一下邮箱,这样可以在必要的时候发项目进展给他,让他可以对项目进行反馈。

  • 要让客户记住你的名字。

    不然客户怎么称呼你?

3、交流之后

  • 整理在交流时的笔记。
  • 听录音,补充笔记。

    这时候你应该能从录音中听到很多你原本没注意到的地方。

  • 整理完之后,修改思维导图和原型,再配上功能说明文档,发给用户。

转载于:https://www.cnblogs.com/schaepher/p/5874552.html

你可能感兴趣的文章
VS2013 C++代码运行问题
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
LUOGU P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…
查看>>
toad for oracle中文显示乱码
查看>>
scala的REPL shell的调用
查看>>
SQL中Group By的使用
查看>>
Mybatis映射原理,动态SQL,log4j
查看>>
哪个微信编辑器比较好用?
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
gdb调试中出现No symbol table is loaded. Use the "file" command.问题
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
图像加载
查看>>
关于zxing生成二维码,在微信长按识别不了问题
查看>>
Haskell学习-高阶函数
查看>>
手动通知扫描SD卡主动生成缩略图
查看>>
js中tagName和nodeName
查看>>