"(B) Your community will help you build HARD DIFFICULT FEATURE
X. Contributors are more likely to work on components that show
quick wins. If a large amount of code changes are required to
visualize any progress, your average contributor ... unless he is
heavily vested in the technology, really really likes seeing
computers on weekends, or has a very tolerant and awesome boss, is
unlikely to work on any such features for long. Even small bugfixes
may not be something many users attempt if they get confused by
trying to trace a difficult code path. Furthermore, if the feature
is "enterprisey", and not directly useful to them, they are very
unlikely to help work on it. There is a light at the end of the
tunnel though -- maybe a codebase modular and simple to work on,
and you can get often get folks to knock out a lot of small items.
(Can a module be written to an API without needing to understand
the codebase at all? Great!) Not to say there aren't some rockstar
contributors that code large features -- but they are generally
rare. In order to solve this problem, continually fight to keep
things simple and keep the code extensible enough so that no
addition becomes unduly burdensome. This is easier said than
done."