Con cada producto, nos enfrentamos a muchos compromisos y retos que determinan el futuro de la empresa. Sin embargo, es la tecnología, o más bien la elección de la tecnología, el dilema más importante porque afecta a todos los aspectos en el futuro. En este artículo, me gustaría presentar los enigmas asociados a la toma de una decisión de este tipo.
Con cada producto... nos enfrentamos a muchos compromisos y retos que determinan el futuro de la empresa. Sin embargo, es la tecnología, o más bien la elección de la tecnología... ese es el dilema más importante porque afecta a todos los aspectos del futuro. En este artículo, me gustaría presentar los enigmas asociados a la toma de una decisión de este tipo.
Seleccionar la tecnología adecuada para desarrollo de productos es un componente crítico que puede tener un impacto sustancial en proyecto éxito. Este post repasará las variables más importantes a tener en cuenta a la hora de decidir la tecnología adecuada para su desarrollo de productos necesidades. He aquí 5 reglas para Elegir la tecnología adecuada para el desarrollo de productos:
1. Definir los requisitos del proyecto
Antes de iniciar el proceso de selección de tecnología, es fundamental conocer a fondo las necesidades del proyecto. Esto incluye esbozar el problema que intenta resolver, el público destinatario, las características deseadas y cualquier necesidad tecnológica. Una lista de requisitos bien definida puede ayudarle a evaluar las distintas tecnologías en función de las exigencias de su proyecto.
- Escalabilidad
A medida que su producto evolucione, necesitará una tecnología que pueda seguir el ritmo del creciente número de usuarios, datos y funciones. Examine la facilidad de ampliación de la tecnología y la disponibilidad de recursos de ampliación. El uso de tecnología escalable garantiza que su producto podrá adaptarse al crecimiento futuro.
3. Flexibilidad y adaptabilidad
Los requisitos del producto pueden variar con el tiempo, por lo que es fundamental seleccionar una tecnología que pueda adaptarse a estos cambios. Busque tecnologías que faciliten la incorporación de nuevas funciones o la modificación de las existentes, para garantizar que su producto siga siendo relevante y esté actualizado.
4. Experiencia de los desarrolladores
Los conocimientos y la experiencia de su equipo con diversas tecnologías son fundamentales para el éxito de su proyecto. El uso de tecnologías conocidas puede aumentar la productividad y reducir la curva de aprendizaje. Si una nueva tecnología se adapta mejor a su proyecto, asegúrese de que su personal recibe la formación y el apoyo adecuados.
5. Seguridad
Con la creciente importancia de la seguridad y la privacidad de los datos, es fundamental evaluar los aspectos de seguridad de cada tecnología. Asegúrese de que la tecnología elegida satisface los requisitos de seguridad de su producto y cumple las normas aplicables y los estándares del sector.
En mi trabajo como programador, he tratado con muchos productos y muchas CTOsy pude captar los aspectos más importantes del trabajo y los problemas que conlleva, así como las dificultades relativas a proyectos y tecnologías, he aquí algunos de ellos:
Facilidad de mantenimiento
Su producto debe tener una alta disponibilidad y no causar problemas de implantación y funcionamiento. Cada tecnología está construida para funcionar bien en el entorno adecuado, por eso la decisión es tan importante. Una elección bastante arriesgada sería C ++ puesto en una aplicación web de alta disponibilidad en un mundo donde tenemos Elixir y GoLang, que pueden llevarte a crear aplicaciones robustas y escalables. Por otro lado, si estamos construyendo IOT servicios y tenemos pocos recursos, la decisión puede ser diferente. Ruby también puede ser la respuesta a cada una de las preguntas anteriores, todo depende de los compromisos y de lo que te importe a la hora de mantener la aplicación o el sitio web.
Madurez tecnológica
Cada año se crean muchas tecnologías, y algunas de ellas son revolucionarias en el momento de su creación. La cuestión es si es el momento de utilizarlas. La madurez de una tecnología no es sólo la disponibilidad de especialistas, sino básicamente lo que hace la comunidad en forma de documentación, bibliotecas, cursos y artículos.
No podemos comparar el número de nuevos repositorios en GitHub para JavaScript con los de Ruby, ya que JavaScript tiene muchos marcos y bibliotecas nuevos y grandes, y cada uno de ellos requiere paquetes de desarrollo y construcción. En Ruby, tenemos un framework líder y un ecosistema asociado a él; por lo tanto, muchas bibliotecas de autenticación o API clientes ya están establecidas y mantenidas, y los problemas con ellas también son bien conocidos. Por lo tanto, no nos puede sorprender que el sistema de transacciones en nuestro banco se basa en Java y no JavaScript y ExpressJS, y que una startup que conoces tiene problemas para domar la arquitectura de la aplicación porque nadie ha resuelto su problema en esta nueva tecnología que eligieron.
Sin embargo, aquí sigue habiendo una tendencia, porque todo el mundo ha oído hablar de Perl o Cobol, que son tecnologías antiguas y bien establecidas, pero que, por desgracia, no están lo suficientemente de moda como para animar a los desarrolladores a trabajar con ellas. Una tendencia es un factor importante para atraer talentos, sobre todo porque a mayor edad, menos programadores.
Número de especialistas
Cuando nos ocupamos de un proyecto informático, no vamos a programar, sino que necesitamos entender exactamente lo que está pasando. Merece la pena ir primero a LinkedIn y comprobar cuántos especialistas hay en tu país; esto nos dirá cómo de grande es el entorno con el que estamos tratando. También vale la pena ir a la Embrague y comprobando cómo el empresa de software mercado parece. Debe estar preparado para un crecimiento repentino y para cubrir rápidamente las vacantes de empleo. Por supuesto, la abundancia de candidatos potenciales no equivale a calidad, pero facilita la adquisición de talentos y permite llegar con su oferta a diversos especialistas.
También debe asumir que los empleados de la empresa son reemplazables; en el periodo posterior a la crisis es especialmente importante porque la cuarentena pudo bloquear muchas empresas. Este enfoque también le permite evitar la crisis de la salida de especialistas y ampliar la documentación técnica.
Gastos de explotación
La combinación de los puntos anteriores genera el coste de explotación, es decir, cuánto costará realmente mantener la aplicación y el equipo de desarrollo. Todos seleccionamos un equipo que responda a nuestras necesidades, pero hay que acordarse de todo el back end de la aplicación, o eventualmente optar por una solución IaaS y SaaS para los servicios que son críticos para el funcionamiento del producto.
Cada gestión de servicio autoalojado es un coste adicional para ti y una carga que te aleja del objetivo. En la fase inicial de desarrollo del producto, incluso una solución conocida, como Netlify o Heroku, pone todo el entorno en una sola tubería y no pierdes el tiempo del equipo en crear todo desde cero.
Resumen
A largo plazo, la infraestructura preparada puede resultar más barata que reinventar la rueda. El coste operativo, el rendimiento del equipo en relación con la funcionalidad dada, la madurez de la tecnología y el alcance de los empleados disponibles en el mercado son de gran importancia.