The Myth of the Genius Programmer @ YouTube
It’s a little old one, but I happened to watch it, and taking some notes here, as it was nice.
This session advocates collaborating appropriately rather than trying to be a genius. There’re definitely some geniuses around the world, but it’s fewer than you think, and many of the great works are coming from the set of collaboration work in the team. As noted in the summary (around 41:54) collaborate “early and often” are generally recommended. But, also “Pay attention to timing” is also important. Exposing a project widely at the concept stage can impose large efforts on aligning directions among members. Having working prototype or clear goal beforehand is better.
The threshold to contribute to a open-source project is pretty much lowered along with the popularity of online code-repository like GitHub. Still, small set of leaders are actually committing codes in many of the active open-source projects, but the system of ‘pull request’ is widening the gateway. This type of semi-flat network may work well on the software projects, which regularly requires certain decisions on direction of the projects. Inherent flexible nature of the software needs ‘gentle dictator’ to organize, and it may require some structure rather than ‘genius programmers’.