Lessons from Psychology and Pedagogy for Software Teams

On Wednesday, Feb 13th, 2019, Andrew Holway of Otter Networks will be speaking about the rise of productivity engineering, which aims to reduce the cognitive load that Kubernetes and other fully automated platforms place on software developers. His talk, “DevOps is FSCKED” will cover a lot of ground, including some important concepts from psychology. To help you get up to speed on these, here’s a primer on a few of the ideas that may come up in his talk.
Tacit Knowledge
Tacit or implicit knowledge is a category of expertise or skills that are gained through personal experience that are difficult or impossible to pass on through written or spoken communication. In contrast to formal or explicit knowledge, which can be codified in documentation, codified in books, or shared in discrete units, implicit knowledge tends to be created through experience and relies on context and practice.
Tacit knowledge is best shared or transferred through high-quality social interactions. Formal instructional environments often don’t work as well; something more akin to pair programming allows the learner to observe and practice with someone who already has the knowledge.
How does this relate to DevOps, Kubernetes, and productivity engineering? Holway explains, “To manage all the infrastructure as code, you have to have a dedicated person. It’s hard and annoying, and it requires a ton of tacit knowledge. You end up with a separate person, and you’re back to system administration and developer silos.”
Cognitive Load
The concept of cognitive load commonly refers to the idea that there’s only so much our brains can think about at one time, and if we “overload” the mind with too much, it tends to make more mistakes. In some settings, like in instructional design, it derives from the idea of “working memory” which suggests that short-term memory can hold a limited about of new information that a person can work with.
For developers and in software teams, the cognitive load burden can be thought of as the number of software-related issues or details that a person needs to keep in mind. If developers are also handling system administration-related tasks, the decisions they have to make and the impact of those details create an additional burden on them that wasn’t there before.
Is your interest piqued? Come to the event to find out how Andrew Holway will take these ideas from instructional design and apply them to technology teams.