Biomedical Engineering Reference
In-Depth Information
and details is well beyond the scope of this chapter. The reader is encouraged
to read the topic Open Source Licensing by Lawrence Rosen [12] to gain
additional information in this area. Popular open-source licenses include the
GPL licenses [13, 14] and the Massachusetts Institute of Technology (MIT)
[15] and Berkeley Software Distribution (BSD) licenses [16]. A full overview
of open-source licenses is maintained by the Open Source Initiative [17].
24.2.2
Peer Review
While sharing the source code is the primary channel of collaborative code
development, communication is a close second. Designs need to be discussed
and solutions proposed. Peer review is part of this and plays an important part
in collaborative code development. A full discussion of communication will be
discussed later in this chapter as part of project management, while here we
will focus on peer review only.
While the role of peer review in scientifi c publishing is well recognized as
an important path for communication, it is rarely applied to scientifi c program-
ming. Nevertheless, the advantages and disadvantages are clearly recognized
for source code development as well, as detailed in the famous article titled
“ The Cathedral and the Bazaar ” [18] : “ It ' s one thing to observe in the large
that the bazaar style greatly accelerates debugging and code evolution. It's
another to understand exactly how and why it does so at the micro-level of
day - to - day developer and tester behavior. ”
The article continues to detail why the bazaar model with many people
looking at the code actually works. Interestingly, this is where it may not
directly apply to cheminformatics as the number of potential people looking at
the code is actually relatively low. Moreover, developers from competing proj-
ects may have additional reasons not to review the work from other projects,
further reducing the number of reviewers. It should be noted that this problem
is general to science and that peer review of publications too typically requires
a more formal approach. Peer-reviewed code development has the advantage
that static source code checkers are available that can detect common prob-
lems, such as PMD [19]. These tools check, for example, for unused variables,
dead code, and so on, often highlighting sources of problems.
Manual peer code review is increasingly simplifi ed by new tools. For
example, GitHub provides the functionality to comment on changes [20],
increasing the communication between developers and the social pressure to
write better source code. Figure 24.1 shows an example comment made via
the GitHub website.
24.3
COLLABORATIVE KNOWLEDGE BASES
Cheminformatics is, of course, very much about information. This information
is embedded in knowledge bases, such as relational databases. The knowledge
Search WWH ::




Custom Search