Un colega me pidió que explicara claramente la diferencia entre el desarrollo ordinario y la investigación y el desarrollo (I + D) y no pude hacerlo. Después de leer Wikipedia, todavía no tengo la respuesta precisa.
Según Wikipedia (ligeramente modificado):
Hay dos modelos principales:
En un modelo, la función principal es desarrollar nuevos productos ;
En el otro modelo, la función principal es descubrir y crear nuevos conocimientos sobre temas científicos y tecnológicos con el fin de descubrir y permitir el desarrollo de nuevos productos, procesos y servicios valiosos.
El primer modelo es confuso. ¿Significa que el desarrollo (no I + D) consiste exclusivamente en agregar nuevas características a un producto, resolver errores y realizar tareas de mantenimiento? ¿Qué pasa si algo que se desarrolló previamente como una nueva característica se convierte en un producto separado?
El segundo modelo es menos confuso, pero aún así, ¿cómo calificar si algo es conocimiento nuevo o conocimiento existente que se acaba de redescubrir?
Más tarde, Wikipedia agrega que el desarrollo ordinario es diferente de la I + D debido a que:
beneficio casi inmediato o mejora inmediata.
Todavía no está lo suficientemente claro. ¿Cómo calificar "beneficio casi inmediato"? ¿Qué pasa si una tarea tiene una ganancia inmediata pero requiere una gran investigación? ¿O si es básico pero tiene ganancias inciertas, como la aplicación de un estilo común sobre la base de código?
Por ejemplo, ¿pertenece al desarrollo o I + D a:
¿Desarrollar un motor que abstraiga el acceso a la base de datos, simplificando y acortando enormemente el código de otras aplicaciones (existentes o que se escribirán en el futuro) que deberían acceder a la base de datos?
Establecer una nueva arquitectura orientada a servicios para toda la organización de los recursos de la empresa, con el fin de pasar de un conjunto de aplicaciones independientes y autónomas a un conjunto de servicios web bien organizados e interconectados, como lo que utiliza Amazon.
¿Diseñar un nuevo protocolo de comunicación para permitir una replicación más rápida de datos entre dos centros de datos de la empresa?
¿Cree un nuevo tipo de prueba de software mientras trabaja en un producto específico, sabiendo que este tipo de prueba mejorará / simplificará el proceso de prueba?
¿Probar que la programación funcional es más apropiada que OOP para una aplicación específica, basada en evidencia, lógica y experiencia previa?
¿Mejorar la aplicación existente agregando gestos en pantallas táctiles, después de hacer estudios y pruebas que muestran que esos gestos mejoran la productividad de los usuarios en una proporción de al menos 1.4 para un conjunto preciso de tareas?
¿Encuentra una manera de mejorar la eficacia del uso de energía (PUE) de un centro de datos?
¿Crear un lenguaje específico de dominio (DSL)?
En resumen, ¿cómo podría determinar si estoy haciendo I + D mientras trabajo en algo?