El conocimiento del dominio es muy importante para los desarrolladores de software. El conocimiento de múltiples dominios es igualmente importante. Conocer y desempeñar su rol esperado también es muy importante.
Dejame explicar:
Yo trabajo en el ámbito de la salud. Más específicamente, soy parte de un equipo que desarrolla software para el dominio oncológico. El tratamiento oncológico es complejo. La base de datos de drogas es jerárquica y gigantesca. Hay toneladas de formas farmacológicas, métodos de administración, vía de administración, composiciones químicas, reacciones farmacológicas a las alergias, regímenes de tratamiento, interacciones farmacológicas y muchas normas gubernamentales.
- Cómo comenzar con el desarrollo de software independiente
- ¿Cuál es la mejor fuente en línea para reclutar / contratar ingenieros / desarrolladores de software?
- ¿Los desarrolladores de software hacen un verdadero "desarrollo de software" en TCS / CTS / Infy y empresas de TI similares?
- ¿Qué piensan los desarrolladores profesionales de los cursos de programación en línea como Codecademy, Code School y freeCodeCamp.org?
- ¿Podré encontrar empleo como desarrollador de software junior si completo el campo de entrenamiento en línea Ruby on Rails en la Academia Tealeaf?
Un nuevo desarrollador en mi equipo generalmente comienza con correcciones de errores y un boleto cosmético que le da la sensación de la funcionalidad de la aplicación y la base del código. Luego lo ponemos a desarrollar (generalmente una nueva) pantalla respaldada con un par de consultas de extracción / escritura, que abarcan no más de 2 a 3 tablas (existentes o nuevas). Si el desarrollador sobrevive a esta etapa y no pierde interés en su trabajo, entonces le permitimos manejar un módulo completo. Un módulo tendrá al menos un flujo de trabajo que abarca múltiples pantallas y entidades con relación a algunas de las entidades centrales. En este nivel, el desarrollador necesita comprender la dinámica de los datos centrales, que es enorme y compleja. No muchos desarrolladores pasan esta etapa. Si lo hacen, están listos para manejar las cosas básicas.
¿Qué son las cosas básicas? Lo esencial es donde sus decisiones afectan directamente a su producto y a su cliente. Como miembro del equipo central, ya tienes grandes habilidades técnicas. Sin embargo, el conocimiento del producto y del dominio lo ayudará a trabajar más estrecha y rápidamente con los usuarios y las personas de negocios (propietarios de productos y gerentes de productos). Esto es especialmente importante si está sentando las bases. Sus decisiones van a impulsar el futuro del producto. Sus decisiones acertadas pueden hacer que el producto sea menos rígido y más adaptable a los cambios futuros.
Ejemplo: Utilizamos una base de datos de medicamentos de terceros llamada First Data Bank (FDB). FDB tiene bastante detalle y estructura jerárquica para almacenar información sobre drogas. Si está desarrollando una nueva aplicación con muy poco conocimiento de dominio, lo más probable es que termine utilizando el esquema de FDB tal como está. Esto eventualmente ralentizará el desarrollo debido al gran tamaño y la complejidad del esquema de FDB. Ahora, si tiene poca información sobre el dominio y FDB, elegirá extraer solo el subconjunto requerido en su propio esquema. Sin embargo, dado que no tenía la experiencia profunda del dominio, pronto se dará cuenta de que los extractos que escribió no se ajustaban a los requisitos cambiantes. Aquí es donde el conocimiento del dominio le dará la ventaja. Con un conocimiento funcional más profundo, creará mejores estructuras de datos necesarias para mantener el desarrollo de su producto.
Esto es sólo un ejemplo. La historia aquí es que, a medida que asciende en el campo técnico, su conocimiento profundo del dominio lo ayudará a crear productos “mejores”. En el desarrollo de software empresarial, los desafíos puramente algorítmicos son muy pocos. Si el dominio no fuera lo suficientemente complejo, alguien habría escrito un software de “propósito general” para abordar el problema. La razón por la que está desarrollando un software / producto personalizado es probablemente porque la complejidad del dominio aún no ha sido capturada adecuadamente por ningún otro producto.
La experiencia en otros dominios siempre es útil. Por ejemplo, mi experiencia en HP diseñando flujos de trabajo de comercio electrónico me ayudó a descubrir patrones similares en la aplicación de oncología; De esta forma, la aplicación de una solución ya conocida facilitó las cosas. Del mismo modo para el conocimiento de dominio de “gestión de inventario” que aprendí en una empresa de transporte.
Entonces, sí, sea cual sea el software que desarrolle, en cualquier dominio en el que se encuentre, trate de apreciar la naturaleza de ese dominio, comprenda su singularidad e intente sumergirse lo más profundamente posible. Mientras estoy trabajando en el dominio de la oncología, mi objetivo no es convertirme en médico, enfermera o farmacéutico, sino comprender la profundidad suficiente del dominio, para que realmente pueda comprender los desafíos que enfrentan estos profesionales médicos en su día a día. El día vive. Hay una razón por la cual un oncólogo es la profesión mejor pagada en los Estados Unidos. Una de las razones es que un oncólogo se ocupa de un dominio extremadamente complejo. Sin comprender este complejo dominio, no podré proporcionar buenas soluciones a los problemas del oncólogo.
Los equipos de desarrollo de software generalmente contratan expertos en dominios (o gerentes de productos) que pueden escribir los requisitos del producto, sin embargo, sin un conocimiento suficiente del dominio central, los desarrolladores de software no podrán formar un “equipo efectivo” con los expertos en dominios.
Finalmente, te dejo con este video. En realidad, fue creado por un médico que se sintió frustrado con la forma en que se escriben los programas para el dominio médico.
Este video me ha servido constantemente como un recordatorio de que mi trabajo no es solo escribir código, sino desarrollar software que ayudará a los médicos a hacer su trabajo de manera más eficiente y precisa. Por eso debo apreciar el arduo trabajo que hacen estas personas. Y para eso, debo ponerme en su lugar y aprender su dominio para empezar.
Orgulloso de decir que nuestro software ha sido constantemente clasificado como el número 1 por organizaciones de renombre.
Por cuarto año consecutivo, iKnowMed ha sido nombrada la plataforma de registro electrónico de salud (EHR) mejor clasificada para oncólogos y hematólogos por Black Book Rankings