中文站

成为软件咨询师的关键

最近,我在Twitter上发布了一条状态(如下图所示)——我在考虑写一些东西,是关于如何从一个软件开发人员到一个软件咨询师。很多人总是问我这个问题,这确实是一个有趣的话题。大家对这条推特的热情回应也让我受宠若惊,深受鼓舞。


(这周我又在为写书而痒痒——软件开发人员如何成为软件咨询师的一本指南书)

我在考虑这些内容的最佳载体。我可以再写一本书,或者做一些视频课程或者一些列的小课程。但是无论我用什么方式,我都需要在做这些事情前先把关键内容列出来。我将在这方面进行深入的研究。但我想说,成为一名软件咨询师有基础的、哲学上的关键点。今天我想谈谈这个问题。

软件咨询师,和软件开发是有区别的

这里没有导语(直接开始)。我为大家提供的建议是基于我(给大家看的)所有内容基础上。你可能不会喜欢它。或者,你至少会认为它应该让位于其他建议,比如“更多同理心”或“问很多问题”之类的。但是,没有。

不要让潜在的咨询客户为你编写的代码付钱。

认真讲,这是你从软件开发人员到软件咨询师的过程中最基本的部分。其原因在于,成功的咨询顾问都会慢慢明白的一个点:定位。目前人们谈论定位都是谈在市场营销中,通过定位把自己与竞争者区分开来。在这里我想说的是,将你自己与你习惯做的事情区分开来(因此,与你应该停止把软件开发人员当成你的竞争对手)。

让我像往常一样用叙述的方式来给大家解释一下这个观点。

(译者注:这段意思是,如果你想成为一个软件咨询师,就要明白自己的定位。不要让你的潜在客户为你的代码买单而不是你的咨询服务买单,不要总想着和软件开发人员竞争)

达芬奇:文艺复兴时期的水管工

无论怎么看,列奥纳多·达·芬奇都是世界上最伟大的人物之一。在他不同的成就中,他画了《蒙娜丽莎》,设计了一辆坦克,在人体解剖学方面取得了重要的贡献。但让我们这样假设吧,在一个类似于“比尔和泰德历险记”的特别剧情中,他穿越到500年后的未来,也就是现代世界。

即使是像达·芬奇这样伟大的人,无疑也需要一点时间来适应现代社会。所以我们假设,当他学习现代语言、技术和文化时,他找了一份水管工的工作。


假设你碰巧有一个水槽漏水的水龙头,你打电话给达芬奇的管道公司寻求帮助。他们立刻派达芬奇到你这里来看一下,帮你一把。这样达芬奇来了,因为他是达芬奇,他马上就发现你的供给线有点松了。他把它收紧,你对这个结果很满意。

被忽视的达芬奇

在你的鼓励下,达芬奇的眼睛闪闪发亮。他做了一些心算,告诉你如果你采用一种反直觉的饭后清洗餐具的方法,你的水费会减少15%。他接着告诉你水费减少的原理。同时,他还指出,你厨房墙上的画和房间里的画不太匹配。

面对天才达芬奇教你如何更好洗碗的方法并帮助你的艺术,你会怎么做?你微微一笑,应和着,然后内心想:“把水槽修好,赶紧离开这里。”你这样做是绝对正常的反应。

为什么?因为你并不知道他是达芬奇。你只知道你雇了一个人来修水槽,但是现在有人主动给你洗碗、还提供装修房子的建议。你雇佣他来执行劳动,而你却得到了他对你生活的建议。

被忽视的软件开发人员

如果在读文章的你是一个专业的软件开发人员,都可能像达芬奇一样。你懂的如果你的公司减少科技债务将会运转的更好。您可以很容易地发现,管理的瀑布式“方法”是无效的和令人痛苦的。而且,虽然你不是专家,你甚至知道公司的品牌和销售策略是无效的。

你提出建设性的反馈,但没人听。你是达·芬奇,但是被忽视了。我不是在讨好你。您必须聪明地以编写软件为生,在我采访的每一站中,软件开发人员都有很好的想法,这些想法远远超出了IDE的范围。通常,管理层要么随便应和,要么干脆无视他们。你可以把这归结为“亲近感滋生轻蔑”,但这其实是我之前提到的“定位”理论。

管理层雇佣你来执行代码编写工作。你不请自来的意见不是工作的一部分。因为你很受欢迎,人们会对你微笑、点头和应和。但他们其实不在乎你的看法。这就是软件开发人员的现状。把你们的建议归档到我办公桌旁边的小垃圾箱里,只是用“建议”标签取代“垃圾“标签””。

被忽视的未来软件咨询师

假设你厌倦了这种情况。你喜欢这个行业和软件,但你想要更多的影响力。管理不适合你,但“咨询”适合你。也许你会出去做自由职业者,或者你会去一家软件“咨询”公司工作。现在,情况就不一样了。现在,人们会听你的建议。

然后,让你极度沮丧的是,情况并不如意。即使你的头衔和名片上写着“咨询师”,人们仍然会笑着地对你说,“无论如何,伙计,只要编写规范就行了。”

怎么回事呢?实际上,很大一部分问题在于我们的工作领域中“咨询师”一词被用烂了。在你的客户的网站上,无论他们是亲自给CIO提建议的人,还是把自己封闭在一个空间里编写存储过程的人,没有和客户进行W2协议的人都叫做“咨询师”。

更糟糕的是,每一家做定制应用程序开发并称之咨询的公司都以“咨询”为自己定位。“哦,我的天。我们的顾问不仅仅是程序员——他们编写代码,还提供领导力和建议。

这完全是意料之中的事,以至于一些客户可能会觉得听到这样的商店或人们说:“不,我们只是把范式变成代码。”“谢天谢地。我终于不用听管道工谈论我对墙壁装饰的选择了。

给自己一个真正咨询师的定位

因此,让我们来审视软件咨询师的情况。所有“咨询师”对人们的实际含义是,你是在为一个不会给你发W2的人工作。但是,如果他们胜券在握,就会发现,不管有没有人想要,你代码是为一个不会给你发送W2但是会提供很多意见的人写的。一般软件咨询师的角色和默认定位是“自以为是的,高于一般开发者”。

现在对我未来的书或课程感兴趣的人实际上是想成为咨询师的人。公司不为劳动力(或代码)支付咨询师费用;他们付钱给咨询师征求他们的意见。这就是问题所在。如果你以软件咨询师之类的身份介绍自己,你默认的定位是“编码者”。但是,为了实现你的目标,你需要把自己定位成一个真正的咨询师,并从咨询中获得报酬。

虽然有许多细节观点可以推动你朝着这个方向前进,但要注意一个基准点——不要让你的客户付钱让你写代码。

在一个每一个为另一家公司编写代码的软件开发人员都是“咨询师”的世界里,你可以通过不为报酬编写代码来将自己定位为真正的顾问。这样没有人会把你和专业程序员混淆。

隐喻医学

《抛弃小时》和《自由职业者秀》的乔纳森·斯塔克(Jonathan Stark)用一个很好的比喻来帮助你理解定位的概念。我将在这里用它来说明咨询和劳动(即编写代码)之间的主要区别。

他谈到了为公司解决问题的四个阶段:包括诊断,开处方,应用治疗,和重新应用治疗。软件开发人员和大多数所谓的软件咨询师几乎只参与第三阶段:应用。但这是一个杠杆率很低的阶段。咨询师几乎只存在于第一和第二阶段:诊断和处方。他们让劳动者(即编码的程序员)负责第三阶段,甚至更低的地位劳动者负责第四阶段。

从其他知识工作者的角度来考虑。你带着一种疾病去看医生,医生发现了这种疾病并开了处方。但是如果需要每天用这种药在你的脚底擦5次,这个医生也不会处理这个事情(给你擦药这个事情)——这低于他的工资标准。而是你自己擦药,或者雇个按摩师什么的帮你擦药。


当你以软件“咨询师”的身份负责代码时,你会告诉别人你从事的是诊断和处方的工作。但当具体实施的时候,你几乎把所有的时间都花在人们的脚上,并且详细地讨论(“咨询”)操作的最佳方法。【译者注:这里作者用了一个比喻“橡胶和路”,意思是和“药膏”一个意思,表示不应该注重如何给患者上药,而应该聚焦于第一、二阶段的咨询工作。这里翻译的时候直接去掉了这个一句话的隐喻】

现在,想象一下这样一个行业,诊断医生和奴隶贩子都自称医生。所以当你需要诊断的时候,你会本能地去寻找那些手上没有粘东西(没有帮人擦药)的人,这样就能分辨出不同(没有擦药的就是医生)。

警告

首先,让我立马理清一下。我实际上可以自己写评论。有人会读这篇文章,然后说,“我是一个为我的客户编写代码的咨询师,但是我的客户实际上会咨询我是否应该采用Scrum(敏捷开发),并采取我的意见。“是的,我相信,就像我相信管理层有时确实会听取软件开发人员的意见一样。这种情况会发生。但是,如果你只是告诉他们是否采用Scrum,那就完全不同了。【译者注:管理者偶尔会听取程序员的意见,但偶尔听取与只提供意见服务不同】

其次,你可以以协助的角色去编写代码。教练和培训师是很好的例子。记住,我说过不要让别人为你编写的代码付钱。公司不会为了写代码而付钱给培训师,而是为了让培训师向他们的团队展示如何编写代码。作为区分的原则,可以问问自己客户是否依赖于你编写的用于生产的代码。如果答案是肯定的,那你就是在涂足胶(也就是医生擦药),而不是在诊断。

最后,我不会质疑,有些人走这条路可能不仅仅是昙花一现的成功。也许无论他们走到哪里,他们都会挽起袖子,整个上午都在摆弄代码,然后走进CIO(首席信息官)办公室提供策略建议。我从来没见过这种情况,也没见过类似的情况,但这是有可能发生的。或者,更有可能的是,有人为一些客户提供咨询,为另一些客户提供代码。无论如何,有些人可能会成功地永远走在咨询编码员这个方向,并对他们有益。但我能告诉你的是,这是例外,不能作为参考。

咨询的内容要多得多,但这是你的开始

正如我在文章开头提到的,如何成为一名成功的软件咨询师这个问题我可以写满一本书或者做一整个课程。从软件开发人员到软件咨询师似乎很简单,但这其实很表面(作者用了“fools’gold”表示不是真材实料的、表面上的)。你接受“咨询”这个极其松散的定义是很容易的事情,但如果你真的想通过提供专家的意见、诊断和处方,而不是编写代码而获得报酬,那就不容易了。但你就有了一个很好的学习和技能学习的机会。

那么,为什么在所有原则中,我选择“避免编写代码”作为基准原则呢?正如我一直说的,定位自己是关键,这是你摆正自己位置最好的地方。为了得到诊断费,你需要有人向你问诊,而不是让你在他们的脚上涂药就叫诊断。

另外,还有一个更微妙的理由让我强调不要编写代码。编写代码是令人满意的,有趣的,而且非常有市场需求的。因此,找到付钱让你写代码的人是非常容易的。他们非常需要你的编程技能。如果你想被称为“技术代码的CEO”,他们甚至会叫你“技术代码的CEO”。你有现成的拐杖(译者注:相对咨询,提供编码你有现成的市场和基础,会更容易)。

拒绝为客户编写代码意味着强行移除拐杖。这样做,你就像一个飞到国外的非母语人士,只有通过沉浸式学习来学习。你没有拐杖,也没有选择,只能去解决它。您可以在业余时间为兴趣编写代码,并践行您的想法。但如果你想认真考虑成为咨询师,那就需要停止这样做(写代码),这样你就可以开始诊断了。别让他们为你的代码付钱。

原文:https://daedtech.com/key-becoming-software-consultant/

翻译:刘昕    来源:网易云社区