关于需求分析和客户沟通

背景

关于需求分析和工期预估一直是老大难问题,Joel 的这篇文章谈到了这个问题,我挑一些记录下来。

客户不知道他们想要什么是问题吗?

通常,在定制项目中,最常见的超支、失败和悲剧的原因总是归结为,基本上,"客户不知道他们想要什么?”
事实上,有一件事是每个初级BA都需要在开展工作前要知道的,那就是:客户其实不知道他们想要什么。不要再期望客户知道他们想要什么。这是不可能发生的。忘掉它吧。
相反,你要假设你将不得不制造一些东西,而客户将不得不喜欢它,但他们将有一点惊喜。你必须做研究,想出一个设计,以一种愉悦的方式解决客户的问题。
设身处地为客户想想。想象一下,你决定装修你的厨房,因此,你聘请了一位专业的设计师,指示要把它弄得高大上一些。你不知道如何完成这个任务,你不知道那些事厨房中必须要装的,哪些事提升体验的,这些都不是你擅长的,你想让设计师帮你完成这个事情,这就是你雇用他的原因。
有一种办法是让客户进入房间,让他们作为开发团队的成员参与到设计过程的每一步。我认为,这有点太 "极端 "了。这就好像我的设计师在设计厨房时让我出现,并要求我对每一个小细节提供意见。这对我来说很无聊,我会觉得这个设计师对我毫无价值。
假设你的客户不知道他们想要什么。根据你对这个领域的理解,你自己设计它。如果你需要花一些时间来学习这个领域,或者你需要一个领域专家来帮助你,这很好,但软件的设计是你的工作。如果你做了领域方面的功课并创造了一个好的用户界面,客户会很高兴。

冰山理论

现在,我答应告诉你一个关于在你的软件的客户(或非技术经理)的语言和程序员的语言之间进行翻译的秘密。
你知道一座冰山有90%在水下吗?那么,大多数软件也是这样的–有一个漂亮的用户界面,需要大约10%的工作,然后90%的编程工作是在盖子下面。如果你考虑到你大约一半的时间是用来修复bug的,那么用户界面只占5%的工作。如果你把自己限制在用户界面的视觉部分,即像素,也就是你在PowerPoint中看到的东西,现在我们说的是不到1%。

这不是秘密。秘密在于,不是程序员的人不懂这个。冰山的秘密有一些非常、非常重要的推论。

重要的推论一:

如果你向一个非程序员展示一个用户界面比设想差了90%,他们会认为该程序差了90%。

重要的推论二:

如果你给一个非程序员看一个用户界面100%漂亮的屏幕,他们会认为这个程序几乎已经完成。

不是程序员的人只是看着屏幕,看到一些像素。如果这些像素看起来像组成了一个能做什么的程序,他们就会想:“哦,天哪,要让它真正工作起来还能有多难?”
这里最大的风险是,如果你先模拟出用户界面,大概是为了能与客户进行一些对话,那么每个人都会认为你差不多完成了。然后,当你在接下来的一年里 "暗中 "工作时,可以这么说,没有人会真正看到你在做什么,他们会认为这没什么。

重要的推论三:

拥有很酷的、光鲜亮丽的网站和大约四个网页的网络公司将比拥有3700年档案和默认灰色背景的很强功能网络公司获得更高的估值。

重要的推论四:

当政治要求各种非技术经理或客户在一个项目上 "签字 "时,给他们几个版本的图形设计供其选择就可以了。

调整一些东西的位置,改变外观和感觉以及字体,移动标志,使其变大或变小。让他们觉得自己很重要,给他们一些不重要的鸡毛蒜皮的东西来捣乱。他们在这里不能对你的日程安排造成太大的破坏。一个好的室内装饰公司会不断地给他们的客户带来色板和样品以及一些可以选择的东西。但他们绝不会与客户讨论洗碗机的位置。无论客户想要什么,它都要放在水槽旁边。浪费时间争论洗碗机的位置是没有意义的,它必须放在水槽旁边,甚至不要提出来;让客户在做一些无害的事情时得到他们的设计灵感

重要的推论五:

当你在炫耀时,唯一重要的是屏幕截图。让它100%的漂亮。

史蒂夫-乔布斯明白这一点。苹果公司的工程师们已经学会了做一些能拍出漂亮屏幕照片的事情,比如Dock中华丽的1024×1024的新图标,即使它们浪费了宝贵的空间。

结论

错误的做法

团队一开始就给客户看了很好的PowerPoints–模拟图,用Photoshop制作的,甚至不是VB。而现在,团队真正在盖子下面做了东西,对于客户来说,这段时间看起来团队什么都没做。

正确的做法

一旦你理解了冰山的秘密,就很容易与之合作。要知道,你做的任何演示都将是关于界面的。如果可以的话,以这样的方式建立你的用户界面,使未完成的部分看起来未完成。例如,在功能出现之前,在工具栏上使用潦草的图标。当你在建立你的网络服务时,你可能想考虑在这些功能建成之前,实际上不使用主页上的功能。这样人们就可以看着主页从3个命令变成20个命令,因为更多的东西被建立起来了。
更重要的是,确保你控制人们对时间表的看法。提供一个Excel格式的详细时间表。每周发送状态更新的电子邮件,谈论你是如何从32%的完成度提高到35%的完成度。确保以实际情况主导任何关于项目是否以正确速度向前推进的思考。
也就是说,在沟通时用界面控制客户的期望,在进度慢的时候多更新一些完成界面的内容,进度快时控制一下完成界面的沟通,最终按计划交付功能。

请我喝杯咖啡吧~

支付宝
微信