Cómo se aplica el método científico en la aplicación y la creación de dispositivos
Respuestas a la pregunta
Respuesta:
- Observación:
- Formulación de hipótesis:
- Experimentación: ...
- Emisión de conclusiones:
- Publicación y comparación:
Respuesta:Hace tiempo que surgió en nuestro equipo de desarrolladores la idea de escribir sobre la relación entre el metodo científico y la manera que tenemos de abordar el desarrollo de software, tanto al crear nuevos productos como al resolver incidencias (muchas veces escurridizas) que aparecen en productos ya desarrollados. Como CTO y experto en el desarrollo de software a medida, me gustaría compartir con vosotros mis sugerencias esperando que os resulten interesantes y útiles.
1 Recomendaciones para el Desarrollo de Software
2 Cómo solucionar una incidencia en un producto existente
2.1 Observación
2.2 Inducción
2.3 Hipótesis
2.4 Prueba
2.5 Análisis de resultados
2.6 Informe
3 Pasos para desarrollar un nuevo producto de software
3.0.1 Analizar el problema a solucionar, es decir, extraer los requisitos que debe cubrir el producto.
3.0.2 Hacer un plan de alto nivel en base al conocimiento inicial (analizado en 1) y dividirlo en iteraciones.
3.0.3 Seleccionar las tecnologías generales (lenguajes, frameworks, librerías, etc) con las que realizaremos el desarrollo (en base a nuestros conocimientos y experiencia).
3.0.4 Planificar la próxima iteración especificando los requisitos que se van a implementar, en base a unos criterios concretos (habitualmente maximizar el valor aportado).
3.0.5 Comenzar a desarrollar el producto progresivamente, en iteraciones que aportarán incrementos de producto.
3.0.6 Revisar el incremento aportado al terminar cada iteración, así como el propio proceso de desarrollo, a fin de ajustarlo con la intención de mejorarlo.
3.0.7 Repetir el proceso desde el punto 4 en cada iteración, aplicando las mejoras resultantes de iteraciones anteriores.
4 El desarrollo ágil
5 Desarrolladores de software
Recomendaciones para el Desarrollo de Software
Por lo general, los desarrolladores de Tribalyte nos guiamos por las buenas prácticas de desarrollo como por ejemplo:
Los principios SOLID
Las guías de estilo del lenguaje o framework específico (os recomiendo, por ejemplo, esta guía de estilo de Typescript o la guía de estilo oficial de Angular)
Programas, ejemplos y consejos de la comunidad (por ejemplo a través de StackOverflow, GitHub, GitHubGist, etc).
Pero a la hora de escribir código fuente, hay algo anterior, algo que considero son los cimientos sobre los que se apoyan las guías anteriormente mencionadas, algo que podríamos llamar el razonamiento científico.
Para explicarlo mejor, vamos a diferenciar dos casos en lo que respecta al desarrollo de software: crear un nuevo producto de software y solucionar una incidencia en un producto existente. Comencemos por el segundo caso.
Cómo solucionar una incidencia en un producto existente
Si nos paramos a pensar en la manera en la que abordamos la tarea de solucionar una incidencia en un producto existente, nos daremos cuenta de que estamos aplicando (al menos en parte) el modelo científico.
La primera etapa a tener en cuenta en la resolución de una incidencia, defecto o bug en el software, es obtener un procedimiento de reproducción de la misma (siempre que sea posible), es decir, conocer la manera en la que hacer que se manifieste el problema (o los síntomas del problema). A partir de ese procedimiento, comienza el análisis del problema a fin de determinar lo que está ocurriendo y, una vez comprendido, poder diseñar una solución. Estas etapas se podrían sintetizar en:
Reproducir la incidencia.
Analizar y comprender la causa.
Desarrollar la solución.
De manera general (aunque por supuesto, hay una gran tipología de defectos de software) la segunda etapa es la que mayor esfuerzo requiere, sobre todo cuando el producto software en cuestión no ha sido desarrollado por nosotros o no tenemos acceso al código fuente.
Durante esta segunda etapa de análisis empleamos el razonamiento lógico a fin de encontrar y comprender la causa, aunque, todo sea dicho, hay situaciones en las que no es posible aplicarlo y se requiere mayores dosis de creatividad (aplicando por ejemplo el pensamiento lateral). Supongamos que disponemos de un procedimiento para reproducir la incidencia y es posible aplicar el razonamiento.
En este caso resulta de gran utilidad seguir el método científico, que podríamos adaptar de la siguiente manera:
Análisis de resultados
En caso de que el resultado del paso anterior no fuese correcto (por ejemplo, el defecto continúa presente a pesar de los cambios), la hipótesis queda refutada, por lo que volveríamos al paso 3. En caso de que la hipótesis haya sido cierta (por ejemplo, ya no es posible reproducir el defecto con los cambios realizados), podemos continuar al último paso.
Informe
Al haberse demostrado válida la hipótesis, podemos concluir que conocemos la causa de la incidencia y por tanto desarrollar y aplicar una solución al software. Una vez aplicada, la incidencia se daría por cerrada.
Explicación: