Dear new developer,
When building a system, you’re going to be confronted with lots of decisions. Unless you are operating in a total vacuum, you’ll have to reach agreement with other people. This will lead to discussions and arguments, as all the people involved will bring their viewpoints and experience.
You should definitely participate, and bring your own experience and viewpoints.
However, everyone should pay attention to two things:
- the usefulness of listening to everyone’s experience
- the overarching goal to be achieved
The first is important because different experiences build a stronger solution, the same way a forest is more resilient than a field of wheat. But it’s also important because even if someone’s experience has no bearing to the problem at hand, if it is dismissed the person will have a harder time both contributing to the current problem’s solution (they won’t be bought in) and to issues in the future (when their experience might be more relevant).
The second is the right way to guide the conversation and to steer it towards success. No project or problem ever exists in isolation. It’s worthwhile to examine all the big decisions, and many of the smaller ones, in the context of the overarching goal. (Heck, there are some times when it is worthwhile to make sure you are working toward the correct overarching goal.)
When you listen to everyone and focus on the higher goal, good things happen. One especially good thing is that you may change your mind. The right way to do that is to argue as passionately as you can for your point of view (have a strong conviction), but not lose sight of the fact that you may be incorrect (loosely held). And if you are, then everyone benefits when you acknowledge the better solution and move forward with it.