本文转自http://www.cnblogs.com/beijiguangyong/archive/2012/11/12/2767054.html

开发当中常常听说“业务”这个词,什么“业务为王”之类的词不绝于耳,那么什么是业务?

百度上的解释是:“‘业务’更白话一些来说,就是各行业中需要处理的事务……”。软件开发的目的就是利用计算机帮助人们完成自己工作中的事务,可见业务对于软件开发来说多么的重要,也就是说只有把业务搞清楚了才能进行软件开发,否则一切都是空中楼阁。

那么到底什么是业务,怎样才能搞清楚业务?

听到的故事

一个农民出钱请科学家帮一忙,农民的要求很简单,请科学家让自己家耕地的牛吃的是平时的十分之一,干的活是平时的十倍。然后科学家开始想办法,最终得到的结论是:要满足农民朋友的需求就必须改变牛的基因,于是科学家们开始了这个宏大的生物工程……

随着时间的推移最终的结果大家一定能猜到,科学家硬着头皮做了几天的转基因实验,最终这个工程因为经费不足而告终,农民也没有实现自己提高生产率的愿望。

真实的一面:从表面看来农民朋友想要的是一头基因优秀的牛,这头牛吃的少干的多,但是实际上呢,农民想要的只是一台拖拉机而已。但是起初的时候农民不知道有拖拉机这么个东西,也就是说他自己也不知道自己要的什么,他知道的仅仅是非根源性的需求(让牛吃的少干的多),于是非根源性的需求就把科学家带到了迷途当中。

反思:类比到项目开发中,我们就是科学家,客户就是农民,项目就是牛或者拖拉机。我们要站在客户的角度,要知道客户需要的到底是什么,是一头基因优秀的牛还是一个普通的拖拉机。

什么是业务

到这里我们就应该好好的思考一下什么是业务了,是农民那高不可攀的需求算业务,还是转换思路给农民一台拖拉机算业务。

我们的客户可能常常要求我们在开发中完成一些不可能的事情,(笔者就遇到很多,比如有的客户竟然提出将页面上的复选框改变颜色,甚至于将复选框的选中样式变为打钩、打叉、画圈等等。)其实客户这么说是没有问题的,毕竟他们是客户,他们没有计算机知识。他们提出这样的要求一定有他们的理由,但是如果开发者不问缘由,跟着客户的思路走下去,那就和上面的例子没有区别了,最终的项目只能以失败而告终。

关于什么是业务,笔者自己的理解是:某个行业中的事务抽象到计算机中才叫业务,没有抽象那只能叫事务或者一系列操作。回到上面的例子当中,帮助农民朋友研究转基因牛不能叫业务,从农民的需求当中抽象出他真正想要的(这里指拖拉机)才是业务。

怎样搞清楚业务

客户懂“业务”么?严格的说客户们其实不懂业务,客户知道的只是应该怎样干活而已。所以这就解释了为什么任何人经过培训之后都可以胜任自己的工作(这里指任何行业),只不过有人干的快,有人干的慢,这取决于熟练程度、天赋等等各种因素。比如银行的收纳人员,比如公务员等等,除了那些高端的工作,比如航天事业,其他的行业经过一段时间的培训或者磨练人人都可以(老实说从事高端的工作也是可以经过培训上手的,只不过高端的工作需要花费更长的时间培训而已)。

客户知道自己工作的一系列操作流程,用百度百科里面的话说就是:客户知道自己行业当中的各个事务。但是客户不知道具体应该怎样用计算机帮助自己处理这些事务(就像农民朋友不知道拖拉机一样,他根本不知道有这么一回事)。所以当客户提出我们理解不了的需求的时候我们应该好好去研究客户为什么要提出这样的需求,而不是对客户的要求听之、任之、从之……。

所以说

作为项目经理或者开发者要从客户的需求当中抽象出客户到底需要什么,并不是客户要什么就直接给什么,只有做到了这一点这才算是一个懂业务的开发者,一个高级开发者,一个非纯粹的开发者,一个脱离了低级趣味的开发者:)。

IT阅读——关于“业务”的更多相关文章

  1. Serverless架构详解:开发者如何专注于业务代码本身?

    本文来自腾讯云技术沙龙,本次沙龙主题为Serverless架构开发与SCF部署实践 演讲嘉宾:黄文俊,曾负责企业级存储.企业级容器平台等产品的架构与开发,目前主要负责SCF腾讯无服务器云函数产品相关. ...

  2. DDD 领域驱动设计-在动手之前,先把你的脑袋清理干净

    惨不忍睹的翻译 英文原文:http://www.codeproject.com/Articles/339725/Domain-Driven-Design-Clear-Your-Concepts-Bef ...

  3. Monad 在实际开发中的应用

    版权归作者所有,任何形式转载请联系作者. 作者:tison(来自豆瓣) 来源:https://www.douban.com/note/733279598/ Monad 在实际开发中的应用 不同的人会从 ...

  4. 如何运用DDD - 实体

    目录 如何运用DDD - 实体 概述 何为实体 似曾相识 你确定它真的需要ID吗 运用实体 结合值对象 为实体赋予它的行为 尝试转移一部分行为给值对象 愿景是美好的 现实是残酷的 总结 如何运用DDD ...

  5. 用c#开发微信 (12) 微统计 - 阅读分享统计系统 2 业务逻辑实现

    微信平台自带的统计功能太简单,有时我们需要统计有哪些微信个人用户阅读.分享了微信公众号的手机网页,以及微信个人用户访问手机网页的来源:朋友圈分享访问.好友分享消息访问等.本系统实现了手机网页阅读.分享 ...

  6. Netty 源码阅读的思考------耗时业务到底该如何处理

    目录大纲: 前言 处理耗时业务的第一种方式-------handler 种加入线程池 处理耗时业务的第二种方式-------Context 中添加线程池 总结:两种方式的对比和思考 前言 熟悉 Net ...

  7. 《京东B2B业务架构演变》阅读笔记

    一.京东 B2B 业务的定位 让各类型的企业都可以在京东的 B 平台上进行采购.建立采购关系. 京东 B2B 的用户群体主要分为 2 类: 一类是大 B 用户.另一类是小 B 用户.京东 B 平台需要 ...

  8. 《京东B2B业务架构演变》阅读

    转载:https://mp.weixin.qq.com/s/5xmmuw8O-I_Fi5bzE-_baA?tdsourcetag=s_pcqq_aiomsg 京东 B2B 业务的定位是让各类型的企业都 ...

  9. DDD 领域驱动设计-看我如何应对业务需求变化,愚蠢的应对?

    写在前面 阅读目录: 具体业务场景 业务需求变化 "愚蠢"的应对 消息列表实现 消息详情页实现 消息发送.回复.销毁等实现 回到原点的一些思考 业务需求变化,领域模型变化了吗? 对 ...

随机推荐

  1. 关于miniconda的安装,配置以及包批量安装和使用

    由于时间很晚了.就不写废话了. conda官方文档地址:http://conda.pydata.org/docs/ 一切其实都可以从miniconda的文档找到,这里只纪录自己操作的时候遇到的值得一说 ...

  2. springMVC 使用WebApplicationContext获取ApplicationContext对象

    主要用于从application中获取bean 1.applicationContext 在web.xml中使用listener配置 <context-param> <param-n ...

  3. BZOJ5010 FJOI2017矩阵填数(容斥原理)

    如果只考虑某个子矩阵的话,其最大值为v的方案数显然是vsize-(v-1)size.问题在于处理子矩阵间的交叉情况. 如果两个交叉的子矩阵所要求的最大值不同,可以直接把交叉部分划给所要求的最大值较小的 ...

  4. java 获取 T.class

    转载:http://www.hankcs.com/program/t-class.html @Test public void Test() throws Exception{ Foo<User ...

  5. hdu 5919 Sequence II (可持久化线段树)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=5919 大致题意: 给你一个长度为n的序列,q个询问,每次询问是给你两个数x,y,经过与上一次的答案进行运算 ...

  6. Codeforces Round #411 div 2 D. Minimum number of steps

    D. Minimum number of steps time limit per test 1 second memory limit per test 256 megabytes input st ...

  7. 自学Aruba4.1-Aruba开机初始化

    点击返回:自学Aruba之路 自学Aruba4.1-Aruba开机初始化 无线控制器刚启动的时候,是没有任何配置的,需要进行初始化配置才能进行管理. 通过无线控制器的console端口连接无线控制器, ...

  8. 【BZOJ2001】[HNOI2010]城市建设(CDQ分治,线段树分治)

    [BZOJ2001][HNOI2010]城市建设(CDQ分治,线段树分治) 题面 BZOJ 洛谷 题解 好神仙啊这题.原来想做一直不会做(然而YCB神仙早就切了),今天来怒写一发. 很明显这个玩意换种 ...

  9. GDB最常用的命令

    为了调试我的指针LCT--我学会了如何使用gdb! 粘一个常用命令表(原文地址:https://blog.csdn.net/tzshlyt/article/details/53668885) gcc ...

  10. 4月1日->-4月15日 2周阶段性计划

    4月1日->4月14日 ST表 树状数组 LCA 一周的时间,力求掌握这三个知识点并各刷五道题左右. 树状数组 ST表 LCA 然而:进展总比计划快(......什么鬼) 树状数组刷了5题,ST ...