¿Por qué el software científico generalmente está tan mal diseñado?

Los científicos utilizan diferentes tipos de software:

  1. Paquetes de software comerciales estándar con una gran base de usuarios (por ejemplo, Matlab, SolidWorks, LabView)
  2. Software comercial / controladores para instrumentos científicos (generalmente de nicho)
  3. Paquetes de software que se originaron como el código personal de un grupo de investigación pero que finalmente se lanzaron al público, ya sea como software con fines de lucro o de código abierto (por ejemplo, Wein2k)
  4. Software escrito dentro de un grupo de investigación o colaboración cuyo único propósito es atender las necesidades de investigación de ese grupo / colaboración.

El software en la cuarta categoría a menudo es malo, pero esto no es sorprendente ni ofensivo. La mayoría de los grupos de investigación no contratan programadores dedicados (e incluso si lo hicieran, estas personas necesitarían una sólida formación en el campo científico para el que están escribiendo programas), y depende de personas de una especialidad diferente hacer lo mejor. Por lo general, el software funciona para lo que está destinado a hacer, pero la interfaz de usuario puede ser confusa (o inexistente), puede estar plagada de códigos de espagueti y puede que no esté optimizada. Esto está bien, porque el software solo pretendía ser una herramienta, no el producto terminado.

No tengo mucha experiencia con el software en la categoría 3, pero sospecho que sufre los mismos pecados originales que la cuarta categoría, aunque se han remendado hasta cierto punto.

El software en la primera categoría tiende a ser bastante bueno.

La segunda categoría es realmente terrible, y muchos grupos de investigación han inventado hechizos de brujería para contrarrestar sus idiosincrasias (por ejemplo, desconectar el instrumento científico, reiniciar el programa dos veces, volver a enchufar la máquina, hacer el hokey pokey y luego darse la vuelta, reiniciar la computadora, reiniciar el programa) . Las razones para esto son probablemente las mencionadas en los detalles de la pregunta: este es un producto de nicho con una audiencia cautiva. Sospecho que estas empresas de nicho a veces no tienen los medios para contratar a los mejores ingenieros de software (especialmente si su enfoque principal es el hardware), y tienen incentivos para mantener la operación lo más opaca posible porque su usuario final podría potencialmente revertir gran parte de la ingeniería. su producto

Todo tipo de razones, algunas de las cuales se han mencionado anteriormente, pero también es cierto que los programadores científicos no son ingenieros de software y este último tradicionalmente no ha sido algo que haya sido valorado en la comunidad científica, especialmente cuando se trata de obtener financiación, etc.

Dicho esto, hay muchas excepciones, y he comenzado a ver más y más ejemplos de grupos de investigación con buena calidad de software.

Tenga en cuenta que no estoy hablando de IU aquí, sino de software sostenible y bien diseñado.

Creo que el problema es la longevidad del software y la forma en que se realizan las inversiones en su desarrollo.

Muchos grupos de investigación tienen programadores de personal, empleados a tiempo completo que escriben o mantienen el software que los doctores y los posdoctorados necesitan para realizar sus tareas.

Los programadores escribirán, diseñarán y desarrollarán una pieza de software que procesa bien los datos y cumple con los requisitos científicos; La versión 1 de este programa es a menudo hermosa, elegante y utilizable.

Luego comenzarán a atornillar botones, widgets y perillas para satisfacer las solicitudes de funciones del cliente. Dada la opción entre “¿debería centrar mi atención en agregar estas 3 características que un postdoc en el grupo necesita publicar?” o “¿deberíamos rediseñar la interfaz de usuario para que los botones adicionales distraigan menos?”, ningún director de proyecto sensato elegirá la opción # 2.

Para cuando un nuevo estudiante de posgrado se une al grupo, 6 años después, la aplicación puede parecer francamente retorcida, pero hace todo, y es difícil quejarse.