Disagree & Commit
In any true collaborative environment, solutions for problems never have a silver bullet kind of solution but a mix of negotiated solutions and accepted trade-offs. Therefore, even though the problem might be the same, there will never be an identical solution to the problem, even if someone on the team has already worked on that problem in the past, because the context has changed.
The solution to this is to debate with our team possible solutions for the problems we are facing, to decide whether the problem is worth the trouble, to better understand the context of the problem and why the problem exists in first place because more often than not we can solve problems by removing rather than adding new features. This debate is the time to raise any concerns one can have and to clarify as many unknowns as possible.
Everything that is proposed in the debate is not feasible to be worked on or implemented, therefore the team has to make trade-offs and scope the solution to the available resources to the team at that time. It is not always possible to implement everything and more often than not it is not necessary, developing a useful solution is more important than adding all the bells and whistles and delaying the launch by months or even years. This trade-off is the time to really nail down how the team is going to proceed to solve the problem and this means ideas, even brilliant ones, and choosing the right pieces for the puzzle even it that means someone’s ego will get hurt.
All this negotiation is made so that everyone raises their concerns about the problem at hand, exposes their ideas, finds holes in others ideas and reach a conclusion together as a team. To make this work, everyone has to have the security to showcase bad ideas, to expose bad ideas, to be a contrarian to decisions makers, to criticise, to assume responsibility.
After the negotiation takes places, the decisions made should have the full commitment and support of the team and the only thing left to do is the actual work on developing the solution and see it through completion. Liking or disliking the solution has nothing to do with what the team expects from one’s contribution to the solution. Unless there is a major flaw in the proposed solution which would lead the team back to the drawing board, everyone on the team should work on it without complaint and to the best of their abilities, as they already had the time to raise concerns and negotiate alternative solutions.