软件外包接单经验谈-需求篇

2023-10-27

    上一篇谈了如何寻找客户,这一期就谈谈在和客户接洽时,如何与客户沟通需求。在这里我不去套用类似PMP里面那些完善的高大上的需求管理的方法论,因为我第一篇文章就说了,我写的这一系列文章都是针对小公司或者个人承接的外包项目,也就是都是一些中小项目,金额不超过100万的。说实话一般的小公司和个人真用不上那些方法论。如果按照那些要求来,各种文档你倒是输出了一大推,但是承诺的交付时间都过了一大半了,你这边一行代码都没写。所以我认为还得“量体裁衣”,根据实际情况来。
    需求的沟通顾名思义,就是搞明白客户到底想做一个什么系统,他想通过这个系统达到什么目的。我们要干的事情就是从客户的描述中,去梳理清楚他的业务逻辑,弄明白主流程和各个分支流程和各种异常的处理流程。然而往往在梳理客户需求的时候,会出现各种偏差,导致梳理出来的需求文档和客户的预期有一些差异,甚至最后出来的系统,客户不予验收。为什么会出现这些情况呢,我们怎么尽量去避免这些情况的出现呢。我认为需要做到以下几点:1、要判断你接触到的需求是否是二手的;2、要区分清楚客户提出的到底是需求还是解决方案;3、对需求要加以控制,学着降低客户预期;4、需求梳理的阶段性成果要不断的和客户沟通,直到你认为客户弄明白了并且认同了你梳理的需求为止。下面来分别说说都是什么意思。
    要判断你接触到的需求是否是二手的。我们接触的客户大都是一家公司或者企业,一般来说客户方会有一个对接人来和你沟通各种事情。包括前期和你接触探探你的虚实,和你沟通需求,让你出报价单等等。但是这个对接人往往不是决策者,也不是最终的软件系统使用者。他只是作为客户方的接口人,来统一他们内部的诉求,来代表客户方选择承接者。所以他们在和你沟通需求的时候,很可能是夹带着他们自己对需求的理解,不一定能准确反映真正的需求。
    我们怎么来判断呢?其实在第一次和客户方的对接人沟通的时候,你就要想办法弄清楚一件事,那就是这个对接人在他们公司到底是什么角色,是老板(决策者)?是需求方代表(软件使用者)?还是老板指派的一个他信得过的人(第三方)?要怎么弄清楚,就得你“八仙过海,各显神通了”。当你弄明白对接人的角色后,就需要根据他的角色来制定你获取需求的计划了。如果一开始就是老板直接和你在沟通需求,那就需要想办法告诉他,能不能找一个其他的人来辅助他和你对接需求,因为老板一般不是软件系统的直接使用者,他提出的需求一般都是大的轮廓,他也没有大块的时间和你详细的梳理需求,导致你梳理的需求要么不完整,要么花的时间很长。所以让他指定其他人来和你对接详情的需求,你只需要在节点性事件上拉上他,亲自过一遍。例如整体的流程都梳理出来了,或者某个需求必须他出面的时候。总之你要想办法与客户方即接近最真实的需求又能和你详细沟通的人取得联系,获取第一手的需求。
    区分清楚客户提出的到底是需求还是解决方案。我们在和客户沟通需求的时候,一定要学着判断到底是需求还是客户提出的对需求的一种解决方案。客户自己往往并不能区分出两者的差异。举个例子,你接到一个电商系统的单子。客户希望能给订单管理中不同状态的订单加上不同的背景色。听到类似这种需求的时候,你就要再问问客户你为什么想要这样做呢?结果他说这样做就可以通过颜色来区别哪些订单需要赶紧发货了。看,这就是客户为了实现能从订单中,马上识别出需要发货的订单,这个需求所想出的解决方案。站在我们的角度当然要告诉客户还有更简介友好的方式来实现这个需求。在订单列表页加上不同状态的选项卡,并把待发货状态订单的选项卡作为默认列表页。
    可能有人会想,你管那么多干嘛。客户要求怎么弄就怎么弄吧,反正就是一个外包单子,用不着费那么脑筋吧。非也!你多费的这点脑筋就是你和你同行的区别,俗话说就是你的核心竞争力。软件外包这个圈子,其实一般情况下技术上大家都能实现,你怎么脱颖而出,让你的客户特别是“渠道商”认为你就与众不同,就是这种专研和投入的态度啊。你能主动的为客户提出更好的解决方案,而不是一切就按客户想的来,客户也不傻他也能感觉出来你的能力和态度。以后他也愿意为你介绍其他的生意。
    对需求要加以控制,学着降低客户预期。有的客户觉得他给了钱,就希望花一角钱能生产1元的效果。在合同已经签订后,还随时想起了就临时提出各种奇怪的需求要你实现。怎么去控制需求呢?基本原则就是小的改动,对已有的基本逻辑没有损害的需求还是尽量去满足客户,但是对于前后矛盾的,或者实现代价很大的需求。需要你在梳理完需求后第一时间去何客户当面沟通。清清楚楚,明明白白的告诉他,你提出的新需求和之前咱们在合同上确定的需求是矛盾的,或者新需求可以实现,但是研发成本比较高,因为什么什么。即便客户是不懂技术的,只要你能清楚的把原因讲清楚,一般客户都还是能理解的。至于如何能清楚的给客户讲明白,这也是一门学问,以后再单独出一篇文章来讲这件事。
    所以对于客户提出的新需求,你其实就是在满足客户和控制成本之间寻找一种动态平衡,这个度得你根据实际情况来把握。几次“交锋”下来,客户也就知道如何去控制他自己的预期了。
    需求梳理的阶段性成果要不断的和客户沟通,直到你认为客户弄明白了并且认同了你梳理的需求为止。客户在提需求的时候,往往都是阶段性的,今天提一些需求,明天想起来又会提新的需求。你几乎很难遇到有客户,第一次见面就把完整的需求以需求说明书和原型的形式呈现在你的面前。基本形式都是客户口述,你用电脑记录。每次和客户开完会后,你的电脑上都要记录下N条需求。会后你需要趁着大脑的记忆还比较深刻,马上开始梳理需求。我梳理需求的方式都是用两个工具,一个是忆图一个是摹客。用忆图来画主干业务的流程图,通过这种图形工具帮忙自己把主干逻辑和各种分支逻辑思考清楚。用摹客就是画出原型,目的就是在下次和客户交流的时候,让客户能直观的看到有哪些功能和大致的页面布局以及业务流程。
    当你搞完这些后,和客户再约定时间当面再交流一次,把你做的这些给客户讲,客户看到实在的流程和布局后很可能会推翻他之前说的一些需求,或者补充一些新的需求。因为客户的思维和逻辑能力是没有你这个专业人士强的,他是需要你去引导他,慢慢完善整个需求。引导的方式就是根据他讲的需求,你记录下来后去画流程和原型,然后再给他讲,就这样迭代下去一直到他觉得OK为止。这样做最大的好处就是在你们签订合同后,即便他有新的需求,就大概率是一些调整页面配色,新增一些描述字段等无关逻辑的需求。所以在需求整理阶段一定不要偷懒,要不断追着客户拿到第一手需求后马上开始“加工”,整理完成后再约客户,一直到整个需求明确为止。不然在开发阶段再频繁的变更逻辑性的需求,你看你的程序员得不得拿把刀砍死你嘛。换句话说,你需求不弄清楚,后续的开发成本也不好控制。
    以上几点就是我总结的关于需求这个话题要去注意的地方。欢迎大家留言,查漏补缺!

第一篇 外包接单经验谈-寻找客户:

https://blog.csdn.net/hjc1984117/article/details/116752120

第三篇 软件外包接单经验谈-估算工期、报价、签订合同篇:

https://blog.csdn.net/hjc1984117/article/details/119378667

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件外包接单经验谈-需求篇 的相关文章

  • 手机浏览器呼出QQ聊天窗口

    做一些手机html5网页的产品 难免会用到QQ聊天等 都知道电脑上面的网页是可以点击特殊的链接来打开电脑版本的QQ的 那手机呢 手机端其实也有的 手机浏览器点击超链接调出手机QQ聊天界面地址 lt a href mqqwpa im chat
  • DOS网络启动盘

    DOS网络启动盘 这张从97年到现在我一直保留并维护的工具盘 也许平时用的机会不多 但总在关键时刻救急 它能帮你在无法通过光驱安装操作系统时 通过网络或USB移动盘把几百兆的Windows系统安装文件复制到本地硬盘来进行安装 当然还可以用它
  • iOS navigationController中回到tabbarController根视图方法

    根据需求来改变跳转 self navigationController popToRootViewControllerAnimated NO self dismissViewControllerAnimated NO completion
  • 图解实时操作系统和非实时操作系统的区别

    转自 http blog csdn net u013752202 article details 53649047 对于实时操作系统 RTOS 和非实时操作系统 你能分别列举出来多少 实时操作系统 uCOS VxWorks RTLinux
  • UDIMM、RDIMM和LRDIMM

    UDIMM RDIMM和LRDIMM UDIMM UDIMM 全称Unbuffered DIMM 即无缓冲双列直插内存模块 指地址和控制信号不经缓冲器 无需做任何时序调整 直接到达DIMM上的DRAM芯片 UDIMM由于在CPU和内存之间没
  • Xeon可扩展Xeon睿频

    进行多线程AVX512运算的时候 需要把频率降下来 使用更低的电压 才能把功耗控制在一个TDP范围内 这就是全核AVX512默频 如果散热给力 可以提高电压增加点功耗 频率提高点 AVX512全核睿频 进行多线程AVX2运算的时候 单个核心
  • 高德地图的缩放和位移监听

    最近项目采用高德地图 高德地图的文档 demo都很详细 想实现的功能基本上都有 在项目里有一个功能 是类似根据地图的中心经纬度实现数据请求 为了不无限的请求 所以要分别监听 地图的缩放 地图位移 这里就有一个方法 gadMap setOnC
  • 如何将MATLAB程序编译成独立可执行的程序

    一 生成独立可执行的程序 exe文件 步骤1 安装编译器 可有多种选择 matlab自带了一个LCC 推荐使用VC 6 0 我基于VS 2003实现 2 设置编译器 在matlab命令行输入mbuild setup以及mex setup 选
  • 甘特图生产排程(APS)定制开发

    快速开发完成APS的数据可视化 订单展示 资源调度 智能排程等几乎全部功能模块 自动智能排程功能 提供专业需求分析师及开发团队 按需开发 全自动智能排程 这一APS的主要功能 能够实现自定义排程规则 一键式产生计划等高级功能 无需人工干预既
  • 系统异常重启检测-mcelog

    mcelog 是Linux 系统上用来检查硬件错误 特别是内存和CPU错误的工具 比如服务器隔一段时间莫名的重启一次 而message和syslog又检测不到有价值的信息 通常发生MCE报错的原因有如下 1 内存报错或者ECC问题 2 处理
  • Linux下Fork与Exec使用

    老邮局 琼楼挂月钓流云 梦里瑶台暂借春 Linux下Fork与Exec使用 一 引言 对于没有接触过Unix Linux操作系统的人来说 fork是最难理解的概念之一 它执行一次却返回两个值 fork函数是Unix系统最杰出的成就之一 它是
  • powershell notes II

    学习疑问 1 如何任意显示某个对象的method并使用它呢 已结 2 获取可卸载程序的命令行字卸载符串该怎么在powershell中使用呢 一 PowerShell常用快捷键F7 显示曾经输入的命令历史记录 用上下箭头可逐个选定再次执行 A
  • Linux服务器EDAC CE memory read error

    之前在大数据集群中 有一台服务器的CPU占用总是莫名其妙飙高 就算执行简单任务也会耗费很长时间 且reboot不能解决问题 检查了各种可能的问题之后 最终在查看dmesg命令的设备信息时 发现大量如下的日志 1180532 573917 E
  • iostat查看linux硬盘IO性能

    rrqm s 每秒进行 merge 的读操作数目 即 delta rmerge swrqm s 每秒进行 merge 的写操作数目 即 delta wmerge sr s 每秒完成的读 I O 设备次数 即 delta rio sw s 每
  • Mac office 2016 word 出现隐藏模块中出现编译错误: link

    try to remove Library Group Containers UBF8T346G9 Office User Content Startup Word linkCreation dotm or whatever in that
  • Ain_电脑所有乱码文字集

    以下是所有电脑上可显示的汉字 谁要是用哪个又通过输入法输不出来 可以从这里找 很简单 就是把int的 19968 至 40869 的数字按字符输出即可 19968 一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丟 20000
  • 最近很火的ChatGPT和GPT4

    ChatGPT 全名 Chat Generative Pre trained Transformer 美国OpenAI研发的聊天机器人程序 于2022年11月30日发布 ChatGPT是人工智能技术驱动的自然语言处理工具 它能够通过理解和学
  • 测试工程师如何进行需求评审

    需求文档是测试过程的重要输入之一 测试工程师根据需求文档进行测试活动 包括测试方案的制定 测试设备的准备 测试环境的搭建以及测试用例的设计 需求文档的质量直接影响到测试工作效率 在一个成熟的软件开发过程中 测试工程师需要尽早地进入项目对需求
  • 生成图片验证码的两种实现方式

    最近工作中 需求让新加一个图片验证码功能 其实这个功能之前自己写过 想必跟大家现在心里想到的实现方式一样 要么是通过servlet实现请求操作 要么是通过get请求实现操作 然后在后台通过session存储图片上的字符串 和之后前台请求过来
  • [架构之路-211]- 需求- 软架构前的需求理解:ADMEMS标准化、有序化、结构化、层次化需求矩阵 =》需求框架

    目录 前言 一 什么是ADMES 首先 需求是分层次的 其次 需求是有结构的 有维度的 再次 不同层次需求 不同维度需求之间可以相互转化 难点 经验积累 最终 标准化的ADMEMS需求矩阵 二 软架构前的需求理解 1 目标 2 时机 3 四

随机推荐

  • Requirement already satisfied 解决方法

    python m pip install urllib3 upgrade pip 出现 Requirement already satisfied 解决方法 加上路径即可 跟新pip python m pip install target
  • 攻防世界-pwn when_did_you_born(栈覆盖)

    0x01 拿到文件之后 先检查文件的基本信息 文件信息 64bit elf可执行文件 无PIE保护 0x02 执行文件 文件之中有两个输入 第一个输入有回显 0x03 IDA静态分析 可以看出获取flag需要用到v5的值 首先需要v5不等于
  • 召唤神龙小游戏

    文章底部有源码地址 免费获取 游戏介绍 召唤神龙小游戏是一款最近爆火朋友圈的休闲吞噬成长类手机游戏 召唤神龙提供了最轻松的吞噬玩法以及多种不同形态的转换机制 玩家需要从一只小蝌蚪开始游戏 一点点吃东西成长为一条庞大的神龙 在召唤神龙游戏中
  • 深度学习词嵌入和传统机器学习结合

    CNN词嵌入和xgboost结合 在使用小批文本数据进行深度学习时 由于数据量的限制 最终的网络往往过拟合 在验证集上达不到目标结果 传统机器学习算法 例如xgboost 对于小数据量不容易达到过拟合 但是需要对文本进行特征提取 下面的想法
  • python 中的面向对象

    目录 面向对象基础 面向对象 面向过程 面向过程编程 面向对象基本概念 面向对象 类和对象 类 对象 类和对象的关系 类的设计 定义类名 属性和方法的确定 面向对象基本语法 定义简单的类 只包含方法 定义类 self的使用 面向对象基础 面
  • MySQL架构存储引擎以及性能优化

    文章目录 MySQL架构图 性能监控 schema与数据类型优化 执行计划 索引优化 查询优化 分区表 MySQL架构图 连接器 管理数据库连接 权限验证 用户成功建立连接后 即使管理员账号对这个用户的权限做了修改 也不会影响已经存在连接的
  • 将UTC时间(2018-07-03T10:18:58.000Z)转换为北京时间

    2018 07 03T10 18 58 000Z是什么时间格式 UTC 时间标准时间 世界标准时间 GMT 格林尼治时间 GST 北京时间 js如何处理UTC时间格式 遇到问题 用了阿里云的接口 发现传的日期是UTC格式的 需要转换 b b
  • 前端部署>>>从0部署项目到服务器

    从0部署项目到服务器 第一次正式写文章 有点小兴奋 紧张 也不知道该说啥 感觉有用就给我点一个小爱心把 求求了 急需续命 1 准备步骤 2 基础语法 3 服务器环境和镜像 4 liunx环境安装node 5 部署后端项目1 搭建node接口
  • EasyPoi实现Excel导入导出

    EasyPoi实现Excel导入导出 1 导入依赖
  • Java基于微信小程序的青少年健康心理科普平台

    第一章 简介 青少年心理健康科普平台为用户提供心理医生咨询服务 系统包括微信小程序端和后台 微信小程序用户可以先进行注册 填写个人的基本信息提交到服务器 服务器把数据保存到数据库 管理员对青少年的信息进行验证后 青少年通过验证后的用户名和密
  • 使用平均值填充R语言数据框中的缺失值

    使用平均值填充R语言数据框中的缺失值 在数据分析和统计建模的过程中 处理缺失值是一个常见的任务 在R语言中 数据框 data frame 是一种常用的数据结构 它可以包含多个变量 列 和观察 行 当数据框中存在缺失值时 一种常见的方法是使用
  • 《卓有成效的管理者》读书笔记(一)

    文章目录 写在前 有效是可以学会的 为什么需要有效的管理者 谁是管理者 管理者面对的现实 如何解决 如何学会有效这种习惯 写在前 技术做到上面 需要一些软技能 比如沟通 管理等能力 有分享和输出自己的欲望 先从学习管理开始 一个好的管理者首
  • 疫情期间,如何利用一台电脑或一部手机在家通过互联网来挣钱?

    作者 杨小二 来源 杨小二的小江湖 疫情期间 很多企业开始实施在家远程办公 也有的企业开始尝试慢慢复工 但是听到和看到的很多消息就是 我们公司通知疫情期间降薪30 我们只发放最低基本工资 我们停薪留职 于是 就让我想起了之前被朋友圈刷屏的扎
  • 其他软件

    1 notepad 快捷键 alt 鼠标左键 复制一列 npotepad 转换xml格式 json格式 语言xml 插件 xml tools preety第一个 preety第二个
  • python爬虫需要学哪些知识_Python爬虫程序要用到哪些知识和技术?

    相信喜欢动手的粉丝们已经在自己的电脑上跑过一遍这个程序了 但是对于初步接触python的人来说 一上来就搞一个python的爬虫 也的确会让自己摸不着头脑 但是如果我们一直写那种知识点型的文章的话 你们也会觉得只有知识点不过瘾 综合考虑后
  • 30天自制操作系统学习-第6天

    1 分割源文件 观察我们昨天写好的bookpack c主文件 发现它已达到三百多行 这样对不利于我们的维护 为此 我们将其对os功能除了的函数进行分类 独立到一个C文件中 而且bookpack主函数中对于函数的声明部分未免有点过于庞大 我们
  • Appium+Python实现简单的自动化登录测试的实现

    这篇文章主要介绍了Appium Python实现简单的自动化登录测试的实现 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来一起学习学习吧 前言 要想让手机app自动登录 也就是让app
  • python利用图像处理方法 实现多目标检测与裁剪(opencv)

    图像处理方法实现多目标检测与裁剪 简述 1 批量resize 1 效果 2 原理 3 代码分析 2 找出所有目标轮廓 定位 1 效果 2 原理 3 代码分析 3 确定裁剪区域 1 效果 2 原理 3 代码分析 源代码 简述 对于一些特殊多目
  • HTTP1、HTTP2、HTTPS详解

    HTTP1 HTTP 协议老的标准是HTTP 1 0 为了提高系统的效率 HTTP 1 0规定浏览器与服务器只保持短暂的连接 浏览器的每次请求都需要与服务器建立一个TCP连接 服务器完成请求处理后立即断开TCP连接 服务器不跟踪每个客户也不
  • 软件外包接单经验谈-需求篇

    上一篇谈了如何寻找客户 这一期就谈谈在和客户接洽时 如何与客户沟通需求 在这里我不去套用类似PMP里面那些完善的高大上的需求管理的方法论 因为我第一篇文章就说了 我写的这一系列文章都是针对小公司或者个人承接的外包项目 也就是都是一些中小项目