摘要:在TiD2022质量竞争力大会上来自华为云开发者联盟的首席布道师带来“敏捷教练的自我修为”主题分享。
本文分享自华为云社区《中国敏捷十年实践者分享:敏捷教练的自我修为》,作者: kaverjody。
大家好,我叫徐毅,非常感谢也非常高兴今天有机会在TiD2022质量竞争力大会上就“敏捷教练的自我修为”这个话题跟大家再次进行这个交流。简单介绍下自己,我现在华为云是一名DTSE也是华为云开发者联盟的首席布道师,中国敏捷教练企业联盟的副秘书长兼专家委员,参与编写了《中国敏捷教练白皮书》。多年来的敏捷实践过程中,经历了敏捷教练在理论结合实践过程中的各种困难,也经历了很多对于敏捷教练强大内心的挑战,收获了很多的敏捷教练的经验,想要跟各位交流共勉。
下面我们进入正题:
此次交流我想跟大家交流敏捷教练自我修为的三个内容:格物&自知;矛盾&冲突和诚意&正心,另外还有一句话想要和大家分享!
“格物致知、诚意正心、修身齐家治国平天下”这段借用了古人的话,咱们对于自身修身修德的要求。它不仅具有普适的意义,对于敏捷实践者,这样一个必须要融入一个团队、一个企业甚至是一个行业中去的角色,也具有强大的指导意义,尤其我认为修德对于一个敏捷教练来说极其重要。
首先讲“格物&自知”,在敏捷传入中国,被我们所知晓学习的过程中,我们一般是通过一本书,一些网上的文章学习到的敏捷的知识,然后我们想把这个知识应用到我们的环境中去解决我们遇到的问题,这个“物”你可以理解成是我们身边的环境,我们所具体从事的工作以及我们身边的人,但是在“格”,也就是推究的过程中,我们会遇见文字和沟通中的噪音造成执行的偏差,会遇见两种不同观点的碰撞,会发现我得到的知识得出的结论怎么和别人不一样,甚至有时连得到的知识都不一样,因此就会产生很多困惑,一不小心就会挑边站,一条路走到黑,这个时候如何“自知”呢?
最好的方式就是采取“实践出真知”的方法去理解不同的观点,不要挑边站,而是去考虑这个实践者,他的实践是在什么情况下发生的?把我的认知放进他的环境是不是会产生同样的效果?或者反过来思考,在他的环境下我能不能得到同样的结论?要注意环境的差别是什么,带来了什么样的认知差别,这之间的因果关系又是什么?
这就是“格物&自知”所要解决的一个问题,搞清楚问题是什么之后,接下来就是解决 “知”所产生的矛盾和冲突,比如我的主张和环境之间的矛盾,我和别人之间的冲突等,我们要怎么去解决。
这张图就是TOC约束理论里面的冲突图,可以帮助你来化解矛盾的很好的工具,也是我在讲敏捷教练成长的技能里化解冲突的时候经常说的两招:理性的思考和团结对方。
第一招理性的思考,用冲突图来分析两种不同主张或者两股力量之间的冲突根源在哪,是“格物&自知”部分的延伸。第二点团结对方,首先我们要明白一个前提,作为教练去实践敏捷的过程中,我们其实是带来了一种变化,我们的主旨是拥抱变化迎接挑战,这对于人更倾向于不变的安全性来说,是难以接受的,我们面对的处境是困难的,不是一呼即应的,而是要去寻求对方的配合得出一个双赢的解;其次我们要避免自身的极端认知,改变与不变并不是非黑即白的,而是可以共存的,只要我们目标一致,都是为了“更好的未来”,变与不变是有可以沟通的空间的;最后就是双方为了共同的目标进行沟通化解冲突,理解对方的需求,站在对方的角度去进行思考,寻求可以推动变革的点,不管是做一些辅助措施或者调整,还是在基本不改变的前提下做一些小小的改变,慢慢去让大家适应这种变化,都算是一次成功的敏捷。
在敏捷越走越远的过程中,我们学习了许多的知识,也做了很多的实践,就会更多的向内探索:敏捷到底是什么?下面就是第三阶段的内容——“诚意&正心”。
我想对于很多敏捷实践者来说,当我们实践了一段时间,学习很多的知识,获得了一身本领之后,会需要做很多向内心的探索:自己为什么想要做敏捷,到底要往哪里走?自己的意志到底是什么?
我个人觉得这取决于我们对于敏捷的认知,从我自身的探索过程来看,完全可以拓宽敏捷的应用场景,它是一种处事性的,我所消化理解的敏捷背后的理念和逻辑能够指引我的生活,这也算是我的一些诚意和正心。举一个比较贴近的例子,大家都知道敏捷现在有很多流派,有很多时候大家会进行一些比较激烈的讨论,这个时候你用敏捷的理念和逻辑去看待这些,就会发现每个流派都各有优势。
对于敏捷实践者来说,对于保持诚意和正心最大的考验可能还是来自于逆境,比如这个过程中你可能会看到你并不认可的人和事反而得到了追捧,走上了所谓的这个成功的舞台;或者你无法帮助企业往敏捷的方向去走,可能不得不要有一些妥协或者苟且,这个时候如何去心平气和地去度过,如何去坚守敏捷?
我想说的是,这就是一个修身修德的过程。首先我们要端正心态,认识到事物本身就是曲折前进的,暂时的忍让是为了达成目标,一定要避免一味地忍让退步而失去了坚守敏捷的初心;其次就是在“格物&自知”的过程中不断地用实践去反馈,将我们的知识融入到我们整体的意志和心态中,不停地用磨难去考验自己的所知所想所坚守的敏捷,这也是一个不断修正自我的过程,来检验我们的认知是否到位;最后作为一名敏捷教练,除了自身的修行,还需要团结团队成员,动员大家一起去解决问题,克服困难。
总而言之,对于敏捷实践者来说,“格物&自知“、“矛盾&冲突”、“诚意&正心”这三个部分并非是纵向顺序排列,也并不是横向并排,它更像是一个循环往复的过程,在实践中丰富认知,用认知去指导实践,遇到困难了再去重新“格物”来解决,加深认知,在这个过程中,我们要端正什么样的“诚意&正心”,为什么是这样的“诚意&正心”?都是一个循环往复,曲折向前的状态。
而且作为敏捷教练,着眼于团队协作的角色,一定要注意讲究方式方法,不能暴力强拆激化矛盾。一个伟大的篮球教练约翰·伍登,他曾说教练是可以给出正确意见,不引起的怨恨的人。我们敏捷教练也应该是这样的一个人,《非暴力沟通》应该是我们每一个敏捷教练的必修课。
最后的最后想跟大家说的是:态度决定一切!
这里包括五个部分内容,我简略讲一下:
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来
我有一个要在我的Rails3项目中使用的数组扩展方法。它应该住在哪里?我有一个应用程序/类,我最初把它放在(array_extensions.rb)中,在我的config/application.rb中我加载路径:config.autoload_paths+=%W(#{Rails.root}/应用程序/类)。但是,当我转到railsconsole时,未加载扩展。是否有一个预定义的位置可以放置我的Rails3扩展方法?或者,一种预先定义的方式来添加它们?我知道Rails有自己的数组扩展方法。我应该将我的添加到active_support/core_ext/array/conversion
参见下面的示例,我想最好使用第二种方法,但第一种也可以。哪种方法最好,使用另一种的后果是什么?classTestdefstartp"started"endtest=Test.newtest.startendclassTest2defstartp"started"endendtest2=Test2.newtest2.start 最佳答案 我肯定会说第二种变体更有意义。第一个不会导致错误,但对象实例化完全过时且毫无意义。外部变量在类的范围内不可见:var="string"classAvar=A.newendputsvar#=>strin
如果我构建了一个应用程序来访问来自Gmail、Twitter和Facebook的一些数据,并且我希望用户只需输入一次他们的身份验证信息,并且在几天或几周后重置,那会怎样是在Ruby中动态执行此操作的最佳方法吗?我看到很多人只是拥有他们客户/用户凭证的配置文件,如下所示:gmail_account:username:myClientpassword:myClientsPassword这看起来a)非常不安全,b)如果我想为成千上万的用户存储此类信息,它就无法工作。推荐的方法是什么?我希望能够在这些服务之上构建一个界面,因此每次用户进行交易时都必须输入凭据是不可行的。
我正在使用Devise在Rails应用程序中,并希望通过API公开一些模型数据,但应该像应用程序一样限制对API的访问。$curlhttp://myapp.com/api/v1/sales/7.json{"error":"Youneedtosigninorsignupbeforecontinuing."}很明显。在这种情况下是否有访问API的最佳实践?我更喜欢一步验证+获取数据,但这只是为了让客户的工作更轻松。他们将使用JQuery在客户端提取数据。感谢您提供任何信息!凡妮莎 最佳答案 我建议您按照以下帖子中的选项2:使用APIke
我正在开发一个Rails2.3.1网站。在整个网站中,我需要一个用于在各种页面(主页、创建帖子页面、帖子列表页面、评论列表页面等)上创建帖子的表单——只要说这个表单需要在由各种Controller)。这些页面中的每一个都显示在相应的Controller/操作中检索到的各种其他信息。例如,主页列出了最新的10篇文章、从数据库中提取的内容等。因此,我已将帖子创建表单移动到它自己的部分中,并将该部分包含在所有必要的页面中。请注意,部分POST中的表单到/questions(路由到PostsController::create——这是默认的Rails行为)。我遇到的问题是当Posts表单没有正
我正在按照我一直在研究的研讨会实现“服务对象”,我正在构建一个redditAPI应用程序。我需要对象返回一些东西,所以我不能只执行初始化程序中的所有内容。我有这两个选择:选项1:类需要实例化classSubListFromUserdefuser_subscribed_subs(client)@client=client@subreddits=sort_subs_by_name(user_subs_from_reddit)endprivatedefsort_subs_by_name(subreddits)subreddits.sort_by{|sr|sr[:name].downcase}
美团外卖搜索工程团队在Elasticsearch的优化实践中,基于Location-BasedService(LBS)业务场景对Elasticsearch的查询性能进行优化。该优化基于Run-LengthEncoding(RLE)设计了一款高效的倒排索引结构,使检索耗时(TP99)降低了84%。本文从问题分析、技术选型、优化方案等方面进行阐述,并给出最终灰度验证的结论。1.前言最近十年,Elasticsearch已经成为了最受欢迎的开源检索引擎,其作为离线数仓、近线检索、B端检索的经典基建,已沉淀了大量的实践案例及优化总结。然而在高并发、高可用、大数据量的C端场景,目前可参考的资料并不多。因此