我从事软件架构、网络协议开发、Python 软件基础架构、简化云部署和开源战略等方面的咨询工作。我喜欢解决具有挑战性的复杂技术问题,或者为开源社区做出贡献。在最好的工作中,我可以两者兼得。

今天,我想与大家分享软件技术咨询行业的一个秘密。

我要说明的是,这个秘密并不是我一个人的秘密。我有几位同事也从事过软件咨询工作,他们都向我反映过这方面的经验。

我们稍后会讲到这个秘密本身,但首先要介绍一些背景情况。

公司不会在一切顺利的时候去寻找咨询顾问。在寻求系统架构或战略等方面的高层次咨询时尤其如此。几乎顾名思义,我就是来解决问题的。理想情况下,这个问题是一个技术挑战。

在软件行业,你的团队可能已经拥有一些具备各种技术技能的软件专业人员,因此他们知道如何应对技术挑战。这意味着,问题往往与人而不是技术有关,即使表面上看起来并非如此。

当你聘请像我这样的员工级专业人士来解决软件团队的一般问题时,该顾问需要收集一些信息。如果我就是那个顾问,而我开始怀疑你所谓的技术问题实际上是人的问题,那么我就要这么做。

我要去拿一支笔和一张纸,然后安排一次 90 分钟的会议,与你们团队中最资深的集成电路

工程师开一个 90 分钟的会议。我会带着纸和笔出席会议。然后我会问一个问题:

“这个地方有什么问题?”

然后我会尽可能详细地写下他们的回答。如果我已经开始怀疑这次会议是必要的,那么 90 分钟的时间通常是不够的,我会拼命赶进度。即便如此,我通常也能抓住重点。

一周后,我会安排一次与行政领导层的会议,在这次会议上,我将回读经过简单编辑的

在这次会议上,我会回读上一次会议的记录。这通常会被称赞为敏锐的战略洞察力。

在此我要明确指出--很明显,我希望--这并不是在暗指任何当前甚至最近的客户;如果我最近开过这样的会议,那么在回复那封 "我读过你的博客...... "的邮件时就会很尴尬。

但是,以这种方式谈论客户,无论描述得多么模糊不清,在职业上总是有点冒险。那为什么要冒险呢?

问题是,我不是一个人事经理。虽然我可以胜任这类工作,而且如果需要做的话,我也不吝啬去做,但我觉得压力很大,而且没有成就感。我是一个搞技术的人,不是一个善于与人打交道的人。选择进入技术咨询行业的人一般都是这样;我们知道管理轨道在哪里,但我们没有选择它。

如果你因为我高度专业化的技术专长而聘用我,我希望你能从中获得最大价值。我知道自己的价值;我的收费并不低,我不想让客户觉得我只开了几次 "显而易见 "的会议。

因此,这篇文章的目标受众是潜在客户、团队(或组织、或公司)的领导者,他们有一般的技术问题,并想知道是否需要我这样的顾问来帮助他们解决问题。在你认为你的问题是需要实施复杂的分布式系统共识算法之前,请先看看这是否真的是问题所在。与你的集成电路讨论,并在确保他们明白你需要诚实的反馈意见,而且他们可以安全地提供反馈意见的情况下,询问他们你的组织存在哪些问题。