Many things are going to effect getting something done, in this case building a system or creating software. Though I think the following could be said about just about any collaborative effort.
There are three concepts to keep in mind, one is design by committee, the second a saying I picked up at Cable & Wireless from a director I worked for :
"There should always be an odd number of decisions makers, and three is too many"
And the third concept, which I was lucky enough to have a senior exec from Accenture remind me of recently is :
"Given that a qualified professional experienced person (i.e. me) trusts their judgement and ability to learn from mistakes, the more time you spend making decisions, the more you get correct and the more that gets done."
It's a simple formula that rests on the 80/20 rule stating : If I make the right choice 80% of the time, then the more choices I make and act on the more I'll get right over time.
The opposite being not making any choices and getting wrapped up in discussion, email storms and typically quite a Machiavellian approach to teams and work. Which is not only tragically destructive to gaining momentum on a project, it's counter productive and very easy to lose any direction.
Getting it done
As with all ideas they are good in theory ........ actually executing on a way of working as with most things is harder, i.e it's easy to sit here and type about it, though actually doing it takes some effort.
When moving from a committee or a non decisive environment into one, to put it bluntly noses are going to be put out of joint. Change always has it growing pains with egos and existing (read old) ways of doing things are being challenged, changed and general group dynamics being mixed up, you'll encounter the full range of people clamouring for more pie via what ever techniques they are used to or choose, some who are resistant and others who put their hands in the air and cry "just let me know where I do what".
Judgement aside for acceptance (easier said than done I know !)........ these things are typical and just "are what they are" so getting upset by them will put you at a disadvantage.
As with just about all things in life, it's about awareness of yourself untimely and of the situation in this case.
How do you react in these situations ?
How do you deal (positively, as it's pointless fighting manipulators at their own game, and ensure you support the ones who want to grow) with others ?
What is the desired outcome ? Yours as well as the company's that is paying for outcome X, and if they don't even have X defined that is a whole other blog, though make sure you keep asking or if your up for it be part of defining it ;)
As new things come up there will be certain influences that will try and make "secret projects" out of the bosses ideas to garner favour and control the outcome in their favour, opposed to actually being team focused let alone outcome focused. These individuals are quite dangerous though easy to spot and even easier to deal with.
Just focus on getting the work done opposed to controlling it or hiding it, be inclusive of people who want the same and want to work.
This will inevitable get you their negative attention, be that trying to put you on the spot in meetings or defensive "woe is me" emails or chats they will have with other team members, though remember your their to get a job done and not play their game.
Remember they are far better and playing games on that level, don't sink to it, it's where they live their lives and they will likely win outright, or keep it up till you burn out.
Just accept it for what it is, leave them to it, be aware when dealing with them, and get on with making choices and doing work.
Who actually produces and delivers will be plain to see, and any employer who cant see that ..... well.
As will all things, it's not one or the other.
The balance between full on dictatorship and committee paralysis is called da da daaaaa .... teamwork.
Which turns out to actually be quite hard, as it relies on trust and each member making (the majority of the time) the choice of co-operation. With out that the system will lurch from one end of the spectrum to the other, committees killing any momentum and then individuals working away without the support of the rest of the team.
In fully dynamic environments (such as the development kind I'm told about within places like facebook or companies that actually want top performance) you have small teams where individuals spearhead projects and the team supports and leadership is shared (as it always is/should be in a team, even if that is accepted or not).
Though you need that culture and understanding across the organisation, a level of decisiveness and maturity.
1 - Model by example
2 - Accept you get to learn from 100% of what happens, and 20% of that more so
3 - Let people be people and leave them to dig their own holes or support the ones who join in
4 - Remember ........... unless you own the company ..... it's just a job !