聊一聊 软件系统中的“热力学第二定律”
聊一聊 软件系统中的“热力学第二定律”
热力学第二定律,也叫“熵增定律”。这是德国人克劳修斯提出的理论,最初用于揭示事物总是向无序的方向的发展、以及“孤立系统下热量从高温物体流向低温不可逆”的热力学定律。
“熵”,就是事物的混乱/无序程度,在孤立系统下,熵是不断增加的,当熵达到最大值时,系统会出现严重混乱,最后走向死亡。
图片来自网络
它很好地解释了:为什么一杯开水放着放着就凉了,为什么沙漠的沙丘全都惊人的相似,为什么水只能从高处往低处流,为什么落地的树叶不会再变成树。
尽管软件开发不属于物理学范畴,也不适用物理学中的定律,但有一个定律对他的影响实在太大了,就是“热力学第二定律”,即“熵增定律”。常伴我们左右的软件系统逃不掉熵增定律,仔细观察,能够发现它在渐渐地无序增长,变得越来越杂乱无章。
这篇文章就来聊一聊软件系统 的熵增定律这件事。下面通过三个故事和业务方面事情,带着大家从人性和客观的角度出发,观察软件系统下的物理定律。
1破窗理论
设想下有两个团队正在同时进展同样的项目。团队A,在项目开发过程中,尽管制定了详细和周全的计划,拥有能力最强的工程师,项目的最终结果也不尽人意,随着项目时间推移,代码变得很差。
而另外一个团队B,在开发项目时,尽管也遇到了很大的困难和接二连三的问题,但是却能保持良好的代码状态,圆满的完成了项目任务。
是什么原因造成了这个差异呢?
在城市中,我们总能发现事物相反面,例如:有整洁漂亮的建筑,而另一些却是破烂不堪的房子。是什么造成了这么强烈的冲击感呢?
这两个现象的原因是一致的,就是“破窗理论”。
图片来自网络
以一幢有少许破窗的建筑为例,如果那些窗不被修理好,可能将会有破坏者破坏更多的窗户。最终破坏者甚至会闯入建筑内,如果发现无人居住,甚至就在里面定居或者纵火。在相当短的一段时间内,建筑就会以惊人的速度被破坏掉,而且业主也不愿意去修理这个破烂的房子了。
对应到软件开发领域时,这个”破窗户“,可能是工程师不经意间留下,可能是考虑不周导致,可能是低劣的设计遗留,也可能是错误的需求导致。
之前我们团队内部重构过代码架构,很多业务都进行了重新设计,但是随着时间的推移,破窗开始出现,后面就迅速就变得难以维护,臃肿。当然还有其他原因,但是最重要的原因就是对有问题代码置之不理。
不要留着“破窗户”,见到一个就就修一个。如果没有足够多的时间去修复,最好就加上注释或者是打个bug标记,表示这部分代码需要进行修复,防止窗户破的越来越多。
2温水煮青蛙
美国康奈尔大学的科学家做过的一个温水煮蛙实验:将一只青蛙放进沸水中,青蛙一碰沸腾的热水会立即奋力一跃从锅中跳出逃生;
图片来自网络
又尝试把这只青蛙放进装有冷水的锅里,青蛙如常在水中畅游,然后慢慢将锅里的水加温,直到水烫得无法忍受时,青蛙再想跃出水面逃离危险的环境却已四肢无力,最终死在热水中。
实验说明的是由于对渐变的适应性和习惯性,失去了警惕和反抗力的道理。
在程序系统中也是适用的,程序员们工作时间久了,就会进入一种安逸的状态,称之为“舒适区”。在舒适区中,程序员往往是一种麻痹的状态,对外界的变化感知麻木。
软件代码在时间的长河中,慢慢地、悄无声息的发生着变化,这个变化最终将会失去控制。
大多数的软件系统都会从微不足道的小bug开始,慢性死亡。
软件项目被各种各样的小bug折腾,只能一天天的延期。
软件项目中的每一个需求,就像是衣服上破的洞,被打上一个个的补丁,最后已经无法看清软件架构本身的模样,就像已经无法看清衣服本身的颜色。
最可怕的是,每一个程序员都承认这是正常、可以接受的状态,每天乐此不疲的进行bugfix,他们就像温水里的青蛙,享受着这种状态。丝毫没有感受到整个软件系统正在变成垃圾,变的满目全非。最后迎接他们的是臃肿的、难以维护的代码。
水煮蛙和破窗效应是不同的,他们的不同点在于是否有主观意愿。
破窗问题上,软件系统变得杂乱无章,是程序员们在看到“破窗”时,并没有及时阻止这种事情发生,从而认为没有人会注意到这个问题。
而煮蛙问题上,重点是“慢”,如果放在热水中或者是快速升温,青蛙是会奋力的一跳,逃出生天的。所以程序员真的只是没有察觉,软件系统就在慢慢的走向死亡。
3自我为中心
下图是一副非常有名的画作,名为『从主教花园望见的索尔兹伯里大教堂』,作者康斯太勃尔,英国的著名油画家。
图片来自网络
有一天,康斯太勃尔去他的金主大教堂的主教Fisher先生家里玩。
Fisher主教跟画家先生说:“亲爱的画家,你帮我画一幅画吧。把我和我美丽的妻子以及我这大教堂一起画到画里。我要把画留在教堂,成为镇堂之宝。”于是康斯太勃尔先生很高兴的接下这个项目。
画家开始了辛苦的工作,经过一段时间终于把这幅画完成了。
画家画这幅画时可能心情不好,所以在教堂塔尖上方的天空有一片乌云。Fisher主教看到这幅画后,很不满意。虽然画家把主教大人、主教夫人和教堂都画进去了,但是两口子只在左下角露了个背影,这也就忍了。“下面那几头牛是怎么回事,为什么比我们占的镜头还多?”主教问。画家说:“你没看懂?我是在恭维您呢,是说您和您夫人好牛!”。Fisher先生没什么话说了,然后又找到了新的吐槽点:“为什么天空的云都是乌云?”。
他邀请画家再去他家做客,重新观察,以便于修改画作。画家很不高兴了,就单独把画展出了。展出之后得到很多好评,于是回信给Fisher主教:“你看,大家都说很好看,不用改了。”,Fisher主教收到信后也怒了,回信就说了一句话:“给我改!!!”。
这就是关于需求的故事,我们再看上图,看看教主和教主夫人被画到了哪里?您能找到吗?
大鱼教主想要一幅画,画里有他们夫妻二人和教堂,需求表达完后,并没有再对需求进行更具体的说明。
更深入的思考,为何总是会存在描述不清的情况呢?
读者们肯定也遇到过类似问题,究其更深层次原因,就是“自我中心”。
人的成长过程就是一个“去中心化的”的过程。大约6岁之后,儿童的自我去中心化的能力得到了发展。开始能够认识到别人的感受、观点,但是每个人在社会化过程中,会呈现出不同的去自我中心化的状态。
可以说是每一个成年人都有自我中心,我们的感受,想法,认识不可能做到完全的客观。所以我们需要利用结构化思维,(可以参考我的另一篇文章《程序员必备能力——结构化思维》)和系统化思考(可以参考我的一篇文章《程序员必备能力——深度思考》)。
在软件开发过程中,同样适用这个结论,我认为至少表现如下几点:
-
程序员在设计、开发时,如果没有做到完全的按照产品经理的需求进行,难免对代码的设计进行反复修改,导致熵增
-
程序员正在开发时,随意变更、打乱架构框架,导致代码耦合增大,难以维护
4业务
代码熵增的常见的客观原因是主要是业务压力大,导致没有时间或意愿讲究代码质量。因为向业务压力妥协而生产烂代码之后,开发效率会随之下降,导致业务压力更大,形成一种典型的恶性循环。
在软件我们可以通过下图一览。
05最后的总结
如果物理学只能留一条定律,我会留熵增定律。这个规律包括我们所有生命和非生命的演化规律,当然软件系统也无法逃脱。所有的世间万物都无法逃避。
上面3个故事,是从人性和客观的角度出发,软件系统的熵增一定是会发生。我们要做的是减少他发生程度。
熵增定律是针对宇宙的,那如果要针对地球,针对一个国家,针对一个企业,针对某一个人,一个软件系统呢?则要加上两个限制条件——封闭系统+无外力做功。
所以怎样减少对抗熵增呢?
我们可以针对这两个条件:封闭系统和无外力做功。只要打破这两个条件,我们就有可能实现熵减。方法有两条:外部做功和开发系统。这部分内容我们下一篇文章进行分析!
技术人必须掌握能力——深度思考
我们如果留意的话,总是会发现身边,有一些非常大龄的码农,他们维护着已经再熟悉不过的模块,能迅速定位bug所在代码行数,在他们当中有部分人热爱编程、喜欢编码、享受解决bug带来的成就感。但是大部分人是被迫大龄编码的。
看到这种现象我总是会去想什么原因导致了他们仍然还在开发一线呢?难道他们不够努力吗?
勤奋、努力不是打开上升通道的钥匙吗?
答案显而易见,并不是,至少不全是。勤奋、努力是好的行为,也是我们中华民族的传统美德,是值得我们每个人终身保持。但这只能让我们吃饱穿暖,满足我们最基本的条件。
从毕业至今,我一直在想,我一直能再成长,支撑我成长的底层逻辑和素质是什么?
每件事物都是有最底层的逻辑,就像水是水分子组成,分子是由原子构成,原子是由原子核和电子构成,原子核是有中子和质子构成、质子和中子又是由夸克和中微子组成。有时候我们一直在寻找这种底层逻辑,但是这条路并不会结束。这是一条不归路,也是一条成长之路。
直到最近,我有顿悟了,我认为深度思考的能力,是真正能洞察世界运行真相的能力。这才是打开上升通道,最重要的钥匙。
01方法论
如果说深度思考是你的目的地,那思考方法论,就是相当于交通工具。能不能快速、安全的到底目的地,当然取决于交通工具的先进性了。
打一个比方:你使用的是私人飞机、高铁火车,当然比挤公车,骑自行车来得更加的快速、便捷和高效。如果你选择走高速回家,当然比走弯弯曲曲的小路回家更加的快速、直接。
上面的私人飞机、高铁火车就是思考方法论,带给你的便捷和高效。
思考方法论有很多,我推荐这几本书(我认为经典书籍、好书才是系统性的知识,而且是知识来源最好的方式,没有之一),例如:《金字塔原理》,麦肯锡40年经典培训教材,他主要是教你怎么写一篇逻辑性强、系统的文章和报告,但它其实是一种系统、深度的思考方法论。还有《结构思考力》《批判性工具》,我觉得都不错。
最重要的不是看了很多书籍,而是真正吸收消化掉这些知识,然后融入到脑中,成为自己的东西,才是最重要的。
02怎么做
我们都看过3D电影,我们都喜欢这种3D,为什么?因为比2D电影更加真实,更加接近现实,展示了详细的全貌。其实思考也是一样,思考一定是深刻的、全面的。怎么才能做到呢?
1. 扩宽知识边界
有一个故事,说是:有人问乞丐,你知道皇帝每天吃什么吗?乞丐回答道:当然是每天都有吃不完的馒头。这个简单的故事中的乞丐只知道自己的一亩三分地,馒头就是他的知识边界。也就是说一般人都是屁股决定脑袋——在什么样的位置,就只能看到什么东西。正如那句话“手里拿着锤子,眼里到处都是钉子”
在我的上篇文章中《送给刚毕业的你们——7个建议》,也有提到扩宽知识边界的方法。方法也很简单,就是不要限制自己涉略知识的范围;例如,可以读一些经济学、哲学,心理学,人物传记,政治学等这些书籍。每多了解一个领域,你就多了一种了解事物的角度。
这些书籍中汇集了作者的思想、见解或想表达的情感,这些都是成体系的。看书的过程就是融合和消化的过程,能很好的帮助自己形成独立的见解。近两年炒的火热的碎片文知识,在我看来只是泡沫知识。
2. 问一万个为什么
所谓的一万个为什么,就是5why分析法,又称“5问法”,也就是对一个问题点连续以5个“为什么”来自问,以追究其根本原因。虽为5个为什么,但使用时不限定只做“5次为什么的探讨”,主要是必须找到根本原因为止,有时可能只要3次,有时也许要10次,如古话所言:打破砂锅问到底。
举个例子:你知道,我国的火箭直径最大为3.35米吗?答案是:由马屁股的宽度决定。
我们利用5why方法分析下:
为什么火箭最大直径为3.35米?
因为运输火箭的火车,需要穿过涵洞,涵洞的宽度决定了火箭的直径。
火车涵洞宽度是由什么决定的呢?
铁轨的宽度。
铁轨的宽度是有什么决定的呢?
沿袭了电车轨道的宽度。
电车轨道的宽度又由什么决定的呢?
沿袭了马车车轮的宽度。
马车车轮的宽度就是两匹马屁股的宽度
图片来自百度百科
3. 橄榄球定律
橄榄球定律提示人们,有许多事物分布规律呈橄榄球状
-
具有关键影响力的内容占20%左右
-
对事情有相当影响力的内容占60%左右
-
有些影响力作用比较有限,可以忽略不计,占20%左右
从思考的角度上考虑,每一件事需要抓住20%的核心要素,你就能掌握这个事物的本质,而不是细枝末节的要素,以节省我们的时间和精力。
4. 逆向思维
大家都应该听过淘金者的故事吧
19世纪中叶,美国加州传来发现金矿的消息。许多人认为这是一个千载难逢的发财机会,于是纷纷奔赴加州。
十七岁的小农夫亚默尔也加入了这支庞大的淘金队伍,他同大家一样,历尽千辛万苦,赶到了加州。
淘金梦是美丽的,做这种梦的人很多,而且还有越来越多的人蜂拥而至,一时间加州遍地都是淘金者,而金子自然越来越难淘。
事实上,不但金子难淘,而且生活也越来越艰苦。当地气候干燥,水源奇缺,许多不幸的淘金者不但没有圆致富梦,反而葬身此处。
小亚默尔经过一段时间的努力,和大多数人一样,没有发现黄金,反而被饥饿折磨得半死。
一天,望着水袋中一点点舍不得喝的水,听着周围人对缺水的抱怨,亚默尔忽发奇想:淘金的希望太渺茫了,还不如卖水呢。
于是亚默尔毅然放弃对金矿的努力,将手中挖金矿的工具变成挖水渠的工具,从远方将河水引入水池,用细纱过滤,成为清凉可口的饮用水。
然后将水装进桶里,挑到山谷一壶一壶地卖给找金矿的人。
当时有人嘲笑亚默尔,说他胸无大志:“千辛万苦地到加州来,不挖金子发大财,却干起这种蝇头小利的小买卖,这种生意哪儿都能干,何必跑到这里来?”
亚默尔毫不在意,不为所动,继续卖他的水。哪里有这样的好买卖,把无成本的水卖出去,哪里有这样好的市场?
结果,淘金者大都空手而归,而亚默尔却在很短的时间靠卖水赚到几千美元,这在当时是一笔非常可观的财富了。
这就是思维定势带来的障碍,可以看出来思维的差距就是财富的差距。那我们就应该打破这种思维定势,利用逆向思维。
所谓的逆向思维,就是当你不知道怎么做?你就要以大众日常思维相反的方向去思考事情。也就是,不是按照【原因】->【结果】,而是【结果】->【原因】。
举个例子:不是考虑对手正在做什么,而是考虑对手不愿意去做的事情。
具体一点的例子:开发针对女性用户的东西,应该从女性非常讨厌和忌讳的角度思考。
5. 刻意练习
前面讲的都是理论性的东西,所以需要学以致用,深度思考是一种习惯,既然是一种习惯,就需要去练习。而且需要大量的刻意练习。
举一个例子:
去饭店吃饭,看着这家饭店的装修,服务员的素质,菜品的搭配,饭店的地理位置,菜品的口味,人流情况等,用上面的分析法,看能不能分析出这家店的经营状况怎么样?这个店是否可以通过逆向思维的方式,增加营业额。
同学聚会,通过分析他的穿着、眼神、潜意识动作、手机品牌、服装品牌、口头禅等信息,利用上面的分析法,看看能不能推断出他的职业、他的阶层、是否单身…….
总之,身边充满了练习的素材,只要你有心,随时随地都可以进入深度思考的状态。随着练习的增多,你会变得思维活跃,有深度。就像老司机,可快可慢,随心所欲。
03总结
首先我们需要掌握深度思考的方法论,总结自己的思考方法,扩展思维广度和深度,打破思维定势,刻意练习,我相信你会成为一个有洞察力的人。
谈一谈程序员的职业发展路线
作为程序员,在开发岗位上做了几年,特别是到了30岁,这个而立之年,我们会来到一个重要的人生岔路口。就是管理和技术两个选择,一边专业路线,一边是管理路线。
在互联网的头部企业,对管理和技术是平等对待的,所以晋升会存在管理和技两个通道的
既然有了选择,就会有人纠结,不知道是选择专业路线,还是选择技术团队的管理路线。
这个选择是程序员人生中第一个大的选择,也是第一个障碍,倒不是说这个障碍是到底要不要选择管理,而更多的是对做管理的迟疑,怀疑到底能不能做好管理,做了管理之后,技术是不是就荒废了。
这种状态犹豫不决、摇摆不定的状态保持时间长了,最终会导致技术和管理都没做好,这是得不偿失的。
为了解决这个问题,有必要分析程序员职业发展的路线到底有几条,分别需要具备怎样的能力,从而做到”手中有粮,心中不慌“
01技术
技术类上,是有两个方向:架构师和技术专家
架构师他的侧重点是在“广”上,他主要负责技术的整体和架构,在业务上,需要有很深的理解,有丰富的经验,甚至能做到“走的桥比你吃的盐还多”。在技术上,能够广泛涉略,掌握的技术知识越多,内力就越加深厚。
我觉得架构师还需要三点必备能力,其一需要有极强的执行力,能够快速的给出合理的方案,推动技术落地。其二需要有极强的判断力,能够准确的找到复杂系统的疑难问题所在,就像武林高手,一眼就看出对方的破绽。最后还需要有极强的创新力,能够创造新的解决方案,解决现有技术难题。
所以从程序员到架构师的成长之路,总的指导原则是:积累经验,拓宽视野,深度思考(可以参考我之前文章《程序员进阶必备能力——深度思考》)
技术专家他的侧重点是在“专”上,这个就很好理解,就是在某个领域能够深入,能够熟悉其背后运行原理。不同的领域都会存在专家,例如:Java专家、前端专家、图像算法专家、Linux内核专家等等。专家相对架构师,更加专注,并不会考虑太多整体方案。
所以从高级开发成长为技术专家,主要是扩展领域内的技术宽度,提升领域内的技术深度。因为领域也不是特别窄的一个面,而是包含多个技术面。
举一个例子:Linux内核专家,要想成为Linux内核专家,需要掌握,Linux CPU调度、内存管理、进程管理、存储管理、文件系统、设备管理和驱动、网络通信、系统调用、系统初始化等技术面。
在每个技术面中,同样包含了很多技术点,这些技术都是知识盲区,所以需要提升技术深度。
02管理
管理也分为了两个方向,技术管理和职业管理。顾名思义,技术管理更加倾向于技术,而职业管理完全抛开了技术,纯粹的商业方向。
技术管理,这个方向是程序员最自然的选择。大部分的技术管理者,在其从程序员转为管理岗位的时候,都是在领导或公司的要求下,被动的推到技术经理岗位上的,并非是自己当初有强烈意愿、主动去选择管理岗的。然后走上曼曼打怪进阶的路线,从技术经理岗到技术总监,带领几十号人的团队冲关,然后到成为技术业务部和事业部的技术副总裁,相当于CTO了。
技术管理需要在业务上有较深的理解,在技术上能够根据技术发展趋势,进行技术规划。在产品上能够极强的洞察力,进行产品规划。在团队加上能够规划团队建设、组织结构等等,所以这是综合素质的要求。
职业管理
职业管理者往往更加关心于整体产品业务的团队,不限于技术团队。比如某个事业部的总裁,或者是某个业务部的总裁。大家往往都听过某某事业部空降了领导,这个领导就是属于职业管理者,他的移动性更加强,能力更加通用。这个方向是可遇不可求的,有些人一辈子都不可能触及到。这个就是天花板上的别人家的楼板,你说难不难?
03创业
创业这个方向上,一般是作为技术合伙人来参与,如果想要自己的创业公司能够成功,必须是全能型创业团队,在技术、产品、营销等方面不能有明显的短板。
我举一个真实的例子:我的上一家公司的直接领导,辞去技术总监的职位,作为一个技术合伙人创建了一个团队,主要提供物流解决方案。前几个月和他聊,公司已经在去年实现盈利1000多万,通过股权上操作,已经成为最大的股东,掌管着整个公司的前进方向。
说到这里挺惋惜的,创立之初,当时极力的拉我入伙,被我拒绝了,理由是工资太低了,这个理由在现在看来简直可笑啊
04其他
项目经理
这个方向也是程序员比较常见,也比较自然的方向。项目经理其实一种组织整合能力。不同于技术管理,这条路线走起来,几乎不需要任何外界依赖因素。
最需要关注的是进度、质量、人力、成本、风险。
那如何提升项目管理能力呢?
首先需要对项目管理知识框架有个大致的认识,避免在庞大的知识体系中迷失方向,比如:
-
范围管理:项目为何总是做不完?范围管理要界定
-
风险管理:项目风险引发的问题、成因以及防范方法
-
沟通管理:做好项目沟通计划
-
质量管理:加强项目质量
-
时间管理:项目进度控制
-
成本管理:产品成品控制
-
等等
其次需要掌握项目计划、项目变更、项目进展报告、复盘等过程方法。
最后需要掌握跨部门协作,多维度沟通上进行加强。
产品经理
程序员转产品经理,需要做到技术思维到产品思维的转换。
技术思维角度是从功能开始,而产品思维的角度是从业务开始。
作为程序员,当要做一个项目时候,我们最关心的是这个项目有哪些功能,然后考虑每个功能如何实现;
而作为产品经理,当要做一个项目时候,我们看重这个项目的业务场景是什么,解决用户什么问题
技术思维角度是怎么去实现功能,而产品思维角度是为什么要这个业务。
从技术思维的角度关注一个需求时候,总是先关注一个需求如何去实现,即HOW;
而从产品思维上来关注一个需求时候,应该多问一下WHY,为什么需要这个需求,多思考为什么,从而找到需求或问题的本质。
技术思维角度是向专家一样行动,而产品思维角度是向小白一样思考。
作为程序员,我们日常接触到最多的还是技术人员,这些人一般来说逻辑思维都较强,擅长使用和处理各种软件,所以总是将这种形象代入到客户身上。
但作为产品人员思考时候,将用户想得越“小白”越好,假设他们是不懂电脑,不太会玩手机,甚至不会打字的人。
05总结
上面4个方向是程序员主要的职业发展路线,作为个人来看,如果能一直做自己热爱的工作和喜欢的角色,应该是最好的状态。
不管走那一条路,一些能力是共通的,比如:技术规划、团队建设、沟通、时间管理等。处于自己的选择,可能不会选择管理方向,但是难免在以后的工作中会和管理者打交道。管理作为一种通用的素质,希望大家能够技多不压身。
总之,作为程序员,技术和管理,就像人的两条腿,所有的职业发展路线都离不开,毕竟一条腿是走不远的。
程序员如何利用技术管理技巧
最近读了一本书《一分钟经理人》,是肯·布兰佳与斯宾塞·约翰逊合著的一部管理学著作,觉得挺受用的,里面都是干货。用讲故事的方式,通过不同的人物来讲不同的部分,有较强的代入感,易于理解,一般的管理类书籍会比较晦涩,难读是常态,这本书作者很好的解决了这个问题。讲的是怎样制定目标、赞美下属、批评下属。
如果你是管理者,如果遇到工作量巨大,而且无法抽身,如果你苦恼于如何调动员工的积极性,激发员工的执行力,如果你还不知道如何培养管理下属,我强烈推荐这本书。我将思维导图整理如下
如果看不清可以公众号向我留言,我发送xmind源文件。
01一分钟目标
1. 内容
一分钟目标包含了工作目标、衡量标准和完成期限,应该用一到两段说明白,读一遍大概花一分钟左右。而且遵循的是80/20目标设定法则。也就是说80%的成功是来自于20%的目标,即我们的关键任务——可能一共只有3到6个工作目标。当然这是针对不同的项目进行设定目标的。举一个例子:
-
一个项目中的关键目标,即关键需求,也就占比20%左右,而这20%的关键需求,需要花费80%的经历去实现。
2. 流程
一分钟目标的完成,需要如下几个步骤:
-
共同制定工作目标,并清楚简洁的描述出来,明确好表现的标准是怎样的
-
每个目标都单独记录下来,用不超过250个字来描述,并且写下完成的期限
-
规定每天抽出几分钟时间,重温自己最重要的目标
-
鼓励他们用一分钟时间审视自己的表现,检查是否与目标一致。
-
如果与目标不一致时,反思自己的表现,迅速调整
3. 优势
从流程中可以看出,这5个步骤是一个闭环。第一点优势:目标明确,制定目标是满足SMART原则的,具体可以参考我上篇文章《如何才能迅速晋升?》;第二点优势:便于反思,鼓励他们时刻审视自己的表现,检查是否偏离目标。
4. 如何引导
一般基层管理的重要工作就是发现和解决问题。所以需要下属员工及时反馈问题,并且进行正确的引导。引导过程才是关键所在,我们可以这样的方式进行引导。
-
下属不知道如何汇报问题时,就可以问他们“说说最近一周或者一个月都做了什么?做的怎么样了?”
-
他如果不知道,或者没有发现自己问题时,可以继续引导,问“你希望得到什么样的结果?”
-
继续引导,问“是什么导致了实际和计划产生了差距?”
-
继续问“你打算后续怎么做?这样做能否解决问题?不能解决的话,怎么办?”
-
继续问”如果以后遇到此类情况,你应该怎样做?“
-
在他自己得出结论后,告诉他,“是你自己解决的问题,我只是问了几个问题,这些问题你自己也可以问。”
02一分钟赞美
1. 内容
赞美是每个经理人必须要要具备的素质,所以赞美是有技巧的。
2. 流程
赞美需要如下几个流程:
-
设定目标,保持关注:跟他一起设定好一分钟目标后,一直和他保持密切的联系——仔细观察员工的行动,要求以日报或者周报形式告知我详细的进展情况。
-
及时称赞。一旦发现员工事情做的比较好,就需要及时的、明确的告诉他这件事对在哪里(要说得非常具体)
-
跟他说这件事让我感到多么高兴,对整个团队和其他同事都有比较大的意义(通常是拍拍肩膀或简单而友好地接触一下,肢体接触也会有比较的效果)
-
沉默几秒钟,让他静静地体会做对事情带来的喜悦
-
鼓励他以后继续保持这样做事
-
明确说明你对他有信心,并会支持他们获得成功
3. 如何做
在员工刚来的时候,就预先告诉他,会对他做出工作评价:
-
希望你能够成功,并且成为公司的骨干,同时也能从自己的工作中得到乐趣。(给予期待,以人为本,关注员工的发展)
-
因此,我会坦白地对你的工作(业绩)给出评价(让你知道自己的工作做得好还是不好),这样你就更容易把工作做好。(提前打预防针,无论是称赞,还是批评,我会评价你,希望你把事情做好)
-
警告员工,在开始时,这样做可能会让我们俩都感觉不舒服。不过我向你保证,这方面的反馈信息会对你有很大帮助。
4. 优势
对于经理来说,有如下几个好处:
-
下属成功,你自己的组织地位就会上升
-
下属能力提升,自己才能晋升
-
让下属有归属感,能和你保持良好的关系
对于下属来说,有如下几个好处:
-
得到赞美,让他更加有积极性
-
人是有思想的动物,人渴望被尊重,不愿意被操控,人喜欢得到赞美,管理需要尊重人性
03一分钟批评
1. 内容
让他确认我们设定的目标是否阐述清楚,如果没有,他会承担责任,并再次详细说明工作目标。
2. 流程
如果对一切都轻车熟路的员工犯错了,你需要及时的有所反应,你可以进行如下步骤:
-
在事情发生后立刻批评:跟员工确认事实+明确指出他错在哪里,要说的非常具体,并且要及时更正。举一个例子:你可以慢慢的走到他的工位旁,一脸严肃的注视着他的眼睛,询问关于这件事情的来龙去脉,是否属实,并明确的告诉他这件事情错在哪里。
-
告诉他这件事给你的感受,以及对团队和项目所造成的影响。这里要描述的非常具体。
-
沉默一小会,让他们深刻体会到你的感受,审视自己的错误(30s)
-
告诉他,他的实际能力比这次表现出来的更强,能力远不止于此。让他们知道你真诚地站在他们这一边。举一个例子:你可以告诉他,“我之所以这么生气,是因为你,你不应该的”
-
对人进行称赞。再次肯定地告诉他们,他们自身还是很好、很有价值的人。(只是在这件事上做得不好)
-
批评完了之后,整件事情就过去了
3. 优势
-
可以证明领导了解这件事
-
避免了陷入消极情绪或者推卸责任
-
体现公平公正原则
04常见错误案例
1. 积攒错误
大多数经理都喜欢把下属的错误记下来,积攒到一起,然后跟他们算总账,结果可想而知,两人要么互相大声指责对方不是,要么一言不发在心里怨恨对方。而下属可能早就忘记了当时究竟做错了什么。
2. 对人不对事
经理在批评下属时,常常会把矛头指向对方自身。非常不好!应该对事不对人。消除错误行为,保留有价值的人。
程序员跳槽,该如何选择一家好公司
最近收到一个粉丝的私信,问我:现在有两个offer,该怎样选择,一边是大厂但是做的是自己不喜欢的业务,一边是创业公司且比较有挑战性的工作,再加上技术主管盛情邀请。当我问到是否对两家公司、团队和领导情况了解,他的回答是否定的。
那这个选择就很难,直到最后我也没有给出实质的确定性回答,因为在这种时候,选择就跟掷骰子一样,完全是概率事件。为什么?因为你对两家公司都不了解。不了解领导能力、性格;不了解公司的价值观;不了解公司的财务状况;
那如何才能选择一家好公司?
仔细回忆我的工作经历,越来越觉得选择应该是和努力同样重要。所以结合自己的经验,总结了选择好公司的方法论,奉献给大家。毕竟凡事都是要靠方法论的。我把该方法论称之为:2+2;
01大平台、小公司
我分享2个故事,一个是我自己的经历、一个是我前同事的经历。
1. 我自己
2015年,我离开了前东家,彼时的我所在部门,公司最早成立业务部门(核心部门、业绩增速为负值),也是最稳定的部门。
我为什么会选择离职呢?
主要是因为我毕业进入公司工作2年后,发现我丝毫看不到上升的通道,所有重要的管理位置被已经被占坑,就像所谓的一个萝卜一个坑,这还不是无奈的。让我毅然决然的选择了离开的原因是晋升太难了。
最后一天要走时,大领导叫住了我,临走时还不忘教育我“年轻人,不要太浮躁”,现在用实际行动打了他的脸。
离职后就立即拿到了几个offer,最终经过深思熟虑,选择了一家有大平台背景下的创业公司,就像阿里巴巴之于蚂蚁金服。
到现在已经5年,我感谢当时所做的决定,搭上了公司快速发展的快车,由于业务的扩张,能力也不断提升,目前管理了一个产品线的软件团队。
2. 前同事
我一个前同事,跟我一同离职,他去了诺基亚,当时给的offer确实比其他offer高了几万一年。就在前几个月,再和他聊天,他已经辗转去了好几家公司,到目前为止还在无休止的跳槽。很显然他已经迷失了,他不知道自己该如何选择。
02好领导很重要
领导是你的领路人,路领对了,说明你已经成功了一半。只有跟对领导,这样才能在正确的领导下开展工作,你也才能心甘情愿地做工作,你也才会为工作努力奋斗。这样产生的结果不但是让自己成长,同时也为公司做出了贡献。
记住一句话,事情是没有白做的,不管是为了公司,还是为了自己,只要你觉得领导能成为你的领路人,那你就坚定信心,勇敢走下去,会有好的结果。
那怎样才是好领导呢?我认为好领导至少要做到以下几点。
1. 成就下属
首先最重要的是领导应该是成就下属。对于你而言,成长是最大的需求。如果一份工作无法让你得到成长,是很难坚持下去的。如果你的领导只会拿着你的成果去邀功请赏,我劝你早点跳槽吧。好的领导一定是成就下属:培养下属、使其能力不断提升。
说到这里,我要感谢下我的现任领导,他今年已经晋升为我们公司的副总裁了。感谢指引我成长的方向、提供资源,我才能持续提升。
2. 能力强
为什么我认为领导的能力强是很重要的一点呢?假如你的领导能力一般,一直得不到晋升,你觉得你会升上去吗?假如你的领导是公司副总裁级别,你觉得能力一般的领导,公司还会走的长吗?能力强分为技术能力、业务能力、管理能力。缺一不可。
3. 懂分享
想象如果你有一个能力强、又能成就下属的领导,你的能力持续提升、职位也水涨船高,此时你正在职场如鱼得水。恰好此时公司正在上市之际,你发现你的期权由于领导的手段,无法兑现。好的领导一定是可以和你分享胜利果实的。怎么看出来呢?其实很简单,加工资能给你涨多少?
03快速发展的核心业务
一家公司赖以生存肯定有他自己的业务形态,但是大部分大点的公司业务形态有很多种,有些业务是新开的,或者在探索、在尝试,如果你所在团队承担的是公司的核心业务并且快速发展,那么毋庸置疑,这团队值得加入。如果所在团队处于公司的边缘部门,对公司来说可有可无,那么在加入之前就要慎重了。
为什么要同时满足核心业务和快速发展呢?因为我上家公司就是属于核心业务&发展停滞,所以这两个条件缺一不可。
举个例子:有两份 offer,一份是上市的大互联网公司阿里巴巴,一份是发展中的但是不知名的创业公司,薪资水平差不多,甚至创业公司稍低些,但是阿里给的 offer 是跟电商、支付完全无关的边缘部门,比如阿里汽车、阿里健康、阿里娱乐之类的,而另一份 offer 加入的是公司的核心团队,负责公司的核心业务,而且处于快速发展中,那么如果是我,我宁愿选择第二家。
04团队内是否有牛人
这个很容易理解,我们加入一家公司其实非常在乎自己的个人成长,尤其是在职业初期,能得到大牛的指导,甚至点拨,自己朝着对的方向有时候比你瞎努力要有效的多,所以团队内部如果有你知道或者熟知的牛人就更好不过了。
再者,如果团队内有牛人,说明部门or公司对他是有吸引力的。毕竟牛人可不愁找不到好工作,能到这里来,肯定是看好公司或部门的发展。
05总结
总结下,今天分享了我的跳槽选择公司方法论:2+2;即:人(好领导+牛人)+物(大平台小公司、核心业务&发展快);当然不是说不满足2+2方法论的公司不好。如果能进入大厂的核心业务部门也是非常好的,例如腾讯的微信bu。但是如果算一个杠杆率的话,就不如我这套方法论先进了,进可攻退可守。
进可攻:核心业务快速发展,上市套现,财务自由
退可守:大平台下的小公司创业失败,转岗去其他部门,也是OK的。
当然,换公司还有很多考量点:比如薪资、工作环境、福利、交通成本等等,但这些远不是重点。跳槽换公司是个技术活,而选择的作用远大于努力,在选择的时候多思考,换的好会带来跃迁式的发展。2020最后一个季度,希望跳槽的朋友能够找到好公司。最后送给大家一幅图,希望大家能够实现跃迁式发展。
|
作者:沙漏哟 出处:计算机的未来在于连接 本文版权归作者和博客园共有,欢迎转载,请留下原文链接 微信随缘扩列,聊创业聊产品,偶尔搞搞技术 |