Your answer is idealistic in a very limited way. You are suggesting that their is moral value in being humble and accepting the input of other people. I'll point out that it is even more moral to fight for what you know is right, and it is not moral to retreat from the fight simply because it is exhausting or tedious or repetitive or badly managed or the odds are lopsided. Over the last 20 years I've run into people with your attitude many times. I believe I understand your argument -- that sometimes we have to accept outcomes that we disagree with. However, what my life has taught me is that their is no valor in being passive while bad decisions are made. When I'm hired, I've been hired as an experienced professional whose advice is valuable, therefore I have an ethical obligation to fight as hard as I possibly can to be sure what I've learned over the years ends up benefiting the company. That is what I'm paid for. Passive acceptance of bad outcomes is neither ethical nor moral. We each have an obligation to fight as much as we can for what we know to be right. In the professional context, that is what we are being paid for.
As a practical matter, "be humble and accept the input of others" quickly shades over into "be lazy and allow stupid people to dominate the meeting, because letting them dominate the meeting is easier than fighting them." I agree it is easier, but it is unethical to accept money while allowing bad decisions to be made.
You seem to be focusing on a situation where there is a proposed solution with an obvious bad outcome, and somehow you are the only one smart enough to realize it will lead to a bad outcome.
In my experience this is very rarely the actual case. Usually there are multiple viewpoints, multiple solutions, and while some may be slightly better than others, the effort of having the debate is much more time and resource-intensive than just accepting one of the solutions.
> the effort of having the debate is much more time and resource-intensive than just accepting one of the solutions.
Man, have you ever seen bad code?
For an example, suppose someone comes up with the idea of making dozens of mini-modules with poorly defined interfaces, each one having no clue about what's going on globally, that should somehow contribute to solving a simple problem. Each interacts with each other through some sort of worm hole where you have only a vague idea what's on the other side.
Another possibility is to look at the requirements as a whole and write a single module that solves the problem in a straightforward way. Now, should one accept the first idea and write 3 or 4 times the amount of hard to code, the code being unmaintainable because the interactions between the many moving parts are very hard to understand? Just because everybody thinks that's how it should be done?
By definition the answer you think best is the answer that all of your skills and all of your experiences guide you to. I’m saying you have an obligation to fight for what you know is the right answer. There is nothing ethical about allowing people to make decisions that you believe will be catastrophic. You are being paid for your expertise — don’t accept money if you are not willing to do what you can to ensure a good outcome.
This has nothing to do with having a debate in a meeting, indeed, often the best strategy is to avoid the meeting altogether.
Yes, agreed but that is what I also wrote, you should prevent catastrophic outcomes. I did not wrote anything what you implied in previous comment. I only implied that there is many technical decisions which are nowhere near to catastrophic.
Like picking tabs vs spaces, I am not going to fight about it, it is not a decision that will make any difference for product.
As a practical matter, "be humble and accept the input of others" quickly shades over into "be lazy and allow stupid people to dominate the meeting, because letting them dominate the meeting is easier than fighting them." I agree it is easier, but it is unethical to accept money while allowing bad decisions to be made.