每个软件工程师都应该做一些咨询顾问 - Forrest

21-09-27 banq

每个软件工程师和 IT 人员都应该从事咨询工作。

我不是在谈论成为那些被他们的公司称为“顾问”但实际上只是连续雇用的承包商之一。我指的是真正的顾问角色,您可以通过提供专业知识、提供建议和推动技术变革而获得报酬。

有几种不同的方式可以进入这样的角色:

  • 以独立顾问的身份为自己开展业务。但是经营自己的企业涉及到大量其他技能,如销售和网络。这篇文章主要关注咨询如何帮助你成为一名更好的工程师,所以我不会在独立选项上花太多时间。
  • 在一家咨询公司担任高级职位。根据您的具体经验,您可能会发现在像德勤或埃森哲这样的大公司、像 Trek10(我曾经工作过的地方)这样的精品专卖店或介于两者之间的某个地方,这样的职位更容易获得。无论如何,“员工顾问”选项为您提供咨询的工程经验,但消除了填补您自己的销售渠道的挑战。
  • 在一家科技公司担任面向客户的技术角色:例如,作为售后工程师或解决方案架构师。此选项可能比其他两个选项具有更多的幕后连续性,但基本上是相同的技能组合。

无论您选择哪种方式,我相信每个工程师都应该将他们职业生涯的一部分时间用于做这三件事中的一件。担任顾问可以开启作为内部工程师或工程领导者难以实现的职业成就。

  

顾问超能力

  • 行业鸟瞰

一旦您与一些客户合作过,您就会意识到他们中的大多数并不像他们认为的那样独特和特别。他们与其他人一样面临着同样的组织缺陷和借用同样的技术债务。你很快就会成为一名专业的模式匹配者,将在 X 公司工作的东西应用到你在 Y 公司看到的问题上。在某种程度上,技术中的“最佳实践”是真实的,这就是它们的来源.

我想我听到有人将这种通过咨询产生最佳实践的过程称为“思想清洗”,这听起来很糟糕,但实际上可能有点酷。随着时间的推移,您将有机会为您的学科领域的成功制定一套手册,该手册适用于 80% 的案例。大多数人可能不会完全接受你的想法,但你会知道它们是有效的。你会知道的。没有人能把它从你身上夺走。

  • 致力于高影响力的项目

您不会聘请顾问来帮助您维持现状,而是会帮助您推动变革。作为顾问,您不会维护旧的 ActiveDirectory 服务器。您将弄清楚如何将 2,000 人迁移到 Google Workspace。(看看我是如何投入这样的小事的,现在我在谷歌工作?我真是个骗子。你应该退订。)

一个好的咨询工作是市场上最有趣的项目的源源不断,是提高技能的美味方式的大杂烩。

  • 实际完成工作

当然,我知道顾问是骗子的刻板印象,他们把事情弄得比他们发现的更糟。另一方面,这不是也描述了许多在贵公司内部工作的人吗?

不同之处在于,顾问是专门引进的,因为他们不效忠于雇用他们的高管之外的任何人。他们可以跳过政治,只是指出需要做什么,即使这很明显。特别是如果它很明显。事实证明,公司需要做出的许多改变——无论是技术性的还是商业性的——不需要晦涩的尤里卡时刻或数月的发现。公司内部的聪明人可能已经知道房间里的大象了。他们太困在官僚主义和破碎的流程中,无法反击。

这就是麦肯锡如何将 23 岁的分析师派往世界上最大的公司并仍然受到重视的方式。他们是专业的大象指针,不一定是创造性的问题解决者。如果您可以与从事高管级别的咨询公司合作,您可能会发现您在几周内完成的工作比您的内部同行独自完成的工作要多。

  • 对客户需求的同理心

您将不再与客户相距七层团队,编写内部工具并希望每个人都同意您仍然应该获得报酬。当您咨询时,您与工作效率之间的过滤器为零。不按承诺交付的顾问不会持续很长时间。所以你会善于倾听,善于记录,善于展示你工作的价值。你学会解决真正的问题,而不是虚假的问题——因为这就是你现在获得报酬的方式。

  • 改进了新技能的“平均达到能力时间”

你不会因为在工作中学习而获得咨询费;您遇到的任何新技术的启动时间必须非常快。学习如何学习成为比任何语言或框架都更重要的工具。随着时间的推移,这意味着你会惊讶于你吸收新信息的速度有多快。

 

我说的是一段时间,不一定是整个职业生涯

咨询有缺点,你在这个领域呆的时间越长,它们就会成倍增加。即使假设理想情况下,拥有诚实的团队和酷炫的客户,您也会开始处理这样的事情:

  • 持续的项目流失令人疲倦

我的意思是,新项目是令人兴奋的,但在某些时候你只是开始想要做一些熟悉的事情。我真的不知道人们在 20 年后如何处理这个问题。上下文切换只是在一段时间后剥夺您的装备。

  • 游戏中没有皮肤

您将在短期内被评为顾问。您将满足您的可交付成果,获得报酬,然后继续下一场演出。这限制了您可以有意义地参与的变更项目的范围。它还使您与工作的长期业务成果脱钩。除非你和你的客户有着不同寻常的史诗般的关系,否则有一天你可能会发现自己更想成为一名球员,而不是一名教练。

  • 成为专业的“专家”对你的成长是有害的

警察、政治家和顾问有一个共同点:他们受到职业激励,回避承认自己可能是错的。

当您走进客户站点时,您不是在那里学习、乱搞、犯错和再试一次。你在那里知道的比客户多,第一次就把事情做好,让 VP 看起来很聪明,适合雇用你。

我一直觉得这是一个压力很大而且不是特别诚实的安排。我不是专家,我只是一个阅读文档的人。我不喜欢必须表现出一种我并不总是感觉到的能力。主要是因为我担心我最终会说服自己我也是专家,并永远停留在 Dunning-Kruger 曲线的最低点。

  • 计费时间是最糟糕的

对不起,他们只是。他们很烂。为价值付费可以更好地为每个人提供激励,但没有人愿意这样做。

 

那为什么要咨询呢?

简单地总结一下:虽然咨询压力很大并且有奇怪的激励措施,但它也是获得非常资深、非常快的捷径。这就像在四分之一的时间内主线 10 年的经验。您将开始在商业环境中考虑技术。你将建立你的网络。当你回到内部时,你将成为每个人都希望获得洞察力的旅行丰富的工程师。

我建议任何要求他们在职业生涯的某个阶段至少从事几年咨询工作的人。

 

黑客新闻讨论

根据我自己在荷兰担任员工(约 10 年)和顾问(约 5 年)的经验,我认为在荷兰,通常经验丰富、技术熟练的员工倾向于从事咨询行业。与我共事的大多数顾问确实提供了更好的结果,而且似乎也没有那么懈怠。

关于荷兰的工作文化,我将其归因于以下几点:

  • - 开发人员最感兴趣的是工作保障或在公司内晋升为更高职位的员工
  • - 开发人员认为,作为一名员工,他们的技能和能力薪酬偏低,这些开发人员倾向于从事咨询工作,因为这让他们可以更好地控制自己的收入,因为作为顾问,他们选择自己的费率 - 这些类型的开发人员也可能对管理角色不感兴趣(或者他们可能会选择作为 PM、SCRUM 主管进行咨询)

据我所知,与全职员工相比,荷兰的自由顾问率确实要高得多。平均至少增加 50%。

 

在墨西哥,我们对此持相反的看法:大多数开发人员的职业生涯都在外包公司从事“咨询”工作。很少有开发人员有开发产品并在 2 或 3 年后对其进行维护的经验。

不同之处在于他们所做的代码类型、他们拥有的“所有权”和参与度:具有咨询头脑的人会做某事,然后认为一旦“完成”他们就不必关心它。那些被自己过去的代码所困扰的人对如何编写可维护的代码有更好的想法。

 

在芬兰,趋势是大多数“T 型”和经验丰富的开发人员似乎要么在咨询自由职业者,要么为较小的咨询公司(50-1000 人)工作。

IBM、埃森哲、德勤等专注于印度外包的大商店则完全不同。

 

俄罗斯有句谚语:

不会编码?就去咨询。不能咨询?就去管理。

  

在从事软件工程近 20 年之后,我现在是一名顾问。我之前拥有很多我的代码,这让我很欣赏对可维护性的关心。

我通常担任顾问而不是编码员,但如果我最终编码,我为客户工作时的主要目标之一是确保代码是高质量的、可维护的、自我记录的,并且任何变通方法和捷径都是明确的标记为这样并突出显示给客户。

东欧/亚洲的那些开发商不是咨询公司。他们是有销售宣传的自由职业机构。咨询意味着专业知识。

 

我一半以上的职业生涯都在为中型(500-5000 人)提供全方位服务产品开发(战略、设计、技术、营销)的数字咨询服务。最终以我的方式工作到主管级别,这意味着进行销售和撰写合同。

 

我在一家咨询公司工作了 40 年中的 5 年,我认为这是很有价值的,因为你会陷入各种随机的事情中,这提供了一些很好的经验,可以处理在客户走之前几乎不知道存在的东西进门。这主要发生在千年之交(包括互联网时代)。

 

我一直认为顾问是他们领域中最好的一些(至少可以聘请),因此大学毕业后进入这个领域是不可行的,更不用说一个坏主意了。虽然听起来我可能是错的。

 

在我的职业生涯中,我担任了大约 15 年的顾问。我喜欢区分“产品开发人员”和“项目开发人员”。这只是一种不同的心态。对于产品开发人员来说,花更多的时间来确保您的代码正确和优化是有好处的——当您拥有庞大的用户群(或试图吸引用户)时,错误的成本更高。

相比之下,项目开发商没有这样的激励措施。他们的目标是在一个时间范围内完成开发并满足某些验收标准。通常他们正在构建价值高但用户数量少的工具,因此错误/错误更容易容忍,并且可以对用户进行变通方法的培训。

 

当我在一家大型 SaaS 公司担任顾问时,我觉得这个职业确实吸引了某种过于自信的人,他们也喜欢这种关注。我 100% 确信那里的每个人在他们的知识中都有这些空白点,这可能会导致在与客户交谈时感到压力或不诚实。

  

作为一个主要专注于小型企业(1-50 名员工)的个人,我花了近 20 年的时间独立从事自由职业和咨询工作。这篇文章有很多道理。

我会说我花费了大约 60% 的时间编码和 40% 的时间与开发人员 / CTO 聊天,获得报酬来进行研发和编写文档。对于编码位,从构建 Web 应用程序到执行与运维相关的事情,例如配置基础设施以及让其他开发人员更容易发布代码更改,无所不包。

 

我同意很多观点,但是在大多数大公司中,解决方案架构师的薪水明显高于开发人员。通常职业发展是从开发人员到领导开发职位再到解决方案架构师,而不是相反。

 

我认为应该反过来说:每个顾问都应该担任工程师,并被迫在很长一段时间内管理另一位顾问的代码。从头开始编写代码很容易,只需很少的努力。当你因为其他开发人员缺乏远见而陷入困境时,处理产品经理的期望是另一回事。

 

我在不同的公司,甚至不同的国家、不同的州和不同层次的层次结构中都有过 20 年担任顾问的经验,我参与的大多数项目都不是绿地,而是向现有业务应用程序添加功能,以传统方式和传统语言编写。我做了很多工作是为了弄清楚:为什么一些晦涩的程序不再起作用或者为什么它突然变得如此缓慢。

 

1
猜你喜欢