工作中如何应对那些不讲武德的人?

本文探讨了职场中的预期管理,如何通过公开透明的SLA设定服务标准,以及在面对家长投诉时运用教师的沟通策略。强调了在处理人际关系和冲突时遵循流程、预期管理的重要性,以避免不必要的纷争和责任归属问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有人的地方就会有江湖,有江湖的地方就会有纷争,纷争主要来源于人与人之间的摩擦。我们工作中难免要和形形色色的人找交道,时间久了你就会发现:不出事情的时候,大家你好我好大家好,一片祥和;有事情的时候,你来我往地 甩锅,很容易一地鸡毛。

前段时间有个之前带过的小朋友工作中和同事起了冲突,受了委屈,找我取经。他可能觉得我这个在互联网研发领域里,带着团队同时对接过几个十业务线的老司机,深刻地体会过什么叫“人在家中坐,锅从天上来”,背锅甩锅 的经验比较丰富吧,正好梳理出来和大家分享一下。

经验不是万能的,但是可以复制的,我自己觉得至少可以解决日常 80% 的问题。

家长和老师

一位教师,批评了一位经常欺负其他小朋友的孩子,家长也不了解事情经过,找到学校对这位老师就是无礼的责骂,还不停的质问:你还是一名老师吗?

这是一位网友的提问。如果是你,你会怎么应对?我的第一反应:

你作为孩子的父母,不分青红皂白地跑到学校,把自己孩子的老师骂一顿,你上学的时候老师是怎么教你的,你现在配当一名合格的家长吗?

这是一种 硬刚 式的做法,双方争得面红耳赤地,很容易吵一架或干一仗,实战中不建议使用。

职场法则: 不要轻易和人翻脸,不要第一个翻脸,最好不要翻脸。老话说的“宰相肚里能撑船”还是很有道理的。

建议的做法:摆事实,讲道理

你可能会说:就这?讲什么道理?公说公有理,婆说婆有理,很容易变成我没理。什么?让我和他讲武德,这玩意看不见摸不着的,谁知道是个什么玩意儿。

打擂台

大家没上过擂台,应该在电影里看过打擂吧。两个人交手之前要当众签个状子,提前声明如果一方把另一方干坏了,另一方不能找后事儿;裁判还会告诉双方规矩:不能插眼封喉踢裆,也不能背后下黑手。如果打擂过程中,你下黑手了;或者擂台结束之后,你找人家事了;那对方完全有理由说你没有武德,不讲道理,鄙视你。为啥?因为你们双方之前当着大家面儿签的状子,定好的规矩。现在你不按 游戏规则 来,大家心理明镜儿似的,说到哪你自己也理亏。

我重点要说的就是这个游戏规则,职场里它有个专用的名称:预期管理

预期管理

预期管理就是管理好他人对你的期望。一般情况下,他人可以分成两种角色:

  1. 你的服务对象,俗称业务方;
  2. 你的主管领导;

从业务方的角度,管理预期就是可以明确告诉对方:

  • 你能做些什么事情
  • 事情能做到什么程度
  • 过程中可能会出哪些问题
  • 如果有问题,你的预案是什么
  • 如果有问题,业务方会有哪些影响,需要提前准备什么

有个特有名词专门定这个,叫做:SLA;不知道的自己查一下,核心就是要有量化或质化的指标和数据,用于明确判断服务状态。

假设我们可以提供一个数据存储服务:

  • 能做什么:数据存储
  • 能做到什么程度:全年不可用时间小于 1 天
  • 过程中可能会出哪些问题:数据可能会丢失、服务可能会不可用
  • 如果有问题,你的预案是什么:15 分钟内响应问题,30 分钟内解决问题
  • 如果有问题,业务方会有哪些影响:数据访问不可用
  • 如果有问题,业务方需要准备什么:做一个专用提示,网络可能不可用,让用户等一会儿再试试

这些预期必须是公开透明的,不是私底下和某个业务方约定的。对接服务的时候,业务方觉得预期可以接受,就接入你的服务,不行就拉倒。

接入服务之后,如果有问题,就按预期判断是哪边的问题:

  • 全年不可用时间大于或等于 1 天,你的问题
  • 响应时间超过 15 分钟,或者解决问题时间超过 30 分钟,你的问题
  • 数据访问不可用期间,用户访问异常,未做提示,业务方的问题

特别说明,如果根据预期判断不出是谁的问题,那就是你的问题,吃一堑长一智,不亏,赶紧把预期完善一下,别在同一个地方跌倒两次。

从领导的角度,管理预期也是类似的:

  • 我要干些什么事情
  • 事情要做到什么程度
  • 过程中可能会出哪些问题
  • 如果有问题,你会怎么干
  • 如果有问题,需要领导怎么支持你

也有个特有名词专门定这个,叫做:KPI;这个大家应该都知道,核心就是有问题的时候一定要 第一时间 汇报领导,然后再去解决问题;另外就是提前和领导说好,你的干的事儿需要他的支持,要是支持的不到位,事儿可干不成。

最重要的是,无论是业务角度还是领导角度,你的预期必须在一定的水平之上,要不业务方觉得你服务不行,领导觉得你能力不行,你被 优化 的日子也就不远了。

家长和老师

老师和所有学生说:你们不能欺负其他小朋友,要不我会批评教育你;
老师和所有家长说:你们告诉自己家的小孩子,在学校不能欺负其他小朋友,要不我会批评教育他,还可能一起批评教育你,批评教育的方式有…;
老师和学校领导说:如果有家长来学校骂我,我能不能骂回去…。

如果有家长来学校找,有冲突第一时间报备学校领导;如果批评教育小孩子,要注意方式方法,且第一时间周知家长。

小朋友教育是大事,马虎不得。

写在最后

工作中,有流程的地方,一定要按流程走;没有流程的地方,一定要尽快制订沟通制订流程;有问题的时候,把该有的流程都走完,即使结果不好,你起码可以说自己尽力了;如果结果不好,该有的流程你没走完,那就是你的问题,主动把锅背起来承担责任,也是能担当的表现。

再怎么努力,我们的工作也不可能让所有人满意,有一个二八定律,我经常用来宽慰自己,能让多数人认可我们就很好。剩下的那一小部分,江湖大了去了,能人很多,我们继续学习。

– 来自百度多态其实可以简单看成就是用户执行同样的行为,但是因为执行者的差异,展现出同的效果通常语言中会使用继承和动态绑定来实习这一目的(当然,你个年轻武德,用函数绑定来干这一件事情另谈)常规多态class A {public: virtual void f() {std::cout << "A\n";}};class B: public A {public: void f() {std::cout << "B\n";}};class C: public A {public: void f() {std::cout << "C\n";}};void demo(A* a) { a->f();}int main() { demo(new A); demo(new B); demo(new C); return 0;}12345678910111213141516171819202122232425直接使用std::function第二种并算上一种方法,但是在只有一个两个虚函数时还是有用途的class A {public: std::function<void()> f; explicit A(std::function<void()>&&fun): f(std::move(fun)){}};void demo(A* a) { a->f();}int main() { demo(new A([]() {std::cout << "A\n";})); demo(new A([]() {std::cout << "B\n";})); demo(new A([]() {std::cout << "C\n";}));}123456789101112131415上述都是迟绑定在c++里面,若是要实现多态的话,实现多态利用的虚表来实现的迟绑定(类似于std::function),虚表中存放好对应函数的调用地址,以此来实现运行时选择但是,运行时绑定也是没有负担C++中内存布局函数能内联和优化虚表再怎么都需要占用一个指针的空间,然,如何存放虚表指针由于是运行时决定,而是早绑定,需要通过虚表去寻找调用地址,中间存在一个过程(虽然可以忽略计,但是计较今天怎么说CRTP呢?)。c++的虚表可以满足需求了c++是一门多样化的语言多样化让c++变得可以选择的方式变多了(比如上述的直接利用std::function来搞,你只管实现,剩下的交给编译器)CRTP,一般类似于这种形式template<typename T>class A {public: T* self() {return static_cast<T*>(this);} };class B: public A<B>{ };123456789核心在于,父类是个模板,模板有个参数是子类对于父类来说,只需要知道子类的名称可以生成一个指针就可以了父类在实例化时只需要有子类的声明的就ok了,由于传入的模板类会继承自己,所以自己可以向下转这个指针。于是,我们就可以这样玩:template <typename D> class Base { void f_impl(); int add_impl(int a, int b); D *self() { return static_cast<D *>(this); }protected: Base() {}public: void f() { self()->f_impl(); } int add(int a, int b) { return self()->add_impl(a, b); }};class A : public Base<A> {public: int x; A(int v): x(v) {} int add_impl(int a, int b) {return x + a + b;} void f_impl() { std::cout << "A\n"; }};class B : public Base<B> {public: int x; B(int v): x(v) {} int add_impl(int a, int b) {return x + a + b;} void f_impl() { std::cout << "B\n"; }};int main() { Base<A> *t = new A(1); t->f(); std::cout << t->add(1, 2) << "\n"; Base<B> *p = new B(1); p->f(); std::cout << p->add(1, 2) << "\n"; return 0;}12345678910111213141516171819202122232425262728293031323334353637让父类生成对象父类只声明具体函数实现其实只是交给编译器,去codegen 生成了 几分同的 base <T> 的类所有行为发生在编译期上述main代码里面还是重复代码了,我们是“多态”,当然要做一个统一的动作呢统一动作呢,当然也要统一生成
04-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值