I'm only a few years into my professional career at this point, but if I had to share something with noob or aspiring software developers entering the market, it would be about learning to pick your battles.

It's easy to say "pick your battles wisely!" but it's much harder to actually be able to do it. Picking your battle involves knowing what the various battles are. This may mean that for the first month or so (or longer) at your new job, you really don't have any idea of the lay of the land. In the environment you came from, issue A may have been huge, while in the new environment, it's completely dwarfed by issue B. Your coworkers know the general scale and size of these issues, so listen to them. Before you advocate for big changes based on some issues that you think are a problem, make sure you understand as much as possible of the issues affecting the product as a whole.

I'm not saying that fresh opinions aren't valid. They are vital and necessary, and whatever issues you have are probably important and need to be dealt with. But if the kitchen is on fire, you don't stop to mop the floor. So take a breath, write down all the things that matter, and periodically re-evaluate to decide what battles you really want to fight right now. And remember to try and fight some battles incrementally.

It's all about spending your social credit wisely. If you spend it all now, and it turns out that you waste time on minor issues, you won't have that credit later when you really do need to make big changes.

Syndicate content