Start by imagining you’re a junior software engineer who has just joined a new team. You’re super excited. You’re about to start working in an unfamiliar code base. You have a bit of support, and you meet with the senior engineers who wrote the code. You show up to the meeting excited, and maybe you even bring a few ideas with you. But as the meeting goes on, you notice strong negative facial expressions from one of the senior engineers. When you mention pair programming, somebody even says, “Hey, we think that’s a waste of time. Just get into it.”
As a junior engineer, you go back into the code, and as you work, things get more complicated. Your plan for addressing it falls apart. You start thinking things like “Am I moving fast enough? Is this right?”
As a junior engineer, your behavior will be impacted by this experience. You may think sharing ideas isn’t what real engineers do, so you keep all of your documentation and suggestions to yourself. It’s experiences like these that prevent organizations from establishing a strong software development culture and building team morale.