在1988年,心理学家John Sweller将认知负荷定义为“工作记忆中使用的脑力劳动
总量”。Sweller定义了三种不同的认知负荷。
· 固有认知负荷,与问题领域的基本任务相关,比如:Java类的结构是什么样的?
我要如何创建一个新方法?
· 额外认知负荷,与任务处理的环境相关,比如:我要如何重新部署这个组件?我
要如何配置这个服务?
· 相关认知负荷,与那些需要格外关注学习和高性能方面的任务相关,比如:这个
服务是如何与ABC服务进行交互的?
举例来说,开发人员对一个Web应用的固有认知负荷可能是所使用的计算机语言
知识(在编程基础之上),额外认知负荷可能是实例化一个动态测试环境的详细命
令,这些命令存在多条并且难以记忆,而相关认知负荷可能是应用开发人员所关联的
特定业务领域,比如发票系统或视频处理算法等。Jo Pearce在软件开发领域认知负荷
的研究中提供了非常多的案例。
一般来说,为了高效地交付和运维现代软件系统,组织应该试图最小化固有认知
负荷,比如通过培训、良好的技术选型、招聘合适人员、结对编程等方式来实现。同
时,要尽量消除额外认知负荷,尤其是那些没有意义的、冗余的任务和命令,这些保
留在工作记忆中没有太大价值并且通常可以被自动化任务取代。最后,为相关认知负
荷预留更多的空间,这也就是“增值”思维的所在。