工做走的累了,不妨停下来,思考一下这一路走来的艰辛。 算一算,我也是工做时间不短的人了。 可是老是感受工做中思路、方法或多或少有问题。 前几日和朋友几杯酒下肚,却是聊出了一些故事,说说本身的感觉,也就成了此文。web
目标&手段——引子面试
先来讲个场景,关于电商的秒杀。sql
“大秒活动基本都是在整点进行的,整点活动的详情页流量会很是高,为了保证这么大的流量不冲垮机器,业内大体的作法以下:后端
从详情页开始就作了多层过滤。首先是垃圾请求,普通的电商商品是能够经过拼http/https下单请求参数直接下单的,然而对大秒来讲,若是选择了答题,题目参数用户是没法推断的,detail会作一层简单的过滤,将这部分垃圾请求直接拦截掉;接着,因为人的操做速度限制,一秒几十次的请求会被系统直接关进小黑屋,进行若干时间的屏蔽;若是流量依然很大,采起了栅栏方式进行限流(此限流方式有运气成分,平时不会开启,只有在大促限流时偶尔开启),在系统约定的容许请求经过时间点起,会进行一个随机的时间偏移,每一个请求的偏移时间不一样,若是请求在偏移时间以内,很差意思,运气很差,须要再重试一次”。服务器
在这个故事中,合适的作法,应该先关注“如何从技术角度保证秒杀能够进行”,而不是“怎么让后端服务器同时顶住巨大的流量”。二者的区别,是目标和手段的区别。若是一开始就考虑怎么顶住流量,颇有可能就会由于选择了错误的方案,走进死胡同(好比有可能加数倍的机器以及让开发同窗被迫去压榨已经接近极限的性能)。架构
在工做中也同样,首先须要围绕目标思考“ 要拿到什么结果 ”,再考虑“ 如何拿到这个结果 ”。这个概念极为重要,再怎么重视都不为过。性能
方向&方案学习
方向是肯定的目标,方案是自由的手段 。测试
城市环卫,目标是保持干净的市容市貌,而不是雇佣和管理成千上万的清洁工,后者只是一种实现目标的方案。3d
日本采起了另外一种方案,就是作好垃圾分类,作好卫生教育,结果却比绝大部分国内城市作得好。对于清洁工个体,也同样:能够选择早出晚归勤扫不辍,也能够选择多搞几个垃圾桶,放 在垃圾源边上。
“无论黑猫白猫,能抓老鼠的猫就是好猫”,是关于“方向&方案”的最好辩证。在这里,“抓老鼠”是目标,是好猫的标准,而不是长得萌或其余;在这个标准下,黑猫白猫均可以是好猫。
不管是公司CEO,仍是清洁工,在目标肯定的状况下,手段的选择是自由的。清楚这个概念,工做思路能够开阔不少。能够问老板要方向,不要问老板要方案。方案是本身弄出来的,能想到leader想不到的方案并作出来,就是咱们牛逼,才能体现本身的价值。更进一步,理解目标更能帮你站在leader的角度看问题,才能及时补位,超出预期。
结果&过程
结果是衡量工做好坏的惟一标准,而过程不能彻底拿来衡量工做好坏 。
在业务上,说“用户是上帝”,说“用户永远是对的”,由于“用户感知是检验工做好坏的惟一标准”。一个事情作得好很差,不是由你的出发点、动机和付出多少努力所决定的,而是你的用户的感知所决定的。以前在前一家公司负责过公司内部系统流程的移动审批接入。上线以后接到很多同事的反馈说体验很差, 手机打开审批流程慢。老板找我聊,我也解释了很多,说做为审批网关性能实际上和内外任务中心以及下游业务方数据实时获取都有关,但老板的意思很明确, “对于用户而言,主观即客观”,用户主观以为这个产品很差,那就是很差,没什么可说的。去想办法改进才是正道。另外一个角度来看,只有用户可感知的,才是有意义的。这个话我说的稍微有些极端,可是并不是没有依据。咱们不少人平时都是很忙。早上PRD, 下午技术方案评审,明天kickoff。可是这些只会产生结论,并无产生结果。这些“结论”,用户都是没有感知的,并不能让咱们的产品和服务让更多人知道,让更多人喜欢。在这些“结论”产生结果以前,全部的开会、讨论、分析,都是无用功。极端一点讲,都是成本,而不是成果。
没有借口,说到作到
**说到作到,是最大的靠谱 **。
我遇到过不少这样的场景。身边的不少同事,包括我本身。老是喜欢为本身找借口。咱们老是会说,项目晚上线, 是由于临时出了bug,是由于临时有新项目插进来了,是由于对方联调的同事请假了,而后会把话题转移到本身有多么多么辛苦。
岔开说个小事。我本身不少时候对于时间很偏执。有朋友说过,“全部关于迟到的理由都是不成立的”。因此我老是很在乎时间的规划。好比我去每次去机场都会详细的规划好时间。好比晚上九点半的飞机。那我估计多长时间候机?以往在路上大概多久(好比一路畅通从武林门机场大巴站到萧山机场须要27分钟)? 若是晚高峰预留多少时间合适?我须要多长时间能打到车?等等。
总有人说,哎呀,路上太堵,运气很差连续碰到红灯,因此迟到了——你老是掐点出门,固然会迟到,不是今天迟到就是明天迟到。你怎么不提早半小时出门呢?你不能默认一路通畅啊,你应该默认路上会堵啊——作项目,你应该默认有困难啊,怎么可能预设没意外呢?怎么不预备好解决突发问题的资源呢?
困难及不肯定性,是须要咱们克服的东西,不是在开始以前,就预设为过后“完不成的理由”。一旦有这种预设,就完了,就从一个“行动者”变成“解释者”了,精气神就没了。的确,是有所谓的不可抗力,但99%被称为不可抗力的东西,都不是不可抗力。以前有句流行的话,“以大多数人努力的程度,根本还没到拼智商的地步”。同样的,大多数人面对的困难和不肯定性,还远不到不可抗力的程度——还没“尽人事”呢,就“听天命”了。
在上一节说过, “ **只有用户可感知的,才是有意义的 **” 。所作的努力和投入,若是没有最终实现并传递到用户身上,就是成本。没有完成目标,就是没有完成目标,没什么可多说的。结果导向的意识形态,就是“ **没有借口 **”。
从终点出发
小孩子刚学写文章,老是想到哪里写到哪里;高手写文章,都是先列提纲再动笔的。
咱们在用手机地图导航的时候,第一步都是先输入目的地。而后地图会给你几条路线的选择,再看是打车仍是公交车。这里面隐藏着一个道理,就是“倒着作事情”。所谓“倒着作事情”,就是在设置行动路径的时候,从你想要达到的结果进行倒推,而不是根据眼下的状况决定行动方案。上一节说到,为了不迟到,就要从上班的时间倒算,来定出门的时间、起床的时间;而不是先看几点钟起床,再看何时能到公司。
拿咱们程序猿来讲,咱们常常犯的错误,就是接到一个需求,内心感叹一句卧槽这很简单。一个早上的时间便已经写完调试而后发布了。结果发生需求变动说要加一个信息本身就懵了, 告诉PD说这个改动很难可能要改动总体的架构。或是当生产环境发生了异常咱们没有作好足够的容灾结果眼睁睁的看着一个小问题变成了一个故障。这里实际上是一个基于问题的假设。分析能力的提高,不是学会多少分析的方法,而是掌握正确的分析思路。
跨团队合做中,结果倒推尤为重要。主导一次合做,不是等对方完成一个项目,再看下一步,而是应该直接约定好项目节点,推动事情。不是“等你作好这个,咱们再约个会讨论那个”,而应该是“下周三咱们一块儿开会讨论结果吧”。这里有一个好处,就是利用好“ 来自目的地的张力 ”,以此倒逼本身和团队,提高效率。
以对方为准
"沟通最大的问题,在于觉得沟通已经发生" 。这是我现阶段遇到的一个很大的问题。
经常听到团队关于沟通的抱怨,“我跟A说过这个事情的,可是A太不靠谱了,到如今都没有作好”。出现这种状况,一般不是A不靠谱,而是在跟A的沟通中出现了问题。沟通容易犯的错误,就是从本身(沟通的发起方)的动做出发,而不是从对方(沟通的结果方)的接收以及接受出发。
举个栗子。
有次项目, 我在发布前给项目组发了邮件。邮件中指明了某同窗在发布前须要将本次涉及到的sql初始化脚本在准备预发时提供给我。结果当天我去要的时候获得的回复是:“我不知道啊?你跟我讲过了?”,我顿时火了:"你特么不看邮件的?"
相似的还有。打车的时候,司机电话说“我在马路右边”,我就会很是恼火,你说东南西北还能够,我又不知道你的朝向,鬼知道你说的右边是哪边啊?发一个通知,说“这个我已经发过群里讲过了”,这只是“讲过了”,却没有保证对方已经了解状况,万一对方电脑坏了呢?“这个模块的接入咱们已经讨论过了,可是无法统一结论”,讨论是讨论了,可是双方数据口径的定义是一致么?
另外须要注意的是,要资源、要信息,不一样的目的须要不一样的沟通方式。对谁讲、讲什么、怎么讲?对方了解背景知识吗?对方有什么样的立场?对方可能会有怎样的质疑?我说的对方听得懂吗?是直接了当讲,仍是旁敲侧击讲?是用邮件正式沟通,仍是电话沟通?是群会沟通,仍是1对1沟通?这些都是沟通以前须要本身问本身的问题,并从对方的角度来得到答案,而不是无差异 的 从本身已经习惯的沟通方式和风格来推动。
沟通最大的美妙之处,在于达成共识;而咱们经常得到的,是已经达成共识的幻觉。正确的沟通,是拓展影响力的最佳方法。沟通中,要确保信息对方已经接收了,在达成共识的过程当中,要确保对方已经接受了——而不能止步于,“反正我已经说过了啊”。
搁置&反馈黑洞
最后来讲说我认为工做中两件最忌讳的事情。
搁置
遇到问题就搁置,职场第一大忌讳。 某件事情被分配到了你的头上,你就要把它解决,躲是没有用的,想方法!哪怕你再讨厌,再反感。
反馈黑洞
积极沟通是第一要务。
这件事情我有深入的感知。程序猿相对来讲是一个比较沉默孤僻的群体。咱们大部分人其实不善于沟通。可是我认为沟通偏偏是工做中的第一要素。不沟通,不主动坦露本身的信息,无论自己实力有多强,在团队中老是会遇到各类问题。说的狠一点,沟通能力就像木桶原理中那块最短的板子,严重制约着咱们的发展。
结语
结果导向思惟,实际上是“反人性”的。人条件反射的就会从“临近的”、“熟悉的”、“具体的”起点的角度来思考和作事,而不会从“遥远的”、“对立的”、“抽象的”结果来进行规划和执行。
在平常工做中,更好的落实以结果为导向,就必须事前清晰到极致的明确结果定义,将责任落实到一对一,这样在过程当中才不会倦怠和推诿,同时也就能更清晰的对目标和责任的实践状况进行准确断定。作出结果,作出事前定义的结果才能不惧质询,才能作出成就、实现价值。
作软件测试的小伙伴们能够加入313782132,群内有关于测试的学习资料、面试技巧、内推机会。
尝试改变,发现不同的本身。