接口人和负责人
面向对象编程领域有三个重要的概念:封装,继承和多态,这一点在电影《无间道》中有着重要的体现,梁朝伟的角色明显是被封装起来了,外面并不知道他是坏人还是好人,反正大家是看不出来的,刘德华的角色也一样。而在实际猫和老鼠的追逃过程中,梁朝伟/刘德华的角色既可以做坏事,也可以做好事;今天可以是贩毒抢劫,提供情报,明天可以缉毒逮人,维护正义;这会儿是干猫事,过会儿干鼠活;即根据实际情况动态的选择自己的行为,这就是多态的概念,而实际上继承是为多态服务的。
在wikipedia中描述封装的概念是有
Encapsulation is a technique that encourages decouping.
而decouping的概念
In software engineering, coupling is the manner and degree of interdependence between software modules; a measure of how closely connected two routines or modules are; the strength of the relationships between modules.
封装是模块解耦的一种技术,如果把这里的模块比喻成公司里面的部门组织,那么涉及部门之间协作的时候就可以应用这个技术。
比如下面的这个场景
department_communicate.jpg示意中前线人员可以为和客户打交道的角色,如果面对的不同类型的客户,人员就会比较多;A产品和B产品等在客户看来存在着较大联系,可以理解为形成一套解决方案。当前线人员接到客户问题或者特殊的需求时,必须快速找到对应的产品相关人员。那么人们会想到定下如下的产品联系信息
inteface1.jpg接着所有前线人员都拿到了这个联系消息表,比较顺畅的找到产品相关人了。接下来会出现什么状况呢?2-3个月后,蓝采和调岗了,半年后,张国老离职了,还有曹国舅打篮球受伤住院了。前线人员就这样又找不到人了,有同学就会说了,把这个信息表维护更新一下不就得了吗,我只想说算是一个办法,不过这个花费的成本就想过吗?先不说维护的人得花时间不停地轮训或者由产品来触发他去修改信息,我们谈一下前线人员的记忆成本,每换一个接口人我就得记忆一次,产品一多的话,每次先找到这张表,查到后才能找到对应的人。
如果我们运用封装的办法,怎么弄呢?
inteface2.jpg接口不要搞成具体人名,标识为统一规则的名称,A_Operation可以不只是一个人,可以是一个团队的人(接到反馈,快速响应,特殊业务24小时轮流待命),可以是alphago(哈哈,开个玩笑)。这样既可以解决人员变更和响应效率,又可以让前线人员记忆一次,快速定位。
话说到这里,前线同学就会说了,找这个很不直观,都他妈抽象了,没人响应我怎么办,我也不知道是不是和狗对话。对于这个,我想说,每个产品都有产品负责人,没有响应说明什么问题,产品负责人对产品问题/需求反馈的不重视,那还负责什么产品,所以真出现了没人响应,我不反对直接投诉,当然投诉前建议和产品负责人深度沟通一下。
负责人和接口人的区别在于,负责人要把事情负责到底,出了问题第一时间背黑锅,并想办法尽快解决。具体到项目来说,项目经理就是第一负责人,带兵打仗的将军,因此项目经理就不应该干成是干杂事的,如果真干成干杂事的,那就进入恶性循环了,项目失败是必然的,对于此类项目经理应该回炉学习再上岗。