IT阅读——关于“业务”
本文转自http://www.cnblogs.com/beijiguangyong/archive/2012/11/12/2767054.html
开发当中常常听说“业务”这个词,什么“业务为王”之类的词不绝于耳,那么什么是业务?
百度上的解释是:“‘业务’更白话一些来说,就是各行业中需要处理的事务……”。软件开发的目的就是利用计算机帮助人们完成自己工作中的事务,可见业务对于软件开发来说多么的重要,也就是说只有把业务搞清楚了才能进行软件开发,否则一切都是空中楼阁。
那么到底什么是业务,怎样才能搞清楚业务?
听到的故事
一个农民出钱请科学家帮一忙,农民的要求很简单,请科学家让自己家耕地的牛吃的是平时的十分之一,干的活是平时的十倍。然后科学家开始想办法,最终得到的结论是:要满足农民朋友的需求就必须改变牛的基因,于是科学家们开始了这个宏大的生物工程……
随着时间的推移最终的结果大家一定能猜到,科学家硬着头皮做了几天的转基因实验,最终这个工程因为经费不足而告终,农民也没有实现自己提高生产率的愿望。
真实的一面:从表面看来农民朋友想要的是一头基因优秀的牛,这头牛吃的少干的多,但是实际上呢,农民想要的只是一台拖拉机而已。但是起初的时候农民不知道有拖拉机这么个东西,也就是说他自己也不知道自己要的什么,他知道的仅仅是非根源性的需求(让牛吃的少干的多),于是非根源性的需求就把科学家带到了迷途当中。
反思:类比到项目开发中,我们就是科学家,客户就是农民,项目就是牛或者拖拉机。我们要站在客户的角度,要知道客户需要的到底是什么,是一头基因优秀的牛还是一个普通的拖拉机。
什么是业务
到这里我们就应该好好的思考一下什么是业务了,是农民那高不可攀的需求算业务,还是转换思路给农民一台拖拉机算业务。
我们的客户可能常常要求我们在开发中完成一些不可能的事情,(笔者就遇到很多,比如有的客户竟然提出将页面上的复选框改变颜色,甚至于将复选框的选中样式变为打钩、打叉、画圈等等。)其实客户这么说是没有问题的,毕竟他们是客户,他们没有计算机知识。他们提出这样的要求一定有他们的理由,但是如果开发者不问缘由,跟着客户的思路走下去,那就和上面的例子没有区别了,最终的项目只能以失败而告终。
关于什么是业务,笔者自己的理解是:某个行业中的事务抽象到计算机中才叫业务,没有抽象那只能叫事务或者一系列操作。回到上面的例子当中,帮助农民朋友研究转基因牛不能叫业务,从农民的需求当中抽象出他真正想要的(这里指拖拉机)才是业务。
怎样搞清楚业务
客户懂“业务”么?严格的说客户们其实不懂业务,客户知道的只是应该怎样干活而已。所以这就解释了为什么任何人经过培训之后都可以胜任自己的工作(这里指任何行业),只不过有人干的快,有人干的慢,这取决于熟练程度、天赋等等各种因素。比如银行的收纳人员,比如公务员等等,除了那些高端的工作,比如航天事业,其他的行业经过一段时间的培训或者磨练人人都可以(老实说从事高端的工作也是可以经过培训上手的,只不过高端的工作需要花费更长的时间培训而已)。
客户知道自己工作的一系列操作流程,用百度百科里面的话说就是:客户知道自己行业当中的各个事务。但是客户不知道具体应该怎样用计算机帮助自己处理这些事务(就像农民朋友不知道拖拉机一样,他根本不知道有这么一回事)。所以当客户提出我们理解不了的需求的时候我们应该好好去研究客户为什么要提出这样的需求,而不是对客户的要求听之、任之、从之……。
所以说
作为项目经理或者开发者要从客户的需求当中抽象出客户到底需要什么,并不是客户要什么就直接给什么,只有做到了这一点这才算是一个懂业务的开发者,一个高级开发者,一个非纯粹的开发者,一个脱离了低级趣味的开发者:)。
IT阅读——关于“业务”的更多相关文章
- Serverless架构详解:开发者如何专注于业务代码本身?
本文来自腾讯云技术沙龙,本次沙龙主题为Serverless架构开发与SCF部署实践 演讲嘉宾:黄文俊,曾负责企业级存储.企业级容器平台等产品的架构与开发,目前主要负责SCF腾讯无服务器云函数产品相关. ...
- DDD 领域驱动设计-在动手之前,先把你的脑袋清理干净
惨不忍睹的翻译 英文原文:http://www.codeproject.com/Articles/339725/Domain-Driven-Design-Clear-Your-Concepts-Bef ...
- Monad 在实际开发中的应用
版权归作者所有,任何形式转载请联系作者. 作者:tison(来自豆瓣) 来源:https://www.douban.com/note/733279598/ Monad 在实际开发中的应用 不同的人会从 ...
- 如何运用DDD - 实体
目录 如何运用DDD - 实体 概述 何为实体 似曾相识 你确定它真的需要ID吗 运用实体 结合值对象 为实体赋予它的行为 尝试转移一部分行为给值对象 愿景是美好的 现实是残酷的 总结 如何运用DDD ...
- 用c#开发微信 (12) 微统计 - 阅读分享统计系统 2 业务逻辑实现
微信平台自带的统计功能太简单,有时我们需要统计有哪些微信个人用户阅读.分享了微信公众号的手机网页,以及微信个人用户访问手机网页的来源:朋友圈分享访问.好友分享消息访问等.本系统实现了手机网页阅读.分享 ...
- Netty 源码阅读的思考------耗时业务到底该如何处理
目录大纲: 前言 处理耗时业务的第一种方式-------handler 种加入线程池 处理耗时业务的第二种方式-------Context 中添加线程池 总结:两种方式的对比和思考 前言 熟悉 Net ...
- 《京东B2B业务架构演变》阅读笔记
一.京东 B2B 业务的定位 让各类型的企业都可以在京东的 B 平台上进行采购.建立采购关系. 京东 B2B 的用户群体主要分为 2 类: 一类是大 B 用户.另一类是小 B 用户.京东 B 平台需要 ...
- 《京东B2B业务架构演变》阅读
转载:https://mp.weixin.qq.com/s/5xmmuw8O-I_Fi5bzE-_baA?tdsourcetag=s_pcqq_aiomsg 京东 B2B 业务的定位是让各类型的企业都 ...
- DDD 领域驱动设计-看我如何应对业务需求变化,愚蠢的应对?
写在前面 阅读目录: 具体业务场景 业务需求变化 "愚蠢"的应对 消息列表实现 消息详情页实现 消息发送.回复.销毁等实现 回到原点的一些思考 业务需求变化,领域模型变化了吗? 对 ...
随机推荐
- angular4 组件通讯、生命周期
主要通讯形式 父组件通过属性绑定到子组件,子组件通过事件传递参数到父组件 父组件通过局部变量获取子组件的引用 父组件使用@ViewChild获取子组件的引用 两个不相关联的组件使用中间人模式交互 终极 ...
- 微信小程序开发3之保存数据及页面跳转
第一 保存本地数据 1.异步保存本地数据 wx.setStorage({ key:keyStr, data:dataStr, success: function(e){}, fail: functi ...
- html DOM 方法和屬性
html利用javascript對節點執行動作: 每一個節點是一個節點對象,對節點的動作是通過方法和屬性接口實現的: 方法:就是執行的動作: 屬性就是節點的屬性(包括設置和獲取): 常見方法和作用: ...
- Baltic Dry Index
波罗的海干散货指数(Baltic Dry Index,缩写BDI),是航运业的经济指标,它包含了航运业的干散货交易量的转变. BDI波罗的海指数是由几条主要航线的即期运费(Spot Rate)加权计算 ...
- 牛客网练习赛7-D-无向图(bfs,链式前向星)
题意:中文题: 思路:就是找某个点距离其他点的距离,他给你很多点也无所谓.用一个dist[]数组,这个数组保存的是他给你的点到其他点的最短距离且标记的作用,然后bfs搜索就行了. 代码: #inclu ...
- 美图美妆由Try Try接手运营
美图又把一个拖累营收的业务转让出去了. 美图的电商业务——美图美妆应用在向用户发布终止运营的公告后,宣布把业务交给了寺库旗下公司 Try Try 运营.Try Try 接手了美图美妆的所有管理运营权, ...
- JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的?先不要急着复制粘贴到控制台,先自己打开一个代码编辑器或者纸,写写看 ...
- NOIP 2018 游记(退役了!)
一片空白 在霉的不能再霉的18年11月,Noip2018上,倒霉的我也是贼有意思,感冒加身,D2发烧,数组开小…我还能说什么MMP,身体和考试能力真的很重要. ……(省略无数字的心理活动,有空补上~) ...
- 自学Python1.8-python input/print用法 格式化输出
自学Python之路 自学Python1.8-python input/print用法 格式化输出 1.input函数 Python3.x 中 input() 函数接受一个标准输入数据,返回为 str ...
- 【BZOJ2228】[ZJOI2011]礼物(单调栈)
[BZOJ2228][ZJOI2011]礼物(单调栈) 题面 BZOJ 洛谷 题解 如果这个玩意不是一个三维立方体,而是一个二维的矩形,让你在里面找一个最大正方形,那么全世界都会做. 丢到三维上?似乎 ...