tl;dr:(1) Agency: Developers have the ability to voice disagreements and influence how their work is measured, which empowers them to take ownership of their contributions. (2) Motivation and Self-Efficacy: A developer’s motivation to work on code they are passionate about, confidence in their problem-solving abilities, and the sense of making tangible progress. (3) Learning Culture: A thriving environment encourages continuous learning and sharing of knowledge among team members, fostering growth and innovation. (4) Support and Belonging: The feeling of being supported by their team and accepted for who they are.
tl;dr:Consider these tips to more effectively ramp up new teammates: (1) Structure early learning opportunities. New engineers can more quickly ramp up to the context and domain knowledge required to do their work. (2) Be clear about role expectations. Establishing clear expectations for the role is often overlooked in the chaos of growing a team. (3) Prepare the first few tasks ahead of time. Give engineers a series of tasks that build on organizational and system context so they can apply their knowledge more directly and build confidence.
tl;dr:Research shows that: (1) Self-interruptions i.e. voluntary task switching is more disruptive than external interruptions. (2) Developers self-reported that external interruptions are more disruptive than self-interruptions. (3) Contextual factors such as time of day are a stronger determinant of how disruptive an interruption might be than task-specific factors. (4) Switching between programming and testing tasks, compared to other development tasks, makes developers more vulnerable to interruptions.