我觉得给外行人解释一件专业的事情,是很困难的;比如给一个非程序员解释软件开发的过程,很多人认为一个软件外表能看到的样子,就是这个软件的全部;所以很多人认为开发一个淘宝是一件很容易的事情。
如果要解释清楚的话,最好能找到一个对方熟悉的事务流程做比较,这样便于对方的理解。下面我就举个例子,很多细节不一定很恰当:
软件公司开发软件=饭店做饭;
前者的产出物是软件,后者产出物是饭菜;
业务人员=食客,都是业务的提出方;
需求人员=点菜服务员,他们都是记录和分析客户的需求;
程序员=厨师;
看起来厨师炒菜只花了五分钟,但是饭店需要经历采购、清洗、切好备用等一系列的操作;软件开发也一样,不要只看到表面看到的东西,可能一个APP只开发了两周,但是后台的接口服务已经积累了好几几个月甚至几年;
食客有时候不知道要吃什么,说“你给我介绍介绍你们的招牌菜”;业务人员有时候也不知道自己的需求是什么;
食客说“不要放香菜”,但是服务员忘了记录;需求人员也有犯错的时候;
食客点完菜了,过了十分钟说“菜里别放辣椒”;开发人员做到一半的时候,需求变了;
厨师把盐放少了,酱油放多了;程序员有一个情况没有考虑到,有一个判断写错了;
厨师说:“来,我再给你炒一盘。”;程序员说:“来,我把Bug改了。”
厨师为了不失业,没事儿学学新菜;程序员为了不失业,没事儿学学新技术...
总之,如果想给别人解释清楚,那就得让对方感同身受;但是这个过程会很累,所以借用老罗的一句话:“我只对两种人解释,第一类是亲戚朋友,因为他们真的关心我,我给他们解释一下,避免他们担心我,第二类是警察。其他人,爱怎么想怎么想吧。”(大概的意思)
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。