There has been and will be cooperation. Why do we need to pay individuals salaries and hope they "cooperate" as if they weren't already?
I don't see any organized development teams. I don't see cooperation. I see different developers all working on stuff and I cannot keep up with who is doing what or what progress is. For a project as big as this you need daily reports among developers and weekly reports to the community. We have a blog which provides some of that but it's not detailed. We don't get to see for instance a daily changelog with comments. If there is a bug that a particular developer is having a problem with is there a bugzilla or some other similar type of setup so we can see the outstanding bugs?
If there's already the incentive to work together, distribute strengths as necessary, and efficiently organize roles in order to solve the problem at hand and secure the prize?
It's not about the prizes. The prizes are just incentives to motivate people to get involved in the process. It's actually about building the best possible Mastercoin protocol that can be built. This protocol has to be something which can allow many businesses and developers to build on top of it. Think of the Mastercoin development team as being as important as the Mozilla development team or the Chrome or Linux development team. Those teams aren't organized around a web forum using bounties, they all have a combination of salaried developers paid by sponsors or volunteers. Study successful projects to find the right combination but from what I have seen there is a role for full time salaried developers.
The detriment of the salary is that when you have an official salaried "development team," it presents the idea that we already have the developers we need and we just need to wait and let them do work now that they are paid a salary. This is not conducive towards attracting new and possibly better talent!
I don't get that idea at all. The Mastercoin project is so vast that even if you had 5 teams of 5 full time developers you'd still have so many trivial or experimental features to implement that you'd have room for bounties.
For example reputation should be built on top of the Mastercoin protocol and the core developers shouldn't be concerned with building reputation functionality. The core developers shouldn't have to be focused on little details of the user interface. The core developers should be doing the really difficult stuff that the rest of us cannot do. It should be highly specialized experts working on features which are truly hard and which require 12 hour days of contemplating, designing, coding, and bug testing. If you understand what is involved you'll know it's not something that can be considered part time work and it's not really bounty work. You cannot work on a bunch of other projects or have a full time job and do this on the side, you should be doing this full time and give total effort to it that it deserves.
additional thoughts:
quote from board emails:
Do you think that is fair? If you were a hopeful contestant and wanted to dedicate your skills towards a decentralized project?
Now, weigh that with its effectiveness. I think coalitions are great if the best developers we had right now got to call the shots on development, along with the freedom to not worry about their other financial obligations as much. Is there a way to encourage self-organizing coalitions so that we may still upkeep our promise of decentralization?
Decentralization makes sense, but you still need structure for development teams. You need a team leader, you need names for each team, you need focuses and objectives for each team and specialists.
I assume guys like Tachikoma will naturally end up leading such endeavours anyways. It just may be better to keep up with decentralization and perhaps this subtle difference in mechanism could mean a lot down the road, motivation and incentive-wise and all that.
Tachikoma knows a lot about the Mastercoin protocol as it currently is and on the parts he is working on. He cannot be expected to focus on every aspect. He probably should be team leader for the part he is working on, but what about all the other parts of the protocol spec left to be implemented?
I think you need team leaders so that when new people join in they can go and ask that person how stuff works, how the design should be, how the code should look, and what needs to be fixed. It's just in my opinion a bad idea to be decentralized and unorganized. You can be decentralized and fully organized.