需求,谁说了算?

很多牛人的大作在说到需求时,大多数的人都会说“需求是在产品构建之前必须要发现的那些东西”。ok,我同意此观点。

那么你呢?和我一样的观点吗?

 那么需求谁说了算呢?

客户,购买者,管理者,出钱让我开发软件的人,使用者。。。等等,也许你列出的比我还多。他们说什么我就做什么,客户是上帝,要听客户的话,要站在客户角度想问题,做事情,领导才会中意你。从你的职业生涯来看,是这样的吗?

 我举个例子,知名艺人某冰冰,最近身体不舒服,来到了医院。对医生描述症状说:最近有点恶心呕吐,头晕目眩,有点儿发烧,不消化,睡眠不好,脸上还长出了痘痘。冰冰其人虽然长得好看,身材火辣,但是性格强势,在耳濡目染中对医学知识也有一些理解。脾气也比较急躁,啥事都想越快办成越好,于是乎,她就展现了其女王的一面。对医生说到:我很忙的,想好怎么治了吗?这样吧。你给我开点阿莫西林,开几片安定,一盒健胃消食片,再来点去火的药。好了,就这些吧,赶紧去办。。。

 软件开发过程中,是否你也有遇到类似的经历。

某总对某项目经理小刘说,我们要开发一套采购预算系统,需要管控每个部门的采购预算,控制企业的运营成本,采购的时候,各大小领导需要审批哪些东西可以买哪些不可以买,是否超出预算等,这个系统对公司很重要,小刘啊,你赶紧组织团队开发吧,时间紧迫,年底之前要上线。能不能拿年终奖,就看你了。

 为了满足客户的需要,我们必须马上行动起来。

医生给冰冰开了她想要的药,项目经理开始制定计划,组织程序员,程序员开始编码,测试员准备环境,好一派热闹的景象。可接下来大家会面临的是什么?(停留思考片刻…)

噩梦,难道不是吗?

 冰冰用药后没有效果,天天电话骂医生没用,自身又受病魔困扰;某总迟迟看不到成果,程序员不知道到底要构建什么什么样的产品,项目经理无法推进项目进度,用户反馈说这不是我要的。。。各种噩梦。。。慢慢的有人开始抱怨了,选错了人,选错了行业,选错了职业,有人换了工作岗位,有人转了行,有人开始感叹命运的悲催了。。。

 这样的场景是不是在我们周围经常见到呢?

为什么会是这样的剧情?神啊!救救我吧!

 老实说,这个世界上没有神,能改变现状的只有自己。

貌似跑题了,还好,此刻我已经惊醒。回到正题。

 大多数情况下,医生面对冰冰这样的客户时,需要采纳的是其对病情的描述,而非开什么药的解决方案。(事实上,好的医生都是这么做的)。医生接下来要做的事情,抽血,量体温,或者把脉,拍X光片。。。搞清楚病人的病因。刚刚怀孕的症状和感冒发烧的症状有些相似,但是如何治疗却有根本的区别,难道不是吗?医生在找到病因后,开出处方1,2,3,这才是病人真正的需求。

软件开发过程中对需求的归纳,与医生开处方类似,但是医生比项目经理做得要好。为什么?医生诊断不力,后果会及时显现,严重程度可以评估得到。而一个软件系统,好与坏,谁去评估过?这也是造成乱象的原因之一。

项目经理在听取了某总的描述之后,接下来要做什么?组建团队,制定计划。。。当然不是,前文已说。

 首先要明白的是,某总提出的仅仅是对未来软件产品的一个愿景,或者是一个期望,而绝非需求。在这个愿景或者期望之下,进一步理解它所涉及到人,部门,需要改善企业哪个环节的业务以及需要花多少资金来达成这个愿景。这个和医生需要了解病人愿意花多少钱看病其实是一个道理。

 其次,理解愿景之下,找出当前的问题所在。正如医生给冰冰做的抽血,量体温,把脉,拍X光片,这一系列的检查。然而在软件开发过程中,认为这样的检查就是在收集用户的需求,或者这样耗时太长,耗不起。我认为这是大错特错的,做不起来,不是因为耗时长,而是所需的技能没有。然而实际上很多人都是在这样做(还没明白要做什么的时候,就已经开始构建产品了,建几个表,CRUD走起)。这样做的后果就是噩梦,噩梦啊。。。

 很多人都这么做,并不代表这么做就是对的。当今社会世风日下,道德沦丧,崇拜金钱,很多数人为钱不择手段,能说这是对的吗?

 在找出当前问题所在之后,其实需求也就呼之欲出了。

比如:现在的问题

1.部门主管知道部门今年的预算是10万,但是不知道到目前为止已经花了多少钱,都花在哪些东西上。那么未来的软件系统就必须让部门经理看到当前的结余,以及钱都花在了哪里。

2.采购申请,或者采购人员采购某物品之前,不能及时知道该物品的库存,可能出现重复采购,造成库存积压,资源浪费。未来的软件就必须显示当前物品的安全库存,以及消耗规律等参数,提供给采购人员作出是否要采购的决策。

3.。。。不一一列出了。

 这里列出的1,2,3就好比医生开出的处方。冰冰的病要怎么治是医生说了算。

 到此,你还认为需求是某总,某客户,某冰冰提出来的吗?他们提出来的只是愿景,期望,或者是现状问题的描述。而需求是你依据现状问题得到的解决问题的方法。

 来自vancechan.blog.51cto.com/8100067/1316828

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其中存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其中至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas中的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源中加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值