为什么工程经理更应该有系统思维?


什么是系统思维以及为什么它在软件开发中至关重要?

什么是系统思维?
系统思维是一个广泛的知识领域,通过理解所有部分如何相互联系和影响来解决问题。
这个理论并不新鲜,不同行业已经应用了数十年。一个很好的例子是丰田生产系统(TPS),它重新定义了产品的制造方式,重点关注从采购到原材料的周期。
这在软件领域也是老新闻了。任何使用被视为“敏捷”的工作方法(例如 Scrum 或看板)的团队都会受到相同想法的影响。至少在理论上是这样。

但是系统思维在技术领域的声誉很差。因为它阻碍了管理者提高效率。
人们通常担心通过系统视角来看待工作会变得非人性化。如果一切都是一个系统,那么我们都只是执行相同日常任务的碎片吗?我们是否因为过于关注流程而扼杀了创新?

事实上,情况通常恰恰相反。管理者没有将系统和流程作为团队中的首要关注点,从而限制了每个人的工作,从而无意中创建了效率低下的团队。无论我们是否愿意,大多数团队成员的个人绩效都是由他们的系统决定的。

“事实上,人们工作的系统以及与人的互动可能占绩效的 90% 或 95%。” 

表现不佳的例子
不幸的是,在我的职业生涯中,有一个例子是一个很好的方式来说明这一点:如何处理个人表现不佳的问题。

在我开始管理团队的许多情况下,我都会接到有关个人表现不佳的警告。在某些情况下,他们已经进入了绩效管理流程,这意味着这种情况已经影响到了他们的职业生涯。

自然而然的做法就是关注遇到困难的人。提供反馈并要求其改变行为。但不幸的是,虽然这些态度可能会带来积极的结果,但通常不会持续太久。

我发现问自己和个人另一个问题更有好处:'他们当初是怎么来到这里的?他们的团队是如何工作的,他们在团队中又是如何工作的?如果团队的目标是生产高质量的软件,那么他们从头到尾创建软件的系统是什么?(banq:上下文 的上文,前提条件)

我找到的答案通常都很有趣。虽然并非总是如此,但在大多数情况下都有其他方面出了问题。例如,团队没有良好的工作流程,资历较浅的人很难理解该怎么做。或者,团队没有很好地协作,导致自信心不足的工程师因不知道如何学习而落后。

情况各不相同。令人兴奋的是,我可以通过改善表现不佳人员周围的团队来提高个人绩效。这是因为他们并不是功能失调的部分,而系统才是。另外一个好处是,这些改变也有助于更广泛的团队。俗话说,这是一个双赢的局面。

管理者关注系统
总之,要关注团队中的系统。作为领导者,你对工作的运作方式有着个人贡献者所不具备的视角。你有能力影响它,帮助每个人取得更好的成绩。

了解系统并不意味着你能改变所有系统,也不意味着你不能根据团队中的个人情况调整系统。但这确实意味着你将知道拉动的最佳杠杆,从而为你带来最大的成功机会。