I believe that software decisions should be reached only if excepted and agreed by the team.
But most cases it varies.
How would you describe the way that decisions are being made in software development cycle in your company?
Is it Democracy? / Is it Dictation? / Is it Anarchy?
Here is what I heard from one of my friend:
“This is not democracy, I am the manager, I decide what to do”.
What do you think?
Summing up the answers so far – for any team, the decision making process must balance timeliness with accuracy. Any team needs:
The process for the decision has to then reflect the needs of the team and the company. I’ve seen a pretty big variety here, even within the same company. Factors have included:
It’s my personal believe that teams work better when people feel they have had a stake in the decision. It’s much easier to put in 100% effort when you strongly believe that you had a hand in the big decisions that you are now stuck with. Software engineering is not drone work, and if people plod along without taking responsibility for decisions, they are only doing half the work, because they won’t be looking for the flaws in the decision or making plans to overcome those flaws.
I also think that if you can’t convince your (presumably rational and intelligent) coworkers that your idea is a good one, then it’s possible that you are wrong. Even if you are the manager/architect/god of everything. If you can’t admit you might be wrong, you have no business being in power. And if you don’t believe your peers are rational and intelligent, it’s time to find a new job.