"It's like coding in the dark":
The need for learning cultures within coding teams
Occasionally, Catharsis is able to conduct research studies on topics of interest, with a goal toward contributing to behavioral science and human wellbeing in our fields of expertise. In this report, we wanted to explore how a learning science lens could deepen our understanding of code writers’ experiences.
What could we hear from how code writers perceived their own learning and the expectations of their environment around learning? Why do so many code writers struggle to learn, even in highly resourced environments which have many formal processes for code review and many stated ideals of life-long skill development and growth? And can people involved in coding teams, from junior members to senior leaders, use insights from learning science to improve their experience in this work?
This report presents data from a qualitative research project with twenty-five full-time code writers, who completed a “debugging” task and an in-depth interview on their learning, problem-solving, and feedback experiences while onboarding to a new collaborative codebase. We use the term "Learning Debt" to describe how an environment that discourages learning can dampen code writers' creativity and knowledge-sharing, and give practical recommendations for fostering a better learning culture.
This report presents data from a qualitative research project with software engineers and developers. Twenty-five full-time code writers completed a “debugging” task and an in-depth interview on their learning, problem-solving, and feedback experiences while onboarding to an unfamiliar, collaborative codebase.
Themes from these interviews revealed an important learning tension: the work that code writers needed to do to understand code often did not feel like what was rewarded in the evaluation of their work. Code review often did not recognize code writers’ effort when it did not result in lines of code. Despite stated ideals about knowledge sharing (e.g., documentation and collaboration), this work was often contradicted with negative cues from colleagues about what was “truly” valued. This tension was exacerbated by code writers’ fears about “not looking like an engineer,” and their desire to perform to the expectations of their environments.
Code writers navigated this by divesting from their own learning and from the “invisible” work of knowledge transfer, leaving future collaborators without guidance in their own ramp-up to unfamiliar code. As a result, code writers frequently expressed a poignant loneliness, even in highly resourced teams. This maladaptive cycle can be understood as Learning Debt. Research from learning science describes how environments that discourage sharing mistakes and valuing “in-draft” effort lead to long-term costs in people’s motivation, wellbeing, and learning. Under this discouragement, even formal processes which are ostensibly meant to maintain productivity and provide support (e.g., code review, conversations with senior code authors) can reinforce these negative norms.
● Involve people in defining how their “success” is measured.
● Encourage more developmental feedback, separate from performance evaluation.
● Give technical teams more time for collaboration and documentation, and make documentation “count.”
● Identify opportunities for celebrating and sharing collaborative support and examples of active problem-solving.
● Make the costs of learning debt visible.