需求与问题——一个老现象

今天,和一个在成都的人谈了一个项目的情况,对方一直坚持他们对需求很清楚,我对他说,你们清楚的不是需求,你们清楚的只是问题或者说目标。

过程是这样的:

对方提到:

目前的粮库经常生虫,每过不知道多长时间就会有两到三种虫子出现,他的同学在用大量的人工进行抽查,用东西把粮仓里面的粮食取出来,进行筛查,速度慢,成本很高,希望能找到一个好一些的方式来操作。

又提到:

他们联系过深职院的一位老师,说到用振动传感器,温度传感器等来进行探测,应该可行,他们也布置了不少设备,但是一直没有很好的效果(估计应该是没有什么效果)。

再问其他的,多少人工,多少投入,多长时间出现等等信息,他就说不上来了,还一直说,他们很清楚需求,目前就是解决的问题。

我回复说,这样的情况,我必须先到现场去做调研,确定具体的需求(当我说到这里的时候,对方明显很激动,立刻重复说,他们很清楚需求是什么,我回应道,你们清楚的不是需求,是问题。对方仍然坚持他很清楚需求),然后才能思考解决办法。

对方就说,那你安排人过来调研吧。

我回答说,这种研究型项目,谁也不敢保证就一定能解决,但是,前期的调研,没有费用我们是不可能出人过去做的。

对方就说,那你定个价格,前期多少钱,必须提出解决方案,并投入解决。

我再次强调回答说,这种研究型项目,谁也不敢保证就一定能解决。

对方又说,他们对需求很清楚,不需要调研,解决就是了,……(后面的我就记不住了)

随后我只好回答说,那就这样吧,这个项目我们没有办法承接。随后挂断了电话,微信上回复了一句话,你们清楚的是目标,不是需求。

对方回复:谢谢。

说到这里,需要明确一些内容,什么是需求,什么是问题。

用户往往只能提出问题,而不能提出需求。

需求是技术人员需要实现的东西,问题往往可能需要拆解成多个需求,也可能多个问题组合成不同的几个需求,这都需要现场调研分析才能做决定。

最可怕的是对方的联系人对技术半懂不懂,动辄认为自己已经掌握了全部需求信息,其实只是了解了一些问题而已,他们没有能力把问题进行拆解,也没有能力解决这些问题,却定义这些问题就是需求,于是造成承接方技术人员的无奈或者不得不照着做,最后使得项目彻底失败。

简单地以我们的有角动物智能放牧机器人产品为例:

牧民的牦牛去邻居家吃草引起的争议,这是问题。

目前国际上和国内通用的解决方案是:架设铁丝网拦截,让牛过不去。

但是牧场是很大的,牛需要迁徙,总有拦截不到的地方,这时候,还是会有这种争议发生,比如说,中国大陆自从1995年(这个时间是一位四川省招商局的老哥说的,未经考证,但时间应该差不多)开始建设铁丝网,到现在平均每八年投入300多亿人民币,可是2018年7月15号左右,拉萨市当雄县有两个村子的牧民却仍然干了一架,因为下游村子的牛到了一个河湾地区吃草,上游村子认为河湾是他们的牧场范围,据当地政府官员说,伤了十几个人在医院。

这个问题拆解出来的需求应该是,牛吃草,吃草的范围如何限制,如果不能限制是否可以进行吃草数量的计量,以解决争议问题。

目前经过20多年的铁丝网建设实践证明,确实无法完全通过物理隔离的方式来实现对牛吃草范围的限制。

于是需求就是:能不能记录牛吃草的数量,能不能知道牛的实时位置,能不能设置禁牧区和轮牧区,能不能设置各家牧场的边界范围这样几个可以实现的需求。

于是我经过两年的实地调研后,提供的解决方案是:

咀嚼传感器记录牛吃草范围,耳旁的发生装置解决牛驱赶的问题,通过卫星定位获取牛的位置信息,通过电子地图绘制标定禁牧区轮牧区和各家牧场范围。

四个功能同时使用最好,不能同时使用也至少使用前两者的任何一个加上后面两个功能。

这样就彻底解决了牛跨界吃草的问题,同时对政府设定的禁牧区和轮牧区也能很好的实现其功能目标,而不需要政府派人去长时间的看护和监管。

区分清楚问题和功能是一个老问题,唉,这话真的很拗口。但是,确实是很多人搞不清楚的内容。

当然有人可以说,这还是问题,确实,汉语里关于问题和需求很难描述很清楚,这也是一个问题。

如果较真,那就是说,一个不可解决的问题是否可以拆解成多个可以解决的问题,然后对问题进行有效的解决。到这里,各方应该都可以满意了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 开发Web Service的几种方式

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。 1.Axis2 Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axiseclipse开发webservi…

动手造轮子:实现简单的 EventQueue

动手造轮子:实现简单的 EventQueueIntro最近项目里有遇到一些并发的问题,想实现一个队列来将并发的请求一个一个串行处理,可以理解为使用消息队列处理并发问题,之前实现过一个简单的 EventBus,于是想在 EventBus 的基础…

Java开发Web Service的简介

随着异构系统互联需求的不断增加,Web Service的重要性也日益彰显出来。凭借Web Service,我们可以实现基于不同程序语言开发的项目之间的互联互通,Web Service也是面向服务的架构(SOA)的基石。其最主要的优点是&#xf…

【.NET Core 跨平台 GUI 开发】第二篇:Gtk# 布局入门,初识HBox 和 VBox

这是 Gtk# 系列博文的第二篇。在上一篇博文《编写你的第一个 Gtk# 应用》中,我们提到“一个 Gtk.Window 只能直接包含一个部件”。这意味着,在不做其他额外操作的情况下,如果你向一个 GtkWindow 中添加了一个 GtkLabel (就像上一篇…

Java开发Web Service的几种解决方案

转自:http://blog.csdn.net/zolalad/article/details/25158995 Java开发中经常使用到的几种WebService技术实现方案 随着异构系统互联需求的不断增加,WebService的重要性也日益彰显出来。凭借webservice,我们可以实现基于不同程序语言的项目的…

【.NET Core 跨平台 GUI 开发】第一篇:编写你的第一个 Gtk# 应用

本文是【.NET Core 跨平台 GUI 开发】系列博文的第一篇。该系列博文是一个关于 Gtk# 跨平台应用开发的初级随笔集合。该随笔集合介绍了 GTK 和 Gtk# 的基本信息以及开发方法,并展示了如何使用 .NET Core 技术栈开发基于 Gtk# 的跨平台 GUI 程序。博文假设你已经对 C…

ASP.NET Core快速入门(第4章:ASP.NET Core HTTP介绍)--学习笔记

点击蓝字关注我们课程链接:http://video.jessetalk.cn/course/explore良心课程,大家一起来学习哈!任务22:课程介绍1.HTTP 处理过程2.WebHost 的配置与启动3.Middleware 与管道4.Routing MiddleWare 介绍任务23:Http请求…

Java使用JWS API开发Web Service

JAX-WS,即Java API for XML Web Service,是Java开发基于SOAP协议的Web Service的标准。使用JWS API就可以直接开发简单的Web Service应用。 一、创建Web Service 打开Eclipse,新建一个Java Project,如下图所示: 新建了…

ASP.NET Core快速入门(第3章:依赖注入)--学习笔记

点击蓝字关注我们课程链接:http://video.jessetalk.cn/course/explore良心课程,大家一起来学习哈!任务16:介绍1、依赖注入概念详解从UML和软件建模来理解从单元测试来理解2、ASP.NET Core 源码解析任务17:从UML角度来理…

使用wsimport命令创建Web Service客户端

一、wsimport简介 在jdk的bin文件夹中,有一个wsimport.exe工具。这个工具可以依据Web Service的描述文件wsdl生成相应的类文件,然后用这些类文件,被Web Service的客户端导入之后,就可以像调用本地的类一样调用WebService提供的方法…

读《持续交付2.0》

几年前看过《持续交付(发布可靠软件的系统方法)》,感触不是很深,最近看了这本书的译者乔梁编写的《持续交付2.0》,结合工作中的种种,又有一种相见恨晚的感觉。可见好书是需要经常翻阅的,每次都会带来新的收获和思考。全…

Java使用Apache CXF开发Web Service

转自:http://blog.csdn.net/hu_shengyang/article/details/38384597 以前工作中也用CXF,但都是用别人现成搭好的环境,这次自己重头搭建一遍环境。过程中也有遇到的问题,也做了简单的整理。 对于CXF是干什么用的,我不想多说&#x…

程序员修神之路--kubernetes是微服务发展的必然产物

菜菜哥,我昨天又请假出去面试了战况如何呀?多数面试题回答的还行,但是最后让我介绍微服务和kubernetes的时候,挂了话说微服务和kubernetes内容确实挺多的那你给我大体介绍一下呗可以呀,不过要请和coffee哦◆◆kubernet…

Java基础知识——Java数组详解

数组是一种数据结构,用来存储同一类型值的集合,可以存储基本数据类型和类。 数组的大小是固定的,通过一个整型下标(从0开始)可以访问数组中的每个值。此外,Java会对数组进行边界检查,如果发现有…

.NET core3.0 使用Jwt保护api

摘要:本文演示如何向有效用户提供jwt,以及如何在webapi中使用该token通过JwtBearerMiddleware中间件对用户进行身份认证。认证和授权区别?首先我们要弄清楚认证(Authentication)和授权(Authorization&#…

Java ArrayList的实现原理详解

ArrayList是Java List类型的集合类中最常使用的,本文基于Java1.8,对于ArrayList的实现原理做一下详细讲解。 (Java1.8源码:http://docs.oracle.com/javase/8/docs/api/) 一、ArrayList实现原理总结 ArrayList的实现原…

.NET开发者的机遇与Web Blazor基础(有彩蛋)

一.唠唠WebAssembly的发展历程目前有很多支持WebAssembly的项目,但发展最快的是Blazor,这是一个构建单页面的.NET技术,目前已经从Preview版本升级到了beta版本,微软计划在2020年5月发布Blazor的第一个版本。Blazor是什么&#xff…

Java LinkedList的实现原理详解

LinkedList是Java List类型的集合类的一种实现,此外,LinkedList还实现了Deque接口。本文基于Java1.8,对于LinkedList的实现原理做一下详细讲解。 (Java1.8源码:http://docs.oracle.com/javase/8/docs/api/&#xff09…

知乎高赞:中国有哪些不错的开源软件产品?

点击蓝字“dotNET匠人”关注我哟加个“星标★”,每日 7:15,好文必达!在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?”事实上,还不少呢~…

Java LinkedList双向链表源码分析

LinkedList就传说中的双向链表了。是List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方…