Criterios de evaluación de tecnología
Antes de sumergirse y comenzar a convencer a tu equipo para que utilice la tecnología en tu próximo proyecto, debes tomar unos segundos para considerar algunas preguntas.
Te recomiendo el artículo pasado para ayudarte en la toma de decisiones:
¿Cómo elegir la mejor tecnología para tu proyecto?
Comprometerse con una tecnología puede ser una decisión a largo plazo con consecuencias de gran alcance. Asegúrese de dedicar suficiente tiempo a considerar la situación antes de tomar la decisión.
Es por ello que para ampliar criterios de evaluación tecnológica al artículo anterior te comparto algunas preguntas, a modo FAQ, que debes realizarte para poder evaluar con criterio.
¿Dispone de una API estable?
Una tecnología con una API que cambia rápidamente presenta importantes desafíos de desarrollo. Cada vez que actualizas, corres el riesgo de dañar partes centrales del sistema, lo que te obliga a reescribir las cosas que cambian una y otra vez. La alternativa a esto es no actualizar en absoluto, lo que te dejará atascado usando una tecnología a la que le pueden faltar funciones o parches de seguridad que necesita. Asegúrate de que la API sea estable y tenga un historial comprobado de soporte a largo plazo y hojas de ruta de desuso adecuadas, o puedes encontrarte con dificultades para construir castillos en arenas en constante cambio.
No asumas que por que se trate de grandes CRM, ERP entre otros de grandes compañías, sea una tecnología estable, tenemos malas experiencias con algún ERP de grandes compañías tecnológicas que descuidaron esto.
¿Cuánto costaría mantenerse al día con los cambios?
El tiempo de desarrollo cuesta dinero. Los desarrolladores necesitan leer y aprender los cambios, el código debe cambiar. Si la tecnología cambia muy rápidamente, hay que mantenerse al día. La mayoría de las veces mantenerse al día es algo bueno, pero es importante considerar el coste interno relacionado.
¿Se siguen añadiendo o eliminando piezas importantes?
Al igual que una API cambiante, si no sabes cómo se verá la plataforma incluso en el corto plazo, es probable que sufras por ello. Si de repente eliminan un componente clave del que depende tu software, o agregan una forma de hacer algo que se convierte en el núcleo de la plataforma después de haber escrito el código, entonces el cambio puede resultar costoso o incluso imposible sin reescribir el codigo.
Si tuvieras que contratar un equipo de desarrolladores para utilizar esta tecnología en 2 semanas, ¿podrías hacerlo fácilmente?
Usar un lenguaje asombroso que sólo conocen tres personas en el mundo no es una buena decisión comercial. Asegúrate de tener acceso a un suministro constante de talento disponible que conozca la tecnología.
Si tuvieras que formar a un equipo de desarrolladores para utilizar esta tecnología en 2 semanas, ¿podrías hacerlo fácilmente?
Si no puedes contratar, tendrás que formar; debes considerar qué tan complejo es aprender una tecnología antes de adoptarla. Si se necesita un año de formación intensa para aprender y comprender una tecnología, entonces el acceso a una oferta de talento de repente se vuelve mucho más importante.
¿Cuánto cuesta contratar a los desarrolladores que conocen esta tecnología en comparación con los desarrolladores actuales?
Si una tecnología mejora la efectividad del desarrollo en un 20%, pero los desarrolladores que conocen la tecnología cuestan un 80%, simplemente no vale la pena. Considera el coste de las contrataciones.
¿Existe una buena cantidad de bibliotecas y herramientas de terceros disponibles para esta tecnología?
Una tecnología base puede ser excelente, pero si no tiene un ecosistema de terceros, podría ser un problema. Tus únicas opciones serían desarrollar tus propias herramientas, esperar a que el proveedor las proporcione o arreglártelas sin ellas. A veces vale la pena, muchas veces no. Asegúrate de que haya suficientes bibliotecas y herramientas que te permitan lograr lo que necesitas.
¿Hay una buena cantidad de tutoriales y documentación?
Los desarrolladores aprenden de los ejemplos. Asegúrate de que cualquier tecnología nueva que adoptes tenga amplia documentación, tutoriales y ejemplos de código. Busca publicaciones de blog, como ITDO ;), preguntas y artículos sobre la tecnología para asegurarte de que, si tus desarrolladores tienen un problema, tengan la documentación necesaria para resolverlo. También es importante asegurarse de que la documentación esté actualizada y sea precisa: las API que cambian rápidamente pueden hacer que los tutoriales, incluso de unas pocas semanas, sean completamente irrelevantes.
¿El ecosistema de la tecnología está creciendo o menguándose?
Un ecosistema en crecimiento es un buen indicador de salud: la gente está adoptando la tecnología por una razón. Sin embargo, si la gente está abandonando la tecnología en masa, es hora de descubrir por qué. Si ves que todos corren en la misma dirección, asegúrate de que no deberías correr tú también.
¿El lenguaje en el que se basa la tecnología es ampliamente utilizado y está ganando popularidad?
A veces, una tecnología puede parecer estable en sí misma, pero estar construida sobre una base completamente inestable. Verifica que las tecnologías que utiliza sean sólidas y confiables. Si fracasa, es probable que la tecnología que estés evaluando también se vea afectada.
¿La tecnología está respaldada por patrocinadores relevantes?
La tecnología respaldada por patrocinadores corporativos y grandes comunidades suele ser mucho más confiable que las tecnologías creadas por un solo desarrollador durante el fin de semana.
¿Tu organización tiene las habilidades para utilizar la tecnología?
Una tecnología puede ser perfecta, pero si tu organización no tiene las habilidades necesarias para aprovechar los beneficios de la tecnología, también podría utilizar un pisapapeles virtual. Encontrar o formar talento.
¿Conoces algún experto en la tecnología?
Tu o tu equipo podéis acabar sin problema o quedaros estancados en cierto punto. Eventualmente te encontrarás con una situación en la que necesitarás la ayuda de un experto. Asegúrate de poder encontrar uno antes de que lo necesites. Los expertos pueden ayudarte a evitar errores y malas decisiones de diseño que pueden tardar meses o incluso años en revelarse.
¿La tecnología combina bien con las tecnologías existentes que se utilizan en tu organización?
Asegúrese de que las decisiones tecnológicas que tomes tengan en cuenta la dirección de la organización. Si compras un IDE basado en Windows para tu equipo de desarrolladores usan Mac, es sin duda una mala decisión de compra. Si tu organización utiliza principalmente Sharepoint, puede que no sea una buena idea comprar módulos de Drive.
¿Ofrece la tecnología una ventaja significativa sobre las tecnologías utilizadas actualmente?
Cambiar tecnologías por cambiar tecnologías es una pérdida de tiempo, esfuerzo y dinero. A menos que la tecnología proporcione un beneficio enorme, es probable que no valga la pena. Cambiar el proveedor de bases de datos relacionales A al proveedor de bases de datos relacional B cuando no usa ni usará ninguna característica diferenciadora de ninguno de los dos es un desperdicio.
¿Se están aprovechando o utilizando plenamente las tecnologías utilizadas actualmente?
¿Por qué cambiar de tecnología si las actuales pueden manejar la situación perfectamente con un poco más de utilización? Asegúrate de que las razones por las que está evaluando la tecnología sigan existiendo incluso después de tener en cuenta las capacidades de sus tecnologías actuales.
¿La tecnología tiene tarifas o costes asociados?
Algunas tecnologías son caras: decenas de miles de euros al mes en licencias no es una broma. Incluso las tarifas mensuales más pequeñas de los proveedores de servicios se acumulan, especialmente si se tiene en cuenta que probablemente necesitarás docenas de otros servicios, todos cobrando tarifas.
¿El uso de la tecnología bloquea a la organización en el ecosistema de esa tecnología?
La flexibilidad es importante. A veces, pasar a una tecnología significa una relación comercial muy larga con el proveedor y el ecosistema. Comienza a confiar en todo lo que te proporciona el proveedor, incluidos consultores, formación, soporte, módulos, parches, tecnologías, etc. Asegúrese de que estás de acuerdo con la dependencia del proveedor y de que seguirá estando de acuerdo con ello los próximos años.
¿Qué tan fácil es alejarse de la tecnología?
Poder revertir rápidamente una mala decisión tecnológica es una ventaja. Si la tecnología no se entrelaza con tus sistemas y se puede revertir o reemplazar fácilmente, se reduce el riesgo de adoptar la tecnología.
¿Qué tan fácil es cambiar los sistemas existentes para utilizar la nueva tecnología?
Si la integración con tus sistemas existentes es increíblemente rápida y sencilla, es una ventaja, ya que brinda la oportunidad de obtener valor de la tecnología mucho más rápido.
¿Cuánta personalización se requiere para que la tecnología funcione para tus necesidades actuales y futuras?
Las soluciones listas para usar a veces no hacen lo que necesitas y es necesario trabajar duro para transformarlas para que hagan lo que deseas. Considera los costes asociados con las modificaciones.
¿Se puede utilizar la tecnología para uso en producción?
Algunas tecnologías simplemente no son apropiadas para su uso en producción. Si estás experimentando, está bien, pero es probable que desees que la tecnología se utilice en un entorno de producción. Asegúrate de que la tecnología que elijas sea lo suficientemente madura para eso, y no solo la herramienta de un aficionado.
¿La tecnología depende de la presencia de otras tecnologías?
Cuando incorporas una dependencia, incorporas todas sus otras dependencias y sus dependencias, y así sucesivamente. Asegúrate de evaluarlos también.
¿Se puede cambiar fácilmente el comportamiento de la tecnología según el objetivo o el entorno?
Es probable que tenga varios entornos para el desarrollo, incluidos servidores de prueba y de entornos beta. Es posible que también tengas múltiples entornos de producción: diferentes clientes pueden requerir diferentes comportamientos de la tecnología. Si es difícil cambiar la tecnología según el objetivo o el entorno, es posible que necesite encontrar una solución alternativa.
¿Se puede implementar la tecnología de la forma que necesitas?
Asegúrate de que la tecnología pueda soportar fácilmente tus escenarios de implementación. Si es necesario implementarlo manualmente y tu proceso depende de implementaciones automáticas, es posible que tengas problemas.
¿Es necesario tomar ahora la decisión de utilizar esta tecnología?
Si puedes posponer una decisión tecnológica, podrás tomar la decisión cuando tengas más información. Si no tienes que decidirte por una tecnología ahora, podría tener sentido esperar. Por supuesto, no te dejes esperar sólo porque no puedes decidir.
¿Es la tecnología segura?
Si estás utilizando una tecnología insegura, deberás asegurarte de que las infracciones no causen daños ni provoquen infracciones en otros sistemas. Si la tecnología no es segura, es mejor que no se utilice para nada que requiera tecnologías seguras.
¿Es utilizable la tecnología?
Asegúrate de poder utilizar la tecnología. Si la tecnología requiere una conexión a Internet siempre activa y tu entorno no tiene conexiones o són irregulares, tendrás un problema.
¿La tecnología es eficaz?
Es probable que tu organización tenga ciertos requisitos de desempeño. Asegúrate de que la tecnología cumpla con esos requisitos.
¿Es la tecnología mantenible?
La capacidad de mantenimiento es primordial: si no puedes descubrir cómo mantener la tecnología en funcionamiento durante los próximos 10 a 20 años, puede que no sea la opción correcta.
¿Se está actualizando la tecnología?
Si se publican periódicamente parches, funciones, correcciones de errores y actualizaciones de seguridad, es una gran ventaja sobre tener que vivir con vulnerabilidades y errores.
Conclusión
La evaluación de una tecnología antes de su adopción es una decisión crucial que puede tener un impacto duradero en el desarrollo y el éxito de un proyecto. Se deben considerar una serie de factores, desde la estabilidad y la disponibilidad de soporte hasta la facilidad de aprendizaje y la integración con las tecnologías existentes. Además, es esencial evaluar el costo, la seguridad, la eficacia y la capacidad de mantenimiento a largo plazo de la tecnología. Al hacerlo, se asegura una elección informada que respalda el crecimiento y la sostenibilidad del proyecto en el tiempo.