# Open-Source Software Development in Cheminformatics: A Qualitative Analysis of Rationales
## 5 Discussion  
The analysis produced six main rationale categories for open-source cheminformatics software development (see Table 2). The perspective of the rationale can be either general or specific. For example, new software can be developed with the aim to produce an open alternative to compete with the currently closed solutions [39]. Alternatively, the rationale may be focused on solving some specific challenge, such as developing a locally installed software that does not require sending sensitive data or structural trade secrets over the internet [47]. Usability-related rationales (3) mainly have general objectives, whereas updates (2) and information needs (5) have more specific aims. Rationales 1 (new software), 4 (open science), and 6 (learning) may have both general and specific aims. Most rationales produce technological outcomes (1-4), such as new software, frameworks, interfaces, and processes. Chemical information needs to (5) produce content-driven solutions. Open-source development can also be used to promote open science, which has a science politics perspective (4) [63]. Last, if the rationale is to support teaching and learning (6), cheminformatics knowledge is used to develop educational technology [64]. The work started in 2005 by the Blue Obelisk movement [19] seems to have a strong impact, as many of the analyzed projects have been using the central standards defined by Blue Obelisk. Developing standards is an important objective for the field. The advantage of standards is clear documentation. Such standards are easily applied by software development professionals and are needed in multidisciplinary cheminformatics projects. Domain experts are the best at designing chemistry but lack software development skills [9]. However, the analysis shows that some scientific software is developed ad hoc by scientists rather than software engineers, either because of the need for a quick solution, lack of resources, or the excitement of writing software code. In good agreement with [PERSON] [29], this situation could hinder sustainable software development in cheminformatics due to funding variability, adherence to good software development practices, iterative software peer review processes, and even formal training of scientists in software engineering. According to the earlier research literature, the diversity of the quality of open-source solutions and maintenance processes were the biggest challenges in the development of scientific software [9]. This may be the case, but the acquired data did not consider quality issues. The authors usually do not describe software or process faults in the articles. \begin{table}
\begin{tabular}{c c c c} \hline \hline \# & **Rationale** & **Perspective** & **Outcome** \\ \hline
1 & Develop New Software & General/Specific & Technological \\
2 & Update Current Features, Tools, or Processes & Specific & Technological \\
3 & Improve Usability & General & Technological \\
4 & Support Open-source Development and & General/Specific & Technological/Political \\  & Open Science & & \\
5 & Fulfill Chemical Information Needs & Specific & Content-driven \\
6 & Support Chemistry Learning and Teaching & General/Specific & Pedagogical \\ \hline \hline \end{tabular}
\end{table} 
Table 2: A Synthesis of findings. However, one of the rationale categories (2) was updating current features. In these papers, the authors reported bugs and errors that they aimed to fix [51]. In addition, there were no descriptions of software development project management, so this cannot be evaluated with these data. One solution to improve the quality challenge would be to adopt good practices from other domains that have already developed quality management systems for scientific software development. See some examples from health informatics [33; 35]. Improving usability is another major rationale that is related to many other rationales, such as updating or developing new features. Usability can mean, e.g., the improvement of interface, performance, maintenance, or operating logic.