In any team you need to balance the needs of the group with the needs of the individuals in it. For the highest functioning teams, these needs are aligned so that when the team does well the team members do too. Industrial leaders know this well, and so good ones will try to create this symbiosis whenever they can, using tools like promotions and bonuses, or access to the best tools and partners.
The situation is a bit more complicated in academia where there are fewer of those tools, more ambiguity in team goals and structural incentives that reward individual achievement over team results. For a group that tries to produce high quality software to succeed, they need to overcome the natural tendency of researchers to become kings and queens of their own little fiefdoms and organize their efforts towards the larger goal, while supporting each individual research effort.
This is the problem I'm struggling with right now: given a handful of graduate student researchers, how do you coordinate their efforts when you have no authority and no incentives beyond praise and the promise of accomplishment down the road? I'm not exactly sure how to approach it, but I feel that if my group is to succeed at creating the systems we envision - AI systems that let us explore the deepest oceans and farthest stars - we need to find a way to work as a coherent team rather than a group of like-minded individuals.